IntelliJ CheckStyle 설정 가이드: Google Style Formatter로 코드 품질 높이기

혼자 코딩할 때는 크게 신경 쓰지 않았던 문제들이 팀 프로젝트를 시작하면 수면 위로 떠오릅니다. 그중 가장 대표적인 것이 바로 ‘코드 스타일’입니다. 괄호의 위치, 들여쓰기 간격, Import 순서 등 사소해 보이는 차이가 코드 리뷰 시간을 잡아먹고 가독성을 떨어뜨리는 주범이 되곤 합니다. 오늘은 Java 개발자들이 가장 많이 사용하는 IDE인 Intellij IDEA에서 IntelliJ CheckStyle 설정과 Google Style Formatter를 적용하여, … 더 읽기

Jenkins Docker 권한 문제 해결: 볼륨 마운트 시 “Operation not permitted” 오류 완벽 가이드

Docker를 활용해 CI/CD 환경을 구축할 때, Jenkins 데이터를 영구적으로 보관하기 위해 호스트 디렉토리를 볼륨으로 마운트하는 것은 필수적입니다. 하지만 이 과정에서 많은 개발자들이 Jenkins Docker 권한 문제 해결에 어려움을 겪곤 합니다. Jenkins가 마운트된 디렉토리에 파일을 쓰지 못해 플러그인 설치가 실패하거나, 설정이 저장되지 않는 등의 문제가 발생하기 때문입니다. 이번 포스팅에서는 로그 파일에 가득 찬 java.nio.file.FileSystemException: … Operation not permitted에러의 … 더 읽기

Spring Batch DuplicateKeyException 해결: BATCH_JOB_INSTANCE Duplicate entry 0 오류 완벽 가이드

Spring Batch를 운영하다 보면 Quartz 스케줄러와 연동된 배치가 갑자기 실행되지 않고 실패하는 경우가 있습니다. 특히 DB 마이그레이션 직후나 초기 설정 단계에서 자주 마주치는 에러가 하나 있는데, 바로 Primary Key 중복 오류입니다. 오늘은 로그 파일만 봐서는 원인을 파악하기 힘든 Spring Batch DuplicateKeyException 해결 방법에 대해 깊이 있게 알아보겠습니다. 특히 BATCH_JOB_INSTANCE 테이블에서 발생하는 Duplicate entry ‘0’ 에러의 근본적인 원인과 이를 해결하기 위한 SQL … 더 읽기

Spring Boot NoUniqueBeanDefinitionException 해결 방법: 다중 EntityManager 설정

Spring Boot 프로젝트를 진행하다 보면 데이터베이스를 하나가 아닌 여러 개를 연결해야 하는 상황이 종종 발생합니다. 예를 들어, 레거시 DB와 신규 서비스 DB를 동시에 바라봐야 하거나, 읽기 전용과 쓰기 전용 DB를 분리하는 경우입니다. 하지만 이렇게 야심 차게 멀티 데이터 소스를 설정하고 애플리케이션을 실행했을 때, 예상치 못한 Application run failed 메시지와 마주하게 됩니다. 오늘은 Spring Boot 개발자들을 가장 당혹스럽게 … 더 읽기

OEIV : OpenEntityManagerInView

OEIV OpenEntityManagerInView (OEIV)는 Spring Framework와 JPA(Java Persistence API)를 함께 사용할 때 발생하는 지연 로딩(Lazy Loading) 문제를 웹 환경에서 해결하기 위해 설계된 패턴이자 Spring에서 제공하는 인터셉터(Interceptor) 1.  OEIV의 개념 및 목적 목적 웹 요청 처리 과정 전체에서 JPA의 EntityManager를 열린 상태로 유지하여, View 렌더링 단계에서 발생하는 지연 로딩 예외(Lazy Loading Exception)를 방지 작동 방식 Spring의 DispatcherServlet이 HTTP 요청을 받으면, OpenEntityManagerInViewInterceptor가 트랜잭션과 … 더 읽기