거의 5년 넘게 유지 보수를 해 오던 소스가 있습니다.

정리를 하는 차원에서 관련 소스를 죽 보다 보니까 재미있는 현상을 하나 발견했습니다.


윈도우 탐색기에서 파일 하나하나의 "수정한 날짜"를 보았는데요,

유지 보수에 애를 먹였던 소스일수록 이 수정한 날짜가 최신이라는 것입니다(당연한 얘기이지만).

대략적인 퍼센트를 따져 보자면

초기에 만들어 놓고 작동 방식에 아무런 이상이 없는 신경을 쓰지 않아도 되는 모듈이 약 90% 정도이고

나머지 10%의 소스를 가지고 계속해서 수정 작업을 거치면서 유지 보수를 하고 그랬습니다.


그리고 더욱 재미있는 것은

코딩에 들어 가기 이전에 인터페이스를 만드는데 시간을 많이 들이고 고민을 많이 한 모듈일 수록

그러한 수정 작업이 상대적으로 적다는 것입니다.


하고자 하는 말은?

인터페이스에 대해서 고민을 많이 하자.


그런 의미에서 심도 있는 프로그래밍 설계 방식에 대한 더 큰 공부가 필요할 듯 합니다.

공부하는 입장에서 "왜 언어의 문법이 이렇게 생겨 먹었나"가 아닌

언어 디자이너 입장에서 "왜 이렇게 디자인했을까"를 고민하다 보면

해답을 스스로 찾을 수 있을 것입니다.