자주 언급했지만 운영툴 하나 갈아 엎었다...
메뉴 몇개 안되서 프로젝트를 새로 셋업해놓은 후에 기능을 하나하나 옮겨올 계획이었다.
Controller와 vm만 좀 손보면 될거라 생각했던게 실은 아래와 같은 일들이 필요했었다.
- transaction 관리방식 변경 : dao 교체
- 인증 교체 : controller, authFilter...
- ddd로 교체 : service 코드 제작성.
- angularjs로 교체
- GET 방식을 RESTful POST 방식으로 변경 => front-end error handling.
- spring 버전 업: ContentNegotiationManager
- controller 수정 => url 변경. 메뉴권한 제어 변경. 파라메터 처리 방식 변경(httpservletReXX 제거).
- MIS 인증으로 교체.
- 메뉴 관리 방식 교체: vm의 include => sitemesh
새로운 프로젝트를 기존 프로젝트 구조는 전혀 고려하지 않고 내딴에 이상적인 형태로 구성해놓고 보니까
기존 코드가 하나도 그대로 갖다 쓸 수 있는게 없었다...;;
레거시 프로젝트가 마음에 안든다고 바닥부터 새로 갈아엎는건 항상 실패한다 생각하고 말하고 다녔는데
만만해 보인다는 이유로 내가 그 짓을 해버린거다..
애초에 아래와 같은 순서를 지켰다면 혼선도 덜하고 결국 안쓰고 말았을 기능에 시간 허비하진 않았을꺼다.
- 기존 방식대로 패키징 뜯어냄.
- 서버 투입. 배포 세팅. webi 세팅...
- AuthFilter 구현: MIS 인증 적용.
--> 이 시점에 프로젝트 종료 가능. 다만, 최신 기술이 적용된 다시태어난 운영툴은 못만들었겠지... - SantaTransactionManager 구현
- Angularjs 도입 : bootstrap 변경.
--> velocity로 header/menu/footer 처리하고 data binding을 Angularjs에서 처리하는 방식. 기존 vm의 변경을 최소화하면서 Angularjs를 붙일 수 있다. - Sitemesh3를 이용한 메뉴 관리
MVP라고도 불리는... 일단 동작 가능한 작은 단위 개선을 점진적으로 수행했으면, 다른일로 일정 문제가 생기면 바로 종료하고 다른 프로젝트로 넘어갈 수도 있었을거고...
뭐 덕분에 결론적으로 쓸대없는 DDD 지원방법도 공부하게 됐고, Angularjs도 결국은 안쓸거 공부만하고 끝난 샘이긴 하니...
덕분에 해볼기회 없었던 공부들 할 수 있었던 점은 좋았다...
결국은 자기만족?..;;
'SW-PRODUCT > 개발-SWE' 카테고리의 다른 글
[링크] 2.0을 만드는... (0) | 2015.10.07 |
---|---|
Stress Test (0) | 2015.03.12 |
운영툴 갈아엎기 후기. (0) | 2015.01.05 |
소프트웨어 버전 관리하기 (0) | 2014.12.05 |
Risk Mgmt: Known-Knwon to Unkonw-Unknown (0) | 2014.11.12 |