분류 전체보기 319

Docker 이미지 생성 및 컴포즈

Dockerfile직접 이미지를 생성할 수 있게 해주는 파일 명령어FROM [이미지명]:[태그명]COPY [호스트 컴퓨터에 있는 복사할 파일의 경로] [컨테이너 파일 위치 경로]ENTRYPOINT [명령문1, 명령문2, 명령문..]RUN [명령문]WORKDIR [작업 디렉토리로 사용할 절대 경로]EXPOSE [포트번호] FROM : 베이스 이미지 생성한다. 베이스 이미지 : 초기 기본 세팅, 쉽게 말해서 기본 프로그램 느낌이다.JAVA에 한해서는 JDK가 베이스이미지가 되겠다. COPY : 호스트 파일에 있는 파일을 컨테이너에 복사 ENTRYPOINT : 컨테이너 생성시 최초 실행때 수행하는 명령어 RUN : 이미지 생성과정에서 명령어를 실행시켜야 할 때 사용ex) npm install, apt upda..

Back-End 2025.07.09

세그먼트 트리

배열의 연속된 구간의 합을 O(Log N)시간만에 할 수 있는 자료구조합 뿐만 아니라 구간 최대 최소, 곱 등도 구할 수 있다. 세그먼트 트리는 보통 3가지로 구성된다init : 세그먼트 트리 초기화query : 원하는 구간의 값을 구함update : 배열에서 요소 a를 변경했을 때 값을 갱신함 트리 크기세그먼트 트리도 결국 이진 트리 기반이기에 가질 수 있는 노드는2^h 개가 된다. h = ceil(log2(n)) , n = 배열의 요소 개수 treeSize = 2^h 높이를 올리는 이유n = 9 일때 log2(9) = 3.xx 로 나온다.그렇다고 높이를 3으로 해버리면2^3 이 되어 트리 크기가 8이 되고 9를 넣을 공간이 없어진다. 그래서 높이를 올림(ceil)해서 4로 잡아야 안전하다. 코드..

CS/자료구조 2025.07.09

프로젝트 중 잘못된 테스트 바로잡기

