Page 20 -
P. 20

즉시 행동으로 옮긴 것이 핵심이다. 겹치는 부분이 있는 두 가지 사항을
              반복해서 구현하는 대신 즉시 포괄적 솔루션을 만들었다. 그리고 또 한 가

              지, 필요 이상의 영역까지 포괄하는 솔루션을 만들지 않았다는 사실에도 주목
              하라. 내가 만든 솔루션은 오로지 WAV와 MP3만 지원한다. 그 외 다른 형

              식에 대한 고려는 일절 없다.

                ‘둘은 너무 많다’ 규칙은 다음 내용에도 적용된다.

                  원칙적으로는 개발자가 코드 일부를 수정한 후에 코드의 다른 부분까지 그
                  와 비슷하거나 똑같은 방식으로 작동하도록 수정할 필요가 없어야 한다.


                이는 개발자가 클래스 B를 업데이트할 때 클래스 A도 업데이트해야 한
              다고 ‘기억’할 필요가 없어야 한다는 말이다. 상수 X가 변할 때 파일 Y를 업

              데이트해야 한다고 생각할 필요도 없어야 한다. 다시 말해 구현체를 두 가
              지로 나누는 것뿐 아니라 신경 쓸 위치가 둘로 분산되는 것도 좋지 않다. 시

              스템을 항상 올바르게 구현할 수는 없겠지만 가능한 한 그렇게 되도록 노력
              해야 한다.

                하지만 결국 무언가를 위해 위치를 둘로 나눌 수밖에 없는 상황이라면 둘이
              ‘일치’하지 않을 때 시스템이 실패했다는 걸 시각적 혹은 청각적으로 확실

              히 보여주어야 한다. 컴파일은 물론, 항상 실행되어야 할 테스트 등도 모두

              실패해야 한다. 둘이 일치하지 않는 일은 없어야 한다.
                그리고 뻔한 얘기지만 ‘둘은 너무 많다’ 규칙 중 가장 쉬운 부분은 고전적

              인 원칙인 ‘반복하지 마라’라는 것이다. 똑같은 걸 나타내는 상수가 두 개여
              서는 안 된다. 똑같은 작업을 수행하는 함수가 둘이어서도 안 된다.

                이 규칙을 적용할 방법은 이외에도 많을 것이다. 핵심은 하나의 개념을
              두 가지로 구현하고 싶을 때 둘을 어떻게든 하나의 구현체로 만들어야 한다

              는 것이다.





          050




     심플소프트웨어_06.indd   50                                                 2019-10-18   오전 10:34:00
   15   16   17   18   19   20   21   22   23   24   25