분류 전체보기 277

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

✔️ 문제테스트를 하는데 자꾸 이상하게 예측값보다 -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

테스트에서 영속화

스프링에서 테스트 코드 작성 중 엔티티의 영속화를 유지할 필요가 있다면@Transactional이 아닌TransactionTemplate를 사용해볼 수 있다.테스트 코드에서 @Transactional은 테스트 시작시 열리고 테스트가 끝나면 롤백된다. @AfterEach@Transactionalvoid delete() { Member member = memberRepository.findBySocialId(SocialType.KAKAO, "2gjdkl12333").get(); log.info("해당 id 삭제 ={}", member.getId()); memberRepository.deleteMember(member); }위 코드가 실행되면 member는 비영속화상태이기에 실패한다.Remov..

Back-End/Spring 2025.06.30