하나의 프로젝트가 끝나고 바로 새로운 프로젝트를 진행중이다.

프로젝트를 새롭게 시작하면 처음에 요구 분석 및 설계작업에 들어간다.
한마디로 머리를 좀 굴려야 되는 부분이다.
이전 프로젝트의 피곤이 풀리지 않은 터라 열정적으로 일에 임하지는 못한다.

기본 데이타베이스를 모델을 바탕으로 새로운 기능 추가를 고려해 보았다.
그러나 테이블 설계의 구조가 잘못되어 기존 구조에 이 새로운 기능을 추가하면 그야 말로 복잡도가 더 증가하는 상황이다.

2+2+2... 이렇게 복잡도가 증가 할 수도 있고
2+2+2*2... 경우에 따라선 중간에 곱이 들어갈 수도 있다..ㅠㅠ

간단히 정리해서 정규화 시켜야할 테이블을 계속 칼럼만 늘리는 식으로 왔던 것이다.
성격상 그대로 갈 수가 없다.

사실 기능이 추가되면서 구조에 조금만 신경을 썻더라도 설계에 고민없이 단순하게 코딩만 하면 끝날 일을...ㅠㅠ.
이 대목에서 open&close 법칙이 생각난다.
확장엔 열려 있고 기존 레거시에는 변화가 없는 구조...

데이타베이스 뿐만 아니라 프로그램도 마찬가지이다.
부담될 정도로 많은 줄을 차지하고 있는 메소드...
기능이 추가될때 마다 하나의 메소드가 모든 일을 다 하게 만드는 구조를 말한다.
단순히 기능을 분리하여 클래스로 뺀다면 추후 인수인계 하는 사람에게 여유를 줄 수 있으련만...

When we avoid creating new classes and methods, the existing ones grow larger and harder to understand.
- 『Working effectively with regacy code』 중에서...