Quartz의 스케쥴링은 정말 훌륭한 솔루션이다.

또한 Job 스케쥴링의 신기술 Spring batch도 잘 만들어진 솔루션들이다.

그리고, Eclipse 플러그인...

 

 

그런데, 말이지..

 

결정적인 문제가 있다. 유지보수의 입장에서 보면, 상위 버젼으로 올라가면서 DB 설정이 바뀔 때, 바톤을 이어받는 사람은 좀 당황할 수 있다.

 

또한 전버젼에는 public class였는데, 상위버젼에서는 private class로 가면..

잘 되면 좋은 케이스이긴 하나. 잘 안되면, 공수로 private class를 복사해 와서 패치를 하는 방식을 사용한다. (내가 사용한 뜻은 똑같은 패키지, 클래스를 복사해서 해당 프로젝트에 넣는 일을 뜻한다.)

 

이렇듯 Backward Compatibility (과거와의 호환)이 지원이 되지 않으면 호감이 바로 비호감으로 변한다는 사실이다.

 

개발할 때는 편하지만, 유지보수입장에서는 그다지 썩 좋은 솔루션은 아닌 것 같다.

진짜로.. JDK는 이런 부분에서 최고로 칭찬을 받아야 할 마땅한 것이 아닌가 싶다.

 

API 디자인을 할 때, 간결성. 보안성, 유저빌리티등등 보다도 중요한 게 있는데, 바로 Backward Compatibility다. 과거의 버젼에서 동작되는 서버를 바로 상위의 버젼에서 돌려도 돌아갈 수 있는 시스템은 난 간절히 원한다.

 

또한 이러한 문제들을 여전히 개발자들은 놓친다. 최근 신기술과 화려한 테크닉때문에 기본적인 상식조차 까먹는 현실이 안타깝니다.

 

중요한 포인트는...

 

상위버젼에서도 돌아갈 수 있는 솔루션이 바로 진정한 솔루션이다.. 아키텍처의 킹왕짱?!

 

 

 

 

Posted by 김용환 '김용환'

댓글을 달아 주세요