✔️ 문제테스트를 하는데 자꾸 이상하게 예측값보다 -1 인 값이 나와서보니 테스트 코드를 잘 못 짜서 그런 것이였다. @Transactional과 @BeforeEach를 제대로 사용하지 않았기 때문이였다. 문제의 코드 @Slf4j@SpringBootTestclass FocusTimeJdbcRepositoryTest { @Autowired FocusTimeJdbcRepository repository; @Autowired FocusTimeJpaRepository jpaRepository; @Autowired MemberRepository memberRepository; @Autowired TransactionTemplate transactionTemplate;..

Back-End/Spring 2025.07.08

백준 14586번: 도미노(Small) [자바]

🧫 문제 분석 ✔️ 출처도미노 (Small) 골드 1 📖 문제 DP 풀이 문제였는데나는 우선순위 큐로 풀었다. 각 도미노가 넘어뜨릴 수 있는 최대개수를 구하고우선순위 큐에 넣은 다음 가장 많이 쓰러뜨린 도미노 먼저 꺼낸후해당 도미노를 넘어뜨렸을 때 넘어진 도미노들을 방문체크한다.이를 반복하면 된다. 🔅 문제 풀이import java.io.*;import java.util.*;public class Main { static class Domino { int x, h; long left, right; public Domino(int x, int h) { this.x = x; this.h = h; ..

baekjoon 2025.07.07

백준 20419번 : 화살표 미로 (Easy) [자바]

🧫 문제 분석 ✔️ 출처화살표 미로 (Easy) 골드 3 📖 문제 BFS 탐색 문제나는 끝지점에서 상하좌우의 방을 탐색후 현재 방을 가리키는지 체크하고현재 방을 가리키지 않았다면 주문서를 써서 방향을 바꾸고 바꾼 방향으로 현재 방을 가리킬 수 있는지 확인후 이동하는 식으로 구현하였다. 🔅 문제 풀이import java.io.*;import java.sql.SQLOutput;import java.util.*;public class Main { static int R, C, K; static char[][] map; static boolean[][][] visited; static int[] dr = {-1, 0, 1, 0}; static int[] dc = {0, 1..

백준 7983번 : 내일 할거야 [자바]

🧫 문제 분석 ✔️ 출처내일 할거 골드 5 📖 문제 문제를 제대로 안읽어서 한 번 틀렸다.내일 부터 연속으로 최대로 놀 수 있는 기간을 출력하는 건데최대 놀 수 있는 기간을 출력해버렸다... 과제 마감 시간을 기준으로 내림차순 정렬하여과제 시작일을 구하고이전 과제 시작일과 비교해서 현재 과제 시작일을 배치한다. 다 구한 후 마지막으로 구한 이전 과제 시작일 - 1 이 내일부터 놀 수 있는 기간이다. 🔅 문제 풀이// 코드 내용import java.io.*;import java.util.*;public class Main { // 계산은 long static class Assigment implements Comparable { int d, t; public Ass..

baekjoon/Greedy 2025.07.04

백준 14943번 : 벼룩 시장 [자바]

🧫 문제 분석 ✔️ 출처벼룩 시장 골드 3 📖 문제 두사람의 거리 * 배달하는 벼룩의 수 의 합을 구하고, 그 중 최소가 되는 합을 구하는 그리디 문제제일 좋은 것은 가장 가까운 곳에 배달하는게 이득이다.따라서 판매자 즉, 가게와 고객을 따로 순서대로 받고 하나하나씩 거래하면된다. 투포인터로 풀었다. 🔅 문제 풀이import java.io.*;import java.util.*;public class Main { // 계산은 long public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

baekjoon/Greedy 2025.07.03

Docker 기본 개념

docker는 컨테이너를 사용하여 각 프로그램을 독립된 환경에서 실행 및 관리하는 툴docker는 이식성이 매우 좋다. 컨테이너 : 미니 컴퓨터 개념 (독립된 환경)이미지 : 게임 칩 , 프로그램 실행시 필요한 설치과정, 설정, 버전 정보 등 모든 것을 포함 docker의 이미지는 docker hub에서 다운받는 것이다. 포트호스트 포트와 컨테이너 포트가 구분되는데호스트 컴퓨터 안에 컨테이너가 있기에 외부에서 컨테이너로 접근 불가 따라서 호스트에서 포트포워딩으로 컨테이너를 매핑해준다. 볼륨볼륨은 설정 파일등을 영속화한다. 절대경로로 지정하며, 웬만하면 빈 폴더 혹은 폴더를 삭제하고 지정 호스트와 컨테이너 볼륨이 서로 동기화하기에한쪽이 없으면 한쪽에서 가져온다. 볼륨으로 인한 설정 정보 유지때문에 비밀..

Back-End 2025.07.02

정렬 방식 실렬 방식 실습

3가지 정렬 방식인덱스 사용조인의 드라이빙 테이블만 정렬임시 테이블 사용 후 정렬 3가지가 실제로 어떻게 적용되는지 궁금해서 직접 구현해봤다. CREATE TABLE tb_test1 ( col1 int NOT NULL, col2 int DEFAULT NULL, PRIMARY KEY (col1), INDEX ix_col1_col2 (col1,col2), INDEX ix_col2 (col2)) ENGINE=InnoDB CREATE TABLE tb_test2 ( col1 int DEFAULT NULL, col2 int DEFAULT NULL, INDEX ix_col1_col2 (col1,col2)) ENGINE=InnoDB303p 의 퀴리문을보고 테이블을 만들었다. 해당 쿼리로 테스트 한다. ..

Back-End/DB 2025.07.01

백준 16565번 : N포커 [자바]

🧫 문제 분석 ✔️ 출처N포커 골드 2 📖 문제 포함 배제 원리에 대해 배우게 되었다. 말그대로 여러 집합을 합칠때 중복을 빼는 것이다. 짝수 집합일 경우 빼주고홀수 집합일 경우 더한다.세 집합 A,B,CA, B, CA,B,C 면:→ 더하고 빼고 반복. 벤다이어그램으로 봤을때2번째 짝수번째 빼기를 보면3번 빼서 AnBnC가 없어진다따라서 세 집합의 교집합을 더한다. 최종적으로 중복ㅇ벗는 하나의 영역만 계산된다.|B| + |C| + |D| 이경우 BnC가 2개AnB 2개AnC 2개 때문에 1개씩 빼줌 하지만 이러면 AnBnC가 사라짐AnBnC 더함 최종적으로 중복없는 합 집합 생성 🔅 문제 풀이import java.io.*;import java.sql.SQLOutput;import java.uti..

baekjoon/DP 2025.07.01