아.. 오픈일정이 촉박해서 미친듯이 달려야 할 타이밍에 블로그에 글을 쓰고 있네.. ^^
절반이상은 짜증이 난 상태이고 나머지는 내 무능력함에 실망이고
약간은 나도 사람이자나 라는 자기만족(?)이다..
우리 회사의 아주 핵심적인 legacy 시스템에서 개발중이다.
내가 보았을때는 아주 아주 훌륭한 시스템 + 프레임웍이다.
PHP의 framework이 거의 없던 시절에 PHP 자체 소스도 고쳐가면서 성능개선을 하였고
꼭 필요한 핵심 기능을 잘 추려서 library화를 하였고 성능도 뛰어나다.
문제는
이 legacy시스템이 몇명의 천재 개발자들에 의해서 만들어졌고
이미 처음 만들어지고 이 위에 비지니스 로직을 올리기 시작한지 7~8년이 지났고
이 천재 개발자들이 회사에 남아있지 않다는 것이다.
이 기반 시스템에서 오래동안 개발을 한 사람들은
대략적인 흐름과 역할에 대해서는 이해를 하지만 각 사업부별로 파생되어버린 특화기능에 대해서는 서로 모르고
이 부분을 고치게 되면 어디서 어떤 문제가 발생할지 장담을 못하는 상태이다.
나도 지금 비슷한 상황이다.
처음에는 간단히 페이지를 수정할 예정이었는데 오픈해서 보니 7~8년의 회사 히스토리가 고스란히 담겨있는 소스이다.
이미 종료된 서비스, 분사되어서 나가버린 서비스들을 위한 코드가 덕지덕지 남아있고 결정적으로 html 의 구조도 깨져있다.
처음부터 만들어보겠다라는 결심을 하였고 이 페이지 소스에 있는 20개의 기능중 몇개를 살려야할지 모르겠지만
QA 및 테스트를 거쳐서 돌파하겠다라는 결심도 섰지만 정작 프레임웍에 관련한 코드는 어떻게 해야 할지 모르겠다.
가장 간단한 방법은 기존에 잘 돌아가는 페이지의 기본 구성을 가져와서 깔아놓고 시작하는 것이다.
이 함수의 기능이 무엇인지 잘 모르겠지만 다른 기반코드에서 모두 쓰고 있으니 쓰는거지.
이 자바스크립트가 어디서 쓰는지 잘 모르겠지만 일단 include 하고 보는거야.. 에러나면 어떻게해...
젠장.. 역시 죽어있는 시스템에서 개발하는건 별로이다..
하지만 오늘까지 하라라고 하는데 전체를 다 오픈하면서 연관성 체크하기는 시간이 부족하다고.. ㅠㅜ
ps.
죽어있는 시스템이란 이렇게 전체적인 틀을 잡고 가이드하고 계속 리팩토링 + 개선을 하지 않는
시스템을 이야기한다. 아무리 잘 만들어지고 기능이 뛰어난 것이라도 라이프사이클을 돌려주지 않는다면
곧 버려야 하는 시스템이 될수 밖에 없을것이다.