2024.03.06 - [분류 전체보기] - Spring Batch 실습(1)
이전 글에서는 직접 Batch 를 코드로 구현 해봤다.
Spring Batch에 한층 더 가까워 지기 위해 코드를 향상 시켜보는 글이 될 것 같다.
우선 Batch 의 기본 동작 원리인 read, processing, save 3가지 순서를 레포지토리로 만들어주고 그에 대한 구현 클래스를 짰다. 이러니 확실히 더욱 단일책임의 원칙을 지키게 되어 코드보는 것도 깔끔하고 유지보수 과정에서 수정할 부분만 찾아서 수정할 수 있으니, java스러운(?) 코드가 된 것 같다.
여기서 생성자로만 객체에 값을 집어넣었는데, 빌더패턴을 사용해서 가독성도 높고 수정도 용이한 코드로 리팩토링했다.
return Job.builder()
.itemReader(itemReader)
.itemProcessor(itemProcessor)
.itemWriter(itemWriter)
.jobExecutionListener(listener)
.build();
실습을 해보면서 처음부터 큰 변화 과정을 설명한다면
- 하나의 클래스에 모든 로직을 넣음
- 관심사를 분리시켜서 비즈니스로직, 작업으로 나눔
- 비즈니스 로직(Batch)을 다시 read, processing, save 3가지로 나눔
이제 완전히 다 나누어 진것같다. 여기서 주목해볼 수 있는 점은 객체지향 5원칙(SOLID)을 지킨다는 것이다. 이제 우리는 비즈니스 로직(Batch) 코드만 신경써서 구현하면 된다!
단일 책임 원칙(SRP)
개방 폐쇄 원칙(OCP)
리스코프 치환 원칙(LSP)
인터페이스 분리 원칙(ISP)
의존 역전 원칙(DIP)
이제부터 요구 사항을 늘려 봐서 정말 내가 코드를 짜기 편한 구조인지 테스트 해볼 것이다.
2024.03.09 - [Spring/Batch Programming] - Spring Batch 실습(3)\
'Spring > Batch Programming' 카테고리의 다른 글
Spring Batch 실습(4) (0) | 2024.03.10 |
---|---|
Spring Batch 실습(3) (0) | 2024.03.09 |
Spring Batch 실습(1) (1) | 2024.03.06 |
Spring Batch (0) | 2024.03.05 |
Batch (0) | 2024.03.05 |