Job 실행 관련 프로퍼티spring.batch.job.enabled : application context 에 등록된 Job 을 실행을 활성화하는 프로퍼티true (default) : Job 을 실행 가능하도록 활성화 / false : 모든 Job 을 실행 불가능하도록 설정spring.batch.job.name : 실행할 배치 Job 을 job name 을 기준을 기반으로 선언spring.batch.job.name=값이 없으면 모든 잡을 실행 (spring batch 5.x 부터 exception 반환하며 실행하지 않음.)spring.batch.job.name=jobName1jobName1 이름의 잡만 실행하겠다는 의미spring.batch.job.name=jobName1,jobName2spring ..
1. Spring Batch??스프링 배치는 한마디로 이야기 하자면 개발자가 정의한 작업을 일괄처리를 지원하는 모듈을 의미한다. 일정 주기로 실행하는 로직을 별도의 어플리케이션을 적용함으로써 하나의 어플리케이션의 부하를 분산시키고 비즈니스 로직에 집중할 수 있는 장점이 있다. 그리고 스프링에서 제공하는 Spring-Batch-Docs 에서는 아래와 같이 배치가 필요한 경우에 대한 예시를 정의하고 있다. 특정 유저와의 상호작용이 없는 대용량 자동화 프로세스, 주로 시간 기반 이벤트(월말 정산 처리)가 필요한 경우대용량 데이터 셋을 반복, 주기적으로 프로세싱하는 어플리케이션의 경우 (보험 혜택을 정하거나 보험료를 조정하는 일)내 / 외부 시스템으로 부터 받은 정보를 통합하는 일. 이 내용에는 포맷팅, ..
1. org.hibernate.engine.query.spi.QueryPlanCache 일반적으로 쿼리를 사용하는 경우, where 절에 in clause 를 사용하는 경우가 많다. JPA 의 구현체인 Hibernate 는 JPQL, Criteria 쿼리를 AST(Abstract Syntax Tree)으로 파싱한다. 이 때 쿼리 컴파일 시간을 단축하기 위해 Hibernate 에서는 QueryPlanCache 을 사용한다. 모든 쿼리를 실행할 때마다 QueryPlanCache 을 확인하여 실행 계획의 캐싱 여부를 확인해 다음 쿼리를 사용할 때 재사용한다. (네이티브 쿼리의 경우, 파라미터와 반환 타입을 추출하여 ParameterMetadata 에 저장한다.) 2. spring.jpa.properties.h..
1. UUID (Universally Unique IDentifier) ?? 범용 고유 식별자는 네트워크 상에서 중복되지 않는 식별자를 만들기 위한 표준 규약이다. GUID(전역적으로 고유 식별자)라고도 부르며 RFC4122 로 지정되어 있다. UUID는 아래와 같은 규칙을 기반으로 생성된다. UUID 는 128bit(16 octec) 수이다. 32개의 16진수로 표현되며, 하이픈(-)을 포함해 총 36개 문자로 구성되어 있다. UUID 는 8-4-4-4-12 형태로 총 5개의 그룹이며 하이픈(-) 을 기준으로 구분되어 있다. 이름 길이(byte) 길이(hex) 길이(bits) 내용 time_low 4 8 32 시간의 low 32bit 를 부여하는 정수 time_mid 2 4 16 시간의 middle ..
이전에 작성했던 Spring AOP 블로그 글 옮긴 내용 1. AOP ?? Spring AOP는 스프링에서 지원하는 AOP(Aspect Oriented Programming)을 말한다. Aspect는 부가 기능을 의미한다. 부가 기능은 비즈니스 로직를 담당하지는 않지만 애플리케이션의 유지보수와 안정성을 위해서는 필요한 기능이다. 대표적인 예시로 로깅과 트랜잭션이다. 만약 AOP를 사용하지 않으면 비즈니스 로직 사이에 부가 기능에 관련된 코드를 추가해야 한다. 비즈니스 로직 사이에 추가된 부가 기능 코드들을 비즈니스 로직의 가독성을 떨어뜨리고 같은 부가 기능에 대한 코드 중복이 발생해 유지보수가 어렵다. AOP을 통해 비즈니스 로직과 부가 기능을 분리하고 코드를 한 곳에서 관리해 로직의 응집도와 유지보수..
1. OSIV(Open Session In View) 란?? OSIV(Open Session In View)은 영속성 컨텍스트 관리 영역을 뷰(View)까지 확장하는 기능이다. Open Session In View라 불리는 이유는 JPA의 구현체인 Hibernate 에서 EntityManager의 구현체로 Session 을 사용한다. JPA에서는 OEIV(Open-EntityManager-In-View) 로 부르지만 통상적으로 Open-Session-In-View 로 부른다. 2. Spring-Boot 의 프로퍼티 기반 OSIV 설정 과정 Spring-Boot 는 프로퍼티를 기반으로 한 자동 설정을 지원한다. JpaBaseconfiguration 추상 클래스의 nested static class 인 Jp..