이 글은 인프런 정수원님의 강의를 듣고 복습하며 작성한 글입니다. SpringBatch Test → @SpringBatchTest SpringBatch Test를 할 때는 @SpringBatchTest 어노테이션을 이용하면 편리하다. @SpringBatchTest를 사용하면 Batch Test에서 사용할 수 있는 유용한 스프링 빈을 등록해준다. JobLauncherTestUtils launcherJob() / launcherStep() 같은 스프링 배치 테스트 필요 유틸성 메서드 지원 JobRepositoryTestUtils JobRepository를 사용해서 jobExecution을 생성 및 삭제 기능 메서드 지원 StepScopeTestExecutionListener @StepScope 컨텍스트를 생..
이 게시글은 인프런 정수원님의 강의를 복습하며 작성한 글입니다. CompositeItemProcessor CompositeItemProcessor는 여러 ItemProcessor를 체이닝해서 사용할 수 있도록 지원해주는 클래스다. ItemProcessor 하나가 모두 처리하기에는 무거운 것이 있다고 하면, CompositeItemProcessor를 이용해서 ItemProcessor를 좀 더 분절화해서 코드 복잡도를 낮출 수 있다. 밑에서 간단히 코드를 보면서 확인할 예정이지만, CompositeItemProcessor는 입력받은 Input Chunk의 Item을 하나씩 가지고 와서, 모든 ItemProcessor에 순서대로 처리를 해준다. 그리고 Output Chunk에 1개씩 저장해주는 형식으로 동작한..
이 게시글은 인프런 정수원님의 강의를 수강하고 복습하며 정리한 글입니다. ItemWriterAdapter ItemWriterAdapter는 이미 내부적으로 사용하고 있는 Service 계층의 메서드를 Spring Batch Job에서 사용할 수 있도록 제공된다. Spring Batch는 여러 형태의 ItemWrtier 구현체를 제공하고 있으나, 모든 조건을 만족하지는 않기 때문이다. 코드의 재사용성을 생각한다면 ItemWriterAdapter를 사용하는 것도 하나의 방법이 될 수 있다. ItemWriterAdapater API ItemWriterAdapter는 ItemWriterAdapter 클래스를 생성하고, 생성된 객체에 이런저런 파라메터를 설정해주면 된다. setTargetMethod : inovk..
이 게시글은 인프런 정수원님의 강의를 보고 복습하며 작성한 글입니다. JdbcBatchItemWriter JdbcBatchItemWriter는 JdbcBatch의 bulk insert / update / delete 연산을 활용하는 Writer다. bulk 연산이 무엇인지 처음에는 감이 안 잡혔는데 아래와 같다고 한다. # 기본 SQL insert into customer(id, birthDate) values(val1, val5); insert into customer(id, birthDate) values(val2, val6); insert into customer(id, birthDate) values(val3, val7); insert into customer(id, birthDate) value..
이 글은 인프런 정수원님의 강의를 복습하며 작성한 글입니다 ItemReaderAdatper 스프링 배치에서는 여러가지 ItemReader를 전달해준다. 그런데 이 ItemReader를 통해서는 이미 존재하고 있는 DAO / 다른 서비스를 ItemReader에서 사용할 수는 없다. 그래서 Spring Batch는 중간에 Adapater 패턴을 도입해서 기존 서비스의 값을 ItemReader로 읽어올 수 있도록 도와준다. ItemReaderAdapater는 자바의 Reflection 기술을 사용한다. ItemReaderAdapter에 불러올 객체와 메서드 명을 셋팅해주면, ItemReaderAdapater는 Invoker를 만들고, invoker를 invoke로 타겟 객체의 타겟 메서드를 불러오는 역할을 해..