리팩토링, 디자인 패턴, 테스트 코드 등 개발자라면 어디선가 메아리처럼 들려오고 적용하고 싶고 그렇지만 힘들기도 한 그런 것들 입니다. 핑계 같지만, SI 프로젝트를 처음 TDD로 진행했을 때 실시간으로(프로젝트 마감 1일 전에도) 바뀌는 기획에 하나 둘 씩 추가되는 DB Column들과 그 때 마다 TestCode를 변경해야하는 번거로움으로 인해 첫 번 째 도전은 너무도 쉽게 실패로 끝났습니다. 그리고 리팩토링, 프로젝트가 끝나고 리팩토링 할 때, 그리고 이미 개발된 기능의 기획 변경이 있을 때 혹은 복잡한 경우의 수가 있을 대 테스트 코드를 활용하여 잘 마무리 지었을 때는 조금 자신감도 붙었습니다. 예전에 내가 작성한 소스코드를 보면, 비대해진 BaseClass와 이를 상속 받았지만 제대로 부모 클래..