들어가기 앞서 로버트 마틴의 소프트웨어 모듈이 가져야하는 세 가지 기능에 관한 설명을 적고 시작하겠다. 모든 소프트웨어 모듈에는 세 가지 목적이 있다. 첫 번째 목적은 실행 중에 제대로 동작하는 것이다. 이것은 모듈의 존재 이유라고 할 수 있다. 두 번째 목적은 변경을 위해 존재하는 것이다. 대부분의 모듈은 생명주기 동안 변경되기 때문에 간단한 작업만으로도 변경이 가능해야 한다. 변경하기 어려운 모듈은 제대로 동작하더라도 개선해야 한다. 모듈의 세 번째 목적은 코드를 읽는 사람과 의사소통하는 것이다. 모듈은 특별한 훈련 없이도 개발자가 쉽게 읽고 이해할 수 있어야 한다. 읽는 사람과 의소소통할 수 없는 모듈은 개선해야 한다. 정리해보자면 모든 모듈은 제대로 실행돼야 한다. 모든 모듈은 변경이 용이해야 한..