본문 바로가기

분류 전체보기25

스프링 배치 완벽 가이드 - 5. JobRepository와 메타데이터 스프링 배치는 잡이 실행될 때 잡의 상태를 JobRepository에 저장해서 관리한다. 잡의 재시작 또는 아이템 재처리 시 어떤 동작을 수행할지 이 정보를 사용해 결정한다. 잡이 처리되는데 걸리는 시간, 오류로 인해 재시도된 아이템 수, 잡이 어디까지 실행됐는지 등을 기록하여 모니터링 데이터로 사용할 수 있다. Job Repository란? 스프링 배치에서 JobRepository는 인터페이스 혹은 메타데이터를 저장하는 저장소를 의미한다. 여기서는 저장소에 대해 알아본다. 스프링배치에서는 관계형 데이터베이스와 인메모리 저장소를 사용할 수 있다. 관계형 데이터베이스 사용하기 스프링 배치가 제공하는 여러 테이블을 사용해 배치 메타데이터를 저장한다. Version 대부분의 메타데이터 테이블에서 VERSION.. 2021. 5. 6.
스프링 배치 완벽 가이드 - 4. 잡과 스텝 이해하기 잡 소개하기 이 책에서 잡의 정의: "처음부터 끝까지 독립적으로 실행할 수 있는, 고유하고, 순서가 있는 스텝의 목록이다." 고유하다(unique): 잡은 자바나 XML을 사용하여 구성하며, 재사용이 가능하다. 하나의 구성으로 필요한 횟수 만큼 잡을 실행할 수 있다. 잡을 여러 번 실행하려고 동일한 잡을 여러 번 정의할 필요가 없다. 순서가 있는 스텝의 목록이다(ordered list of steps): 잡에서 스텝의 순서는 중요하다. 모든 스텝이 논리적인 순서로 실행될 수 있도록 잡을 구성한다. 처음부터 끝까지 실행 가능하다(Can be executed from start to finish): 잡은 외부와 상호작용 없이 실행할 수 있는 일련의 스텝이다. 독립적으로(independently): 각 배치 .. 2021. 5. 2.
스프링 배치 완벽 가이드 - 3. 예제 잡 애플리케이션 은행 거래명세서 잡의 요구사항 이해하기 배치 처리가 수행하는 전체 기능: 제공된 입력 파일을 기반으로 고객 정보를 갱신한다. 고객 정보가 담긴 CVS 파일이 제공된다. 이 파일을 읽어 데이터베이스의 고객 데이터(이름, 메일 주소, 연락처)를 갱신한다. 데이터베이스에 저장되어 있는 모든 고객의 거래 정보를 가져온다. 거래 정보는 XML 파일로 제공되며 기존 데이터베이스(거래 테이블)에 추가할 것이다. 계좌 테이블의 계좌 잔액을 최신으로 갱신한다. 계좌 테이블에는 잔액 필드가 있으며, 가장 최근에 가져온 모든 거래 정보를 사용해서 계산하여 갱신한다. 현재 잔액을 알고 싶을 때, 모든 거래를 처음 부터 재계산하지 않아도 된다. 지난 한 달 동안의 은행 계좌에 대해 인쇄한다. 모든 데이터베이스 갱신이 완료되면 .. 2021. 5. 2.
스프링 배치 완벽 가이드 - 2. 스프링 배치 예제코드 github.com/AcornPublishing/definitive-spring-batch 배치 아키텍처 애플리케이션 레이어: 개발자가 작성한 코드. 대부분 코어 레이어와 상호작용한다. 코어 레이어: 배치 영역을 구성하는 실제적인 컴포넌트들(Job, Step, JobLauncher, JobParameters) 인프라스트럭쳐 레이어: ItemReader, ItemWriter, Repeat Job과 Step Job은 상태를 수집하고, 이전 상태에서 다음 상태로 전환된다. State Machine. 가장 일반적인 상태의 형태는 Step이다. Step은 Job을 구성하는 작업 단위이다. Step의 유형 Tasklet 기반 Step 구조 간단 Tasklet interface를 구현한다. Step이 중지될.. 2021. 5. 1.
7장 마이크로서비스 쿼리 구현 (Implementing queries in a microservice architecture) DB가 하나인 모놀리식 애플리케이션에서는 쉽게 쿼리를 구현할 수 있다 SELECT 쿼리 작성 인덱스 정의 분산 데이터와 관련해서 쿼리를 구현하는 방법이 필요하다. 여러 서비스, 여러 DB에 흩어져 있는 데이터를 조회해야 하는 경우가 많다. MSA에서는 다음 두 가지 패턴으로 쿼리를 구현한다. API 조합(composition) 패턴: 클라이언트에서 여러 서비스를 직접 호출하여 그 결과를 조합 단순하며 추천됨 CQRS 패턴 (Command Query Responsibility Segregation, 커맨드-쿼리 책임 분리) : 쿼리(조회)만 할 수 있는 뷰 전용 DB를 유지하는 패턴 API 조합 패턴보다 강력하지만 구현은 더 복잡 7.1 API 조합 패턴 응용 쿼리 FTGO 애플리케이션의 쿼리 중에는 fi.. 2021. 4. 25.