2008년 말에 프로젝트를 진행하면서 Batch 작업이 많아서 Spring Batch 기반으로 Batch를 만들면서 간단하게 모니터링 툴을 만들었다. Batch 작업을 통한 연관된 작업이 많았고, 테스트를 진행했던 QA들이 프로그래밍을 이용하여 Batch를 실행하는 것이 쉽지 않았던 관계로 모니터링 툴을 통하여 실행이 가능하도록 지원하였다.
Spring Batch는 모든 Batch 실행 결과를 DB에 로그로 관리하고 있기 때문에 쉽게 해결할 수 있었다. 2008년 말에는 단순히 필요한 기능만 개발했었기 때문에 UI나 다른 요구사항에는 특별히 관심을 가지지 않았었다. 2009년이 들어서 UI 개선도 하고 요구사항도 수렴해서 더 좋은 Spring Batch 관리툴을 만들고자 했지만 이런 저런 핑계 때문에 미루고 있다가 최근에 개발을 진행했다.
이번에 공개하는 Spring Batch Monitoring System은 본인이 UI에 대한 능력이 없기 때문에 GWT 기반으로 개발했다. Spring Batch Monitoring System의 기반이 되는 기술 스펙을 보면 다음과 같다.
- GWT 2.0
- GWT EXT 2.1.0
- Spring Framework 3.0
- Spring Batch 2.0
- Spring Security 3.0.1
GWT와 Spring 프레임워크 기반으로 개발을 진행했다. 이와 같이 진행한 이유는 GWT와 GWT-EXT는 UI에 대한 구현 능력이 없는 나에게 있어서는 어렵지 않게 내가 원하는 UI를 만들어 내는 것이 가능했다. Spring 프레임워크를 채택한 이유는 내가 가장 친숙한 프레임워크이기도 하지만 Spring Batch가 Spring 프레임워크 기반으로 되어 있기 때문에 별도의 프레임워크를 학습하지 않아도 된다는 이유에서이다. Spring Security는 개인적으로 공부는 많이 했지만 아직까지 프로젝트에 도입해본 경험이 없어서 공부도 하면서 Spring Security의 기능을 배워보고 싶다는 욕심도 있었다.
Spring Batch Monitoring System 0.5 버전 기능
Spring Batch Monitoring System(가칭 batchmon) 0.5 버전까지 구현한 기능은 2008년 말에 포함하고 있었던 단순한 기능이다. 기능 목록을 살펴보면 다음과 같다.
- 현재 프로젝트에서 관리하고 있는 Job을 목록을 볼 수 있는 기능
- 각 Job별로 Job Execution 목록과 상태를 볼 수 있는 기능
- 각 Job Execution별로 Step Execution 목록과 상태를 볼 수 있는 기능
- 각 Step Execution의 상세 내역과 에러 내역을 볼 수 있는 기능
- 각 Job별로 웹 상에서 실행할 수 있는 기능(Spring Batch Monitoring System과 같은 Instance내의 Job에 한하여)
1차적으로 Spring Batch Monitoring System의 핵심 기능이라고 할 수 있는 위 기능만 포함시켜서 0.5버전을 만들어서 공개했다. 이후에 추가할 기능에 대해서는 요구사항을 수렴해서 우선 순위를 정하고 시간적인 여력이 될 때 하나씩 추가하는 방식으로 진행할 계획이다. 개인적으로 1.0 버전이 나오기 전에 추가하면 좋겠다고 생각하는 기능은 다음과 같다.
- Role과 User를 관리툴에서 관리할 수 있는 기능. 현재는 Spring Security 설정 파일에서 md5 기반으로 관리하고 있다.
- 현재는 동일한 Instance 내에 있는 Job만 실행하는 것이 가능한데 JMX를 통하여 원격에서 실행되고 있는 Batch Job도 실행해야 한다.
장기적으로 추가되면 좋을 것으로 생각하는 기능은 다음과 같다.
- 각 Job별 성공률과 실행 시간등을 확인해볼 수 있는 Dashboard 기능
- 각 Job별 설정에 따라 Job Instance가 실행되지 않을 경우 Email이나 SMS가 전송되는 기능
우선 이 정도까지만 생각해봤다. 앞으로 온라인을 통하여 더 많은 요구사항을 수렴하고 기능 개선을 해나가도록 하겠다. 소스 코드가 정리되면 공개해볼 생각이다. 이 때쯤 되면 마음이 맞는 개발자와 같이 기능을 개선해 나가면 하는 바람도 가지고 있다. 현재는 GWT 기능을 익히는데 초점을 맞추다보니 테스트 코드도 부족하고 소스 코드도 부끄러운 수준이다.
Spring Batch Monitoring System Demo
- Demo URL : http://batchmon.javajigi.net
- User ID : admin , Password : admin123
위 URL에서 현재까지 개발된 기능에 대하여 테스트할 수 있다. 위 데모 사이트에서 테스트 진행하고 추가했으면 좋겠다고 생각하는 요구사항이 있다면 요구사항 페이지에서 의견 개진을 해주면 좋겠다.
Comments (5)
1월 25, 2010
Anonymous says:
멋지십니다. 팀장님 화이팅이요~ -민달멋지십니다. 팀장님 화이팅이요~ -민달
1월 26, 2010
Anonymous says:
정말 멋지십니다..^^정말 멋지십니다..^^
2월 09, 2010
Anonymous says:
오, 지난 프로젝트에서 배치잡을 스프링 기반으로 개발하는걸 봣는대. 여기서 직접 보게 되내요.. ^^오, 지난 프로젝트에서 배치잡을 스프링 기반으로 개발하는걸 봣는대.
여기서 직접 보게 되내요..
^^
4월 16
Anonymous says:
GWT EXT 는 2.0.6 버전에서 프로젝트가 종료되고, Smart GWT로 이전된걸로 아는데..GWT EXT 는 2.0.6 버전에서 프로젝트가 종료되고, Smart GWT로 이전된걸로 아는데..
4월 16
박재성 says:
그런가요? 몰랐습니다. 좋은 정보 감사드립니다. 그럼 Smart GWT로 갈아타야겠네요.그런가요? 몰랐습니다. 좋은 정보 감사드립니다.
그럼 Smart GWT로 갈아타야겠네요.
Add Comment