- 스프링 배치는 단순한 기술이 아닌 배치 기능 제공 애플리케이션으로 봐야 하며, 사용되는 용어들을 이해하는 것이 중요 🧩
- 마틴 파울러의 DSL(도메인 특화 언어) 책을 통해 고객과의 명확한 의사소통을 위한 도메인 언어의 중요성을 강조 🗣️
- 도메인 언어 사용은 학습 속도 향상 및 전문적인 사고방식 습득에 기여 🧠
- 스프링 배치 핵심 단어: 잡 런처(실행), 잡(전체 과정), 스텝(세부 단계), 리더(입력), 프로세서(처리), 라이터(출력), 잡 리파지토리(관리) 🗂️
- 잡 런처는 잡과 잡 파라미터를 받아 잡을 실행하며, 잡 엑시큐션을 반환 🚀
- 잡은 스텝들을 담는 엔티티이며, 잡 리퍼지토리를 통해 관리되고 잡 빌더를 사용하여 생성 🏗️
- 잡 인스턴스는 잡 이름과 잡 파라미터로 구분되며, 동일한 이름과 파라미터로 재실행 시 중단된 곳에서부터 실행 가능 📍
- 잡 파라미터는 잡 실행에 필요한 파라미터이며, 잡 인스턴스를 구별하는 결정적 요인 🔑
- 잡 엑시큐션은 잡 인스턴스의 실행 단위이며, 실패 시 재실행을 통해 이전 실행 결과를 활용 🔄
- 스텝은 잡 안에서 순차적으로 실행되는 개별 작업 단위이며, 리더, 프로세서, 라이터로 구성 🪜
- 타스크릿은 스텝 내에서 로직을 담당하는 추상화된 인터페이스로, 아이템 리더, 아이템 프로세서, 아이템 라이터로 특화 ⚙️
- 스텝 엑시큐션은 스텝의 실행 단위이며, 엑시트 스테이터스를 통해 상태 관리 📊
- 엑스큐션 컨텍스트는 웹 애플리케이션의 세션과 유사하게, 배치 실행 중 필요한 정보를 저장하고 재시작을 용이하게 함 💾
- 잡 리파지토리는 스프링 배치 메타 테이블을 관리하며, 잡 인스턴스, 잡 엑시큐션, 스텝 엑시큐션 등의 정보를 저장하는 DB 📚
- 스프링 배치를 사용하지 않고도 메타 테이블 스키마를 활용하여 자체 배치 프로그램을 개발할 수 있음 💡