728x90
Spring Batch
대량의 데이터를 처리하는데 사용되는 오픈 소스 배치 프레임워크입니다.
Spring 프레임워크의 일부로 개발되었으며, 데이터베이스, 파일 등과 같은 다양한 소스로부터 대량의 데이터를 읽어 처리하고, 가공한 데이터를 다시 저장하거나 출력하는 등의 작업을 수행하는데 주로 사용됩니다.
- 확장성과 성능
- 대량의 데이터를 효율적으로 처리하기 위한 다양한 기능과 패턴을 제공하여 성능과 확장성을 보장
- Chunk 기반 처리 방식을 통해 대용량 데이터 처리를 안정적으로 수행 가능
- 트랜잭션 관리
- 작업의 성공 또는 실패 시 롤백과 재시작을 지원하여 데이터의 무결성과 안정성을 보장
- Chunk 지향 처리
- 대용량 데이터를 처리할 때 데이터를 묶어서(Chunk) 트랜잭션 단위로 처리하므로 OutOfMemoryError 등의 메모리 관련 문제를 예방하고 처리 성능을 향상
- 재시작 기능
- 장애 발생 시 지정된 지점부터 재시작할 수 있는 기능을 제공하여 안정적인 데이터 처리를 보장
- 스프링 통합
- Spring 프레임워크와 완전히 통합되어 Spring의 IoC(Inversion of Control) 컨테이너, AOP(Aspect-Oriented Programming) 등을 활용
- 대표적인 구성 요소
- Job
- Spring Batch에서 처리 작업의 최상위 단위
- 하나의 Job은 여러 개의 Step으로 구성
- 배치 처리의 시작점을 정의하며, 하나 이상의 Step을 순차적으로 실행
- 재시작, 중지, 완료 등의 상태를 관리하고 모니터링할 수 있는 기능을 제공
- Step
- Spring Batch 처리 작업의 실행 단위
- 하나의 Step은 ItemReader(데이터를 읽기), ItemProcessor(데이터를 가공), ItemWriter(데이터를 저장)로 구성
- Chunk 지향 처리를 통해 대량의 데이터를 작은 단위로 끊어서 처리
- 재시작 가능한 단위로, 트랜잭션 관리를 통해 데이터 처리의 무결성을 보장
- ItemReader
- 데이터를 읽어오는 역할
- 데이터베이스, 파일, REST API 등 다양한 소스에서 데이터를 읽어올 수 있다.
- 읽어온 데이터는 Step의 ItemProcessor로 전달
- ItemProcessor
- 읽어온 데이터를 가공하거나 비즈니스 로직을 적용
- 읽어온 데이터를 원하는 형태로 가공하거나 유효성 검사를 수행
- 가공된 데이터는 Step의 ItemWriter로 전달
- ItemWriter
- 가공된 데이터를 저장하거나 출력하는 역할
- 데이터베이스에 저장하거나 파일로 출력하는 등의 작업을 수행
- Job
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
구독 QueryDSL 및 Redis 사용 개발 (0) | 2023.08.27 |
---|---|
JPA & QueryDSL 사용한 Project (0) | 2023.08.11 |
Interceptor, Filter 차이 (0) | 2023.07.04 |
JPA 적응기_2(Basic편) (0) | 2023.06.11 |
JPA 기본 log사용하기 (0) | 2023.06.11 |