batch와 스프링 배치 : 대용량 처리만 하지 않는다
- 배치는 사용자 개입 없이 자동으로 데이터를 처리하는 것을 의미하며, 대량 데이터 처리에 국한되지 않고 주기적인 소량 작업에도 활용됨 🔄
- 배치 애플리케이션은 대용량 데이터 처리, 자동화, 오류 복구, 성능 최적화, 확장성 등의 특징을 가져야 함 ⚙️
- 스프링 배치는 배치를 프로세싱하는 프레임워크로, 잡 런처, 잡, 스텝, 잡 리파지토리 등의 아키텍처로 구성됨 🏗️
- 잡 리파지토리는 배치 작업의 메커니즘을 관리하며, 오류 발생 시 복구 기능을 제공함 💾
- 배치 사용 사례는 데이터 마이그레이션, 데이터 변환 및 집계, 대용량 데이터 처리, 주기적인 작업 실행 등 다양함 📊
- 데이터 마이그레이션 시 DB to DB 이동 외에도 파일 기반 데이터 임포트 기능이 필요할 수 있음 (특히 오픈 시 예상치 못한 문제 발생 대비) 🗂️
- 데이터 변환 및 집계는 빅데이터/AI 분야에서 원시 데이터를 정제하고 분석 가능한 형태로 가공하는 데 활용됨 🧪
- 대용량 데이터 처리의 예시로 이메일 발송, 레스트 API 데이터 처리 등이 있으며, 레스트 API는 실시간 또는 배치로 처리될 수 있음 📧
- 스케줄링은 쿼츠와 같은 도구를 사용할 수 있지만, 스프링 배치는 배치 관리 메커니즘까지 제공하는 애플리케이션임 ⏰
- 금융, 전자상거래, 통신, 의료 등 다양한 산업 분야에서 배치가 활용되고 있으며, 각 분야별로 특화된 사용 사례가 존재함 🏦
- 금융 분야에서는 사기 탐지 및 보고 자동화, 전자상거래에서는 판매자 정산, 통신에서는 청구서 생성, 의료에서는 익명화된 환자 데이터 생성 등에 활용됨 🏥