본문 바로가기

전체 글

(181)
[JAVA/Spring] OpenEntityManagerInView 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 요청을 받으면, OpenEntityManagerInViewI..
[JAVA/SPRING] NoUniqueBeanDefinitionException : No qualifying bean of type 'jakarta.persistence.EntityManagerFactory' available NoUniqueBeanDefinitionException 오류 해결 방법ERROR [main] o.s.boot.SpringApplication - Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0: Error creating b..
Selct Count 차이 세 방법의 가장 중요한 차이는 "무엇을 세느냐(NULL 값 처리 여부)" 이고, 성능 차이는 현대 데이터베이스에서는 거의 없다는 점1. COUNT(*)의미: 테이블의 모든 행(Row)의 개수를 셉니다.NULL 처리: 특정 컬럼에 NULL 값이 있든 없든, 행 자체를 계산하기 때문에 NULL 값에 영향을 받지 않습니다.사용: 전체 레코드 수를 알고 싶을 때 가장 표준적으로 사용되는 방법성능: 쿼리 옵티마이저가 가장 효율적인 방법(일반적으로 Primary Key나 가장 작은 인덱스)을 찾아 행 수를 계산2. COUNT(1)의미: COUNT(*)와 동일하게 모든 행의 개수를 셉니다.작동 방식: 1이라는 NULL이 아닌 상수 값이 각 행마다 존재한다고 가정하고, 이 상수 값이 존재하는 횟수를 세는 방식 -> 결..
Spring Batch : java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '0' for key 'BATCH_JOB_INSTANCE.PRIMARY' 배치 실행 성공 여부 확인시 아래 에러 확인.2025-11-18 05:05:00.059 INFO [quartzScheduler_Worker-2] org.quartz.core.JobRunShell - Job DEFAULT.hibernateUsersJobLauncher threw a JobExecutionException:org.quartz.JobExecutionException: Batch Job execution failed. at com.eva.as.batch.batch.AbstractBatchJobLauncher.executeInternal(AbstractBatchJobLauncher.java:43) at org.springframework.scheduling.quartz...
[Jenkins] Operation not permitted Docker 를 통해 컨테이너화시킨 젠킨스에서 볼륨으로 사용되는 디렉토리에서 권한 문제가 발생하는 경우, 이는 주로 호스트 머신에서 마운트된 디렉토리의 소유권과 권한 설정이 컨테이너 내부의 설정과 충돌하기 때문입니다. Docker 볼륨은 컨테이너의 파일 시스템과 호스트의 파일 시스템 사이에서 공유되기 때문에, 아래 사항들을 확인하고 적절히 조정해야 합니다.1. 권한 문제가 발생하는 이유 • 호스트 디렉토리의 소유권:Docker 컨테이너에서 실행되는 프로세스는 특정 사용자/그룹 ID로 실행됩니다(예: jenkins:jenkins).그러나 호스트에서 마운트된 디렉토리가 root:root 또는 다른 사용자/그룹으로 설정되어 있으면, 컨테이너 내부에서 해당 디렉토리와 파일을 수정할 권한이 없을 수 있습니다. •..
[JAVA] Code Convetion & Formatter 설명된 IDE는 Intellij IDEA이며, 코드 컨벤션 준수를 위해 CheckStyle 및 Google Style 기반 Formatter를 설정합니다. 아래는 설정 및 적용 방법에 대한 상세 가이드입니다.사용하는 이유?Google Style 기반 코드 컨벤션을 쉽게 준수할 수 있고, CheckStyle 플러그인으로 코드 스타일 오류를 사전에 방지하고, Google Style Formatter를 통해 일관된 코드 품질을 유지할 수 있음.>>> 이를 통해 팀 내 개발 생산성과 코드 일관성을 동시에 확보할 수 있습니다.1. Intellij IDEA에 CheckStyle 플러그인 설정1.1. 플러그인 설치 1. Intellij IDEA를 실행합니다. 2. 상단 메뉴에서 Settings(설정) → **Plug..
Jmeter JMeter 개요  • Apache JMeter는 다양한 애플리케이션, API, 웹 서비스 등에서 성능과 부하 테스트를 수행할 수 있는 오픈 소스 도구. • 기본적으로 Java로 구현되어 다양한 운영체제에서 사용 가능하며, HTTP(S) 웹 애플리케이션뿐만 아니라 FTP, SOAP, RESTful 서비스, 데이터베이스 등 여러 프로토콜을 지원. • 주요 기능으로는 부하 테스트, 성능 테스트, 스트레스 테스트, 지속 시간 측정 등이 있음. • 주요 장점으로는 GUI 기반의 편리한 인터페이스, 다양한 확장성, 직관적인 설정으로 비개발자도 손쉽게 사용할 수 있다는 점. JMeter 설치방법  1. Java 설치 확인 • JMeter는 Java로 작성되었기 때문에 Java Development Kit (JDK)..
Querypie Querypie 는 기업이 사용하는 온프레미스 및 클라우드 환경에서 안정적인 사이버보안 위협에 대응할 수 있도록 유연한 통합 보안 솔루션을 제공하는 서비스. 데이터베이스 접근제어, 시스템 접근제어, 컨테이너 접근제어 등 데이터보안 솔루션 개발사로서 다양한 서비스(Okta,azure,slack,valut 등)와의 간편하게 연동을 하여 사용할 수 있는 서비스.쿼리파이를 통해서, RBAC + ABAC 를 융합한 방식으로 사용자들의 계정과 권한들을 제어할 수 있게되는 것.이와 같은 예시로 운용 → 신규 입사 > 직무/조직 등 설정 > SCIM 연동 > 쿼리 파이 권한 부여 > DB / Server 자동할당 되는것. 보안은 증가하고 관리는 더 효율적으로 제공가능참고OKTA 는 클라우드 기반의 아이덴티티 관리 서비..