SW-PRODUCT/개발-SWE

역시 바닥부터 갈아엎는건 에러다..

굴돌 2015. 1. 5. 15:59


자주 언급했지만 운영툴 하나 갈아 엎었다...

메뉴 몇개 안되서 프로젝트를 새로 셋업해놓은 후에 기능을 하나하나 옮겨올 계획이었다.


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