Spring Batch

Study/Spring 2012. 12. 13. 11:19

출처 http://seosh81.info/?p=614

 

스프링 배치(Spring Batch) 프레임웍에 대해서 공부하기 전에 먼저 그 정의부터 알아야할 필요가 있다. Spring은 개발자라면 사용해보지는 않았더라도 들어는 봤을거라 생각해서 생략.

개인적으로 이름이나 타이틀은 그 본질적인 의미를 가장 잘 함축적으로 표현할것이라 생각해서 단어의 뜻을 찾아보았다. Batch로 검색하니 위키피디아에 많은 링크가 등장했다. 그 중에서 가장 가깝다고 생각하는 것을 하나 꼽았다.

간단히 요약하면 배치란 누구의 간섭, 참여 없이 일련의 작업(데이터 입력, 처리, 출력)이 동작하는 것을 말한다. 이와 반대되는 단어는 ‘online’과 ‘interactive programs’가 될 수 있겠다.

거의 모든 애플리케이션에서 배치성 작업은 필요하다. 5분단위로 교통소통 정보를 업데이트하 하거나, 온라인 비디오샵 오늘의 가입자 통계부터 대형 은행의 수천만개 이상의 계좌의 이자를 계산하는 작업을 배치로 처리할 수 있다. 이 작업은 사용자에게 제공하는 서비스에 직접적으로 영향을 미칠 수 있으며 운영에 사용될 수도 있다.

스프링 배치는 특정 도메인에 사용되기위해 만들어진 것이 아닌 범용적으로 사용되기위해 만들어졌다. 1개의 입력 데이터 처리에 1분이 걸려도 관계없거나 혹은 0.01초가 걸려도 문제가 될 수 있는 다양한 배치를 다 고려해서 디자인되었다. 그래서 생각보다 복잡하다. 간단한 작업을 배치로 처리하려는 개발자에게는 배보다 배꼽이 더 큰 비용이 들 수 있다. 그럼에도 불구하고 스프링 배치를 공부해야 하는 이유는 다음과 같다.

  • 컨설팅 회사인 엑센츄어(Accenture)의 참여로 현장의 경험을 기반으로 설계된 프레임웍
  • 명확한 책임의 분리를 통해 SRP의 이점을 볼 수 있음. 확장에 용이
  • Job Repository를 이용해 배치 작업 정보를 persistent 하게 남겨서 유지보수, 관리에 용이
  • (스프링 프로젝트는 늘 그렇듯이) 이쁘게 만들어진 추상화로 특정 기술에 종속적이지 않음

엔터프라이즈급 배치작업을 작성해본 경험이 없는 나로서는 이 정도가 표면적으로 느껴지는 스프랭 배치의 사용이유이다. 더 경험하다 보면 지금은 안 보이는 것도 보일것이다. 지금은 여기까지, 그때 다시 포스팅을 해야겠다.

'Study > Spring' 카테고리의 다른 글

배치 개발환경 설정  (0) 2012.12.20
Batch 명명 및 패키지 생성  (0) 2012.12.20
Spring Batch 용어 정리  (0) 2012.12.13
Posted by 코딩하는 야구쟁이
,