본문 바로가기

분류 전체보기11

[백준 1987] 백트래킹 | 알파벳 - 최장 경로 찾기 (Python) 📝 문제 요약R X C 크기의 보드에서 말이 (0, 0)부터 출발해 알파벳이 겹치지 않게 이동하는 최장 경로의 칸 수 → 백트래킹🔗 [백준 1987번: 알파벳] - 골드 IV ❌ 제출한 코드from collections import dequeR, C = map(int, input().split())board = list(input() for _ in range(R))direction = [(0, 1), (0, -1), (-1, 0), (1, 0)]q = deque([(0, 0, board[0][0])])max_len = 1while q: a, b, path = q.popleft() max_len = max(max_len, len(path)) for d in direction: .. 2025. 5. 25.
[Spring Boot] 정리: H2 - 테스트 데이터베이스로 사용하는 방법 🥞 H2Java로 작성된 경량형 임베디드 관계형 DB테스트 및 로컬 개발 환경에서 널리 사용In-memory 모드: 애플리케이션 종료 시 초기화설치 없이 JAR만으로 실행 가능내장된 브라우저 기반 SQL UI 제공 ⚙️ H2 : 테스트 DB로 설정 및 사용1. 의존성 추가// build.gradledependencies { testImplementation 'com.h2database:h2'} 2. 테스트용 yml 파일 구성// /test/resources/application-test.yml 3. 테스트 코드 작성@ActiveProfiles("test")// @Sql(scripts = {"/schema.sql", "/data.sql"}, executionPhase = Sql.Execu.. 2025. 5. 19.
[JPA] 오류: N+1 문제 - 연관 엔티티 자동 조회 발생 🧐 발생한 상황JPA 연관 관계의 DTO 객체 조회 → DTO 클래스에서 필드로 갖는 모든 연관 엔티티가 함께 조회 💥 원인 분석조회한 DTO 클래스에서 연관 엔티티 자체를 필드로 갖는 상태@ManyToOne, @OneToOne의 기본 FetchType → EAGER ✅ 해결 방법 어노테이션 설정: @ManyToOne(fetch = FetchType.LAZY) DTO 클래스에 연관 객체의 필요한 필드만 포함 💬 비고N+1 문제: 1번의 쿼리로 N개의 결과를 가져오고, N개의 결과에 대해 추가 쿼리가 각 1번씩 더 실행되는 문제 2025. 5. 17.
[Spring Boot] 정리: 예외 처리 - Optional 📚 주제1️⃣ Optional2️⃣ 생성3️⃣ 반환4️⃣ 처리 📝 Optional반환되는 객체가 없을 수도 있음을 명시적으로 표현데이터 조회나 API 응답 처리에 주로 사용 🏗️ Optional : 생성Optional name = Optional.of(obj); // null이면 예외 발생Optional maybeName = Optional.ofNullable(null); // null 가능Optional empty = Optional.empty(); // 비어 있는 Optional 🎁 Optional : 반환Optional name = Optional.ofNullable(null);String value1 = name.or.. 2025. 5. 17.
[Java & DB] 정리: 날짜/시간 타입 매핑 📚 주제1️⃣ Java에서 사용하는 날짜 타입2️⃣ DB에서 사용하는 날짜 타입3️⃣ Java와 DB 간 날짜/시간 타입 매핑 ☕ Java에서 사용하는 날짜 타입타입설명특징LocalDateTime날짜 + 시간 (시간대 X)JPA 매핑 기본값ZonedDateTime날짜 + 시간 + 시간대시간대 정보 포함InstantUTC 기준 시점TIMESTAMP와의 매핑에 적합 🥞 DB에서 사용하는 날짜 타입타입설명특징DATETIME날짜 + 시간 (시간대 X)단순 시간 기록TIMESTAMP날짜 + 시간 + 시간대시간대 자동 변환 🔁 Java와 DB 간 날짜/시간 타입 매핑[Java 코드 내부]LocalDateTime now = LocalDateTime.now(); ▼ (JPA가 자동으로 변환).. 2025. 5. 17.
[백준 2503] 완전 탐색/DFS | 숫자 야구 - 순열 (Python) 📝 문제 요약숫자 야구에서 N번의 답변(스트라이크와 볼의 개수)을 통해 정답 가능성이 있는 숫자의 개수를 구하는 문제 → 순열🔗 [백준 2503: 숫자 야구] - 실버 II ✅ 제출한 코드N = int(input())# n_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]p_num = []from itertools import permutationsdef baseball(number): s_cnt, b_cnt = 0, 0 for n in range(3): if num[n] == number[n]: s_cnt += 1 elif num[n] in number: b_cnt += 1 return (s_cnt, .. 2025. 5. 16.
[프로그래머스] BFS/DFS | 네트워크 - 연결 요소 찾기 (Python) 📝 문제 요약n대의 컴퓨터가 연결된 상태를 나타내는 computers에서 네트워크의 수를 구하는 문제 → BFS/DFS🔗 [프로그래머스: 네트워크] - level 3 ✅ 제출한 코드def solution(n, computers): answer = 0 visited = [] def dfs(c): visited.append(c) connected = [c] while connected: x = connected.pop() for i in range(n): if computers[x][i] and i not in visited: .. 2025. 5. 14.
[프로그래머스] DFS | 타겟 넘버 - 경우의 수 (Python) 📝 문제 요약numbers의 덧셈/뺄셈 연산 결과가 target인 경우의 수를 구하는 문제 → DFS🔗 [프로그래머스: 타겟 넘버] - level 2 ✅ 제출한 코드def solution(numbers, target): answer = 0 def dfs(i, t_num): nonlocal answer if i==len(numbers): if t_num==target: answer += 1 return else: dfs(i+1, t_num-numbers[i]) dfs(i+1, t_num+numbers[i]) dfs(0, 0).. 2025. 5. 13.
[Spring Boot] 오류: No 'Access-Control-Allow-Origin' header is present on the requested resource - CORS 🔴 에러 메시지Access to XMLHttpRequest at 'http://example.com/api/data' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 🧐 발생한 상황Vue.js를 통해서 프론트엔드를 구현하면서 REST API를 호출하는 과정에서 발생 💥 원인 분석웹 페이지와 다른 도메인에서 API를 호출하는 경우에 보안 상의 이유로 브라우저가 요청을 차단서버에서 해당 요청을 허용하는 Access-Control-Allow-Origin 헤더가 설정되지 않아서 발생 ✅ .. 2025. 4. 26.
[Spring Boot] 오류: Ambiguous handler methods - URL 매핑 충돌 🔴 에러 메시지java.lang.IllegalStateException: Ambiguous handler methods mapped for '/recruit-apply/2' 🧐 발생한 상황@GetMapping으로 요청 URL 경로를 설정하는 과정에서 발생 💥 원인 분석두 개의 서로 다른 메소드가 같은 URL 패턴을 공유public ResponseEntity findAllByRecruitId(int)public ResponseEntity findAllnByUserId(int) ✅ 해결 방법요청 URL 경로가 충돌하지 않도록 명확히 분리해서 구분되도록 수정하여 해결! 2025. 4. 26.