-
스프링 배치 완벽가이드 2/e - 1장 배치와 스프링Java, Kotlin, Spring 2022. 1. 12. 08:25
왜 자바로 배치를 처리하는가?
유지 보수성
- 배치 처리 코드는 일반적으로 다른 애플리케이션 코드보다 수명이 훨씬 김
- 스프링 배치는 트랜잭션 및 커밋 횟수와 같은 것들을 애플리케이션에 제공함
유연성
- OS에 종속되지 않는 JVM의 유연성
- 시스템 간 코드를 공유할 수 있는 능력
- POJO로 업무 로직을 구현하면, 해당 로직을 웹 애플리케이션이나 배치 처리에서 모두 사용할 수 있음
확장성
- 병렬 처리 지원
- 트랜잭션 커밋 건수와 롤백 건수 등 배치 처리에 필요한 기능을 제공하여, 애플리케이션 확장성에 도움을 줌
개발 리소스
- 스프링 프레임워크를 사용하는 풍부한 인적자원
지원
- 스프링 프레임워크의 방대한 커뮤니티 (Github, Stackoverflow 등)
비용
- 오픈소스 프레임워크로 반복적인 라이선스 비용 불필요함
스프링 배치의 사용 사례
ETL
- Extract (추출), Transform (변환), Load (적재)
데이터 마이그레이션
- 간단한 배치 잡을 기동하고 수행하는 데 많은 코딩이 필요 없음
- 데이터 마이그레이션을 수행할 때 당연히 포함해야 할 기능임에도 대부분 제대로 구현하지 않는 커밋 횟수 측정이나 롤백 기능 등을 제공함
병렬 처리
- 멀티 코어 또는 멀티 서버에 처리를 분산하는 기능 제공
스프링 배치 프레임워크
- 액센츄어사와 스프링소스사 간의 협업으로 개발됨
- 데이터 유효성 검증, 출력 포매팅, 복잡한 비즈니스 규칙을 재사용 가능한 방식으로 구현하는 기능, 대규모 데이터셋 처리 기능이 구현되어 있음
- 스프링 배치는 레이어 구조로 조립된 세 개의 티어로 이뤄져 있음
- 애플리케이션 레이어가 최상위에 있는 것이 아니라, 다른 두 레이어인 코어 레이어와 인프라스트럭쳐 레이어를 감싸고 있음
- 개발자가 개발하는 대부분의 코드가 코어 레이어와 함께 동작하는 애플리케이션 레이어지만, 때로는 인프라스트럭처의 일부를 만들기도 하기 때문임
이 포스팅은 스프링 배치 완벽가이드 2/e 의 내용을 요약 정리한 것 입니다.
반응형'Java, Kotlin, Spring' 카테고리의 다른 글
Testcontainers 재사용 설정하기 (0) 2022.01.12 스프링 배치 완벽가이드 2/e - 2장 스프링 배치 (0) 2022.01.12 자바 8 - 함수형 인터페이스 Consumer<T> (0) 2022.01.12 자바 Iterable, Iterator, Collection, List 분석하기 (0) 2022.01.12 자바 8 - 함수형 인터페이스 Predicate<T> (0) 2022.01.12