분류 전체보기11 [Programmers] 혼자 놀기의 달인 Lv2 (Java) 1. 문제 요약 및 풀이 구조 파악: 임의의 상자에서 시작하여 카드에 적힌 번호를 따라가며, 이미 열린 상자를 만날 때까지 반복하면하나의 그룹(사이클)이 형성된다. 모든 상자는 여러 개의 고정된 그룹으로 나뉜다.점수 계산: 1번 그룹의 크기 * 2번 그룹의 크기목표: 이 게임에서 얻을 수 있는 최고 점수를 구해야 한다. (모든 그룹 중 가장 큰 두 그룹의 크기를 곱한 값) 정답 코드import java.util.ArrayList;import java.util.Collections;class Solution { public int solution(int[] cards) { int N = cards.length; boolean[] opened = new boolean[N]; .. 2025. 10. 29. [Linux] M3 맥북 리눅스 환경 구축: UTM 가이드 및 도커 비교 맥북 M3 칩(Apple Silicon)은 기존 인텔 맥과 구조가 다르기 때문에 Linux를 설치하는 방식도 달라진다.가장 안정하고 호환성이 높은 가상 머신(VM) 방식 1. 왜 VM(가상 머신)이 필요한가? (feat.M3 칩)맥북 M3 칩은 ARM 아키텍처를 사용하며, 기존의 리눅스 배포판들은 이 ARM 하드웨어를 직접 구동하는 데 필요한 드라이버나 완벽한 지원을 갖추지 못한 경우가 많다.설치 방식설명장점단점VM (가상 머신)macOS 내에서 리눅스를 하나의 앱처럼 실행가장 안정적이고 안전함macOS에 영향 없음하드웨어 호환성 높음네이티브 설치 대비 약간의 성능 손해네이티브 설치 (Asahi)macOS와 함께 리눅스를 독립적인 OS로 설치최고 성능설치 난이도 높음,M3의 일부 하드웨어(Wi-Fi, .. 2025. 10. 23. 🐱 github repository 로컬 프로젝트에 연결하기~ 새로운 프로젝트를 생성하고 깃허브 레포지토리에 연결하는게 한두번도 아닌데 매번 새롭다그러니 기록해야지 1단계: Git 초기화로컬 프로젝트 폴더가 Git으로 관리되게끔 Git 로컬 저장소로 초기화 한다.git init 2단계: 깃허브 원격 연결깃허브에서 생성한 레포지토리의 주소를 복사하여 로컬 저장소에 연결한다.git remote add origin [깃허브 레포지토리 URL]※ `origin`은 이 URL을 가리키는 별명(Alias)이다.원격 저장소 주소를 매번 입력하는 대신 `origin`이라고 부르기 위해 이름을 지정하는 것이다. 3단계: 파일 추가 및 커밋프로젝트 파일을 Git 스테이지 영역에 추가하고 로컬에 커밋한다.git add .git commit -m "init: 최초 commit"※ 프.. 2025. 10. 8. 🚨[JPA] LazyInitializationException: failed to lazily initialize a collection of role 1. 문제 상황Spring Boot + JPA 환경에서 온도 조회 API를 개발하던 중 아래와 같은 예외가 발생했다.failed to lazily initialize a collection of role: goorm.ddok.member.domain.User.positions: could not initialize proxy - no Session 즉, `User` 엔티티에서 연관된 컬렉션(positions)을 접근하려고 했는데 Hibernate 세션이 이미 닫혀 있어서 Lazy 로딩을 수행하지 못한 상황이다. --- 2. 원인 분석내 서비스 코드는 대략 이런 구조였다.public TemperatureMeResponse getMyTemperature(CustomUserDetails currentUser).. 2025. 9. 12. 🚨 Docker로 Redis 실행 시 포트 충돌 에러 해결하기 (bind: address already in use) 1. 문제 상황Docker로 Redis 컨테이너를 실행하려고 했는데 아래와 같은 에러가 발생했다.Error response from daemon: ports are not available: exposing port TCP 0.0.0.0:6379 -> 127.0.0.1:0: listen tcp 0.0.0.0:6379: bind: address already in use❌ Redis 실행 실패./start-dev.sh를 실행하면 컨테이너가 뜨지 않고 실패한다.2. 원인 분석Redis의 기본 포트는 6379그런데 이미 로컬에서 실행 중인 redis-server 프로세스가 6379를 점유 중이었다.거기에 docker run으로 Redis를 띄우려 하니 포트가 겹쳐서 충돌 발생 ⚡️확인 방법:lsof -i :6.. 2025. 8. 28. 🚨 Lombok @Builder 사용 시 JPA 컬렉션(List) NPE 문제와 해결 문제 상황Spring Boot + JPA 환경에서 엔티티를 작성하던 중, 연관관계 컬렉션(List)에 데이터를 추가하려고 할 때 NullPointerException이 발생했다. 에러 메시지:Cannot invoke "java.util.List.add(Object)" because the return value of "goorm.ddok.study.domain.StudyRecruitment.getTraits()" is null 엔티티에서는 이미 컬렉션을 new ArrayList()로 초기화해둔 상태였는데도, 서비스 로직에서 .add() 호출 시 NPE가 발생했다.원인문제의 핵심은 Lombok의 @Builder 동작 방식이다.@Builder는 필드 초기화식이 아닌, 생성자를 통해 객체를 생성한다.따라서 다.. 2025. 8. 24. 이전 1 2 다음