CHAPTER
12
둘은 너무 많다
내가 점진적 개발이나 설계 작업을 진행할 때 따르는 규칙이 있는데, 나는 이 규칙을 ‘둘은 너무 많다’라고 부른다.
이 규칙은 『Code Simplicity』에서 ‘꼭 필요한 만큼만 포괄하자’라고 이름 붙인 규칙을 실행하는 방법이기도 하다.
이 규칙을 지키려면 자신이 작성하는 코드가 어느 수준까지 포괄해야 하는지부터 알아야 한다. 공통된 부분이 눈에 띄면 코드를 잘라 붙이고 싶겠지만, 그렇게 하지 말고 공통 부분의 특정 목적에 부합하는 포괄적 솔루션을 설계한다.
나는 구현하고 싶은 사항 두 가지가 떠오르는 즉시 이렇게 한다. 오디오 디코더를 설계하면서 처음에는 WAV 파일만 지원했다가 나중에 MP3 파서parser를 추가한다고 가정해보자. WAV, MP3 파싱 코드에는 분명 공통된 부분이 있을 것이다. 하지만 아무것도 복사해서 붙여 넣지 않고 그 대신 즉시 두 종류의 코드를 구현하는 데 필요한 작업만 수행하는 상위 클래스나 유틸리티 라이브러리를 만든다.