|
Space Map
|
Spring Batch에 처음 접근하는 방법
먼저 소스 코드를 실행하는 것을 좋아하는 개발자라면..
- Spring Batch의 archetype을 이용하여 자신만의 Batch 프로젝트를 생성해본다.
- Spring Batch 모듈을 실행해본다.
- 실행한 Spring Batch 모듈을 분석한다.
기본 구조와 개념을 이해하고 실행하는 것을 좋아하는 개발자라면..
- Spring Batch의 기본 Architecture를 이해와 개념을 이해한다.
- Spring Batch는 우리가 일반적으로 이해하고 있는 Batch 개념과 다른 부분이 많이 있다. 따라서 기본 아키텍처를 반드시 이해해야 한다.
- 특히 Batch 모듈이 스케줄러라고 생각하는 개발자들도 Spring Batch는 스케줄러 기능을 포함하고 있지 않다.
- Spring Batch는 수 많은 형태의 Batch에 대한 요구사항을 만족하기 위하여 Batch 기능을 세분화하고 있으며, 지금까지 우리가 알지 못하는 개념을 가지고 있다. 이에 대한 이해가 반드시 필요하다.
 | Spring Batch에 처음 접근하는 방법은 위 두가지 방법 중 어느 방식으로 접근해도 좋다. 단, 자신이 선호하는 방법으로 접근하면 좋을 것으로 생각한다. 단지 위 두 단계를 반드시 실행해야 Spring Batch에 대한 기본적인 개념 및 동작 방식을 이해할 수 있다. |
다음 단계
- 기본 개념과 개발 환경 구축이 완료되었다면 Spring Batch의 개념을 더 깊이 있게 이해하기 위하여 다음 단계를 거치는 것이 좋을 것으로 생각한다.
- Spring Batch에서 기본으로 제공하는 Archetype 프로젝트의 테스트 코드는 Spring 설정 파일을 이용 => 순수하게 자바 코드를 이용하여 Spring Batch 모듈을 테스트할 수 있도록 해본다. 이 과정을 통하여 앞에서 살펴본 Spring Batch의 기본 아키텍처와 개념을 더 깊이 있게 이해할 수 있다.
Spring Batch의 내부 들여다보기
Job의 설정 및 실행
- Job의 기본적인 기능 및 설정 방법을 익혀야 한다.
- Job의 기본 기능을 익힌 후 앞에서 만든 자바 소스 코드 모듈에 기능을 추가해 가면서 Job 기능을 익혀본다.
- Job이 실패할 경우 Restart가 가능해야 한다. Restart를 할 수 있는 Job과 그렇지 않은 Job으로 분리.
- Restart가 필요한 상황에 대한 이해가 필요하다.
- Job을 실행하기 위한 JobLauncher에 대한 이해를 해야 한다.
Step의 설정 및 실행
- Step의 기본적인 기능 및 설정 방법을 익혀야 한다.
- Step의 Chunk-Oriented Processing에 대한 이해가 있어야 한다. ItemReader와 ItemWriter가 기본적으로 어떻게 동작하는지를 이해할 필요가 있다.
- 다양한 ItemReader와 ItemWriter에 대한 이해를 해야 한다.
- Step에서는 File to File, File to DB, DB to DB등 다양한 형태의 Item Reader, Item Writer 기능을 익혀야 한다.
- 모든 기능을 모두 익히기는 힘들기 때문에 전체적인 구조를 파악하고 세세한 부분은 Spring Batch의 매뉴얼을 참조하는 것이 좋다.
Spring Batch 모듈 테스트하기
- Spring Batch 모듈은 UI가 없기 때문에 Junit과 같은 테스트 프레임워크를 이용하여 테스트를 해야 한다.
- Spring Batch에 대한 테스트는 좀 더 빨리 파악하여 활용하는 것이 바람직하다.
Spring Batch 활용하기
Spring Batch 배포 및 실행하기
- Spring Batch는 스케줄러 기능을 제공하지 않는다. 이와 같이 분리한 이유는 이미 Crontab, Quartz, JDK Timer에서 스케줄링 기능을 제공하고 있기 때문이다. Spring Batch에서는 단지 하나의 Batch 모듈을 개발하고 이미 존재하는 스케줄링 기능과 통합하면 된다.
- 마지막으로 살펴봐야 할 부분이 Spring Batch로 개발한 모듈을 배포하는 방법을 찾아야 한다. 웹 애플리케이션을 이용하여 배포하거나 일반 애플리케이션 형태로 Shell을 활용하여 배포할 수 있다.
Spring Batch에서 제공하는 Samples 프로젝트 최대한 활용하기
- Spring Batch에 포함되어 있는 Samples 프로젝트에는 Spring Batch에서 활용할 수 있는 모든 기능을 각각의 Batch 모듈로 분리하여 제공하고 있다. Spring Batch의 Samples 프로젝트를 분석하고 활용할 수 있는 노하우를 기른다.
- 이와 같은 능력은 추후 자신이 원하는 형태의 Batch 기능을 추가하고 싶을 때 많은 도움을 줄 것이다.
Spring Batch 모니터링 툴 만들기
- Spring Batch는 Batch 모듈이 실행하는 모든 정보를 데이터베이스에 저장하여 관리하는 것이 가능하다. 이 메타 데이터 정보를 바탕으로 자신만의 모니터링 툴을 만드는 것이 가능하다.
- 모니터링 툴을 이용하여 각 Job의 성공/실패 유무와 Job의 실행들을 관리하는 것이 가능하다.
|
Add Comment