1.2.1 단순한 코드
유지보수 가능한 객체지향 디자인의 여정을 시작하는 훌륭한 방법은 메서드와 클래스를 단순하게 구현하는 것이다. 처음에는 몇 줄의 조건문으로 이뤄졌던 메서드가 시간이 지나 수백 줄로 길어지고 if 문 안에 if 문이 중첩되면서 복잡해진 경우를 생각해보자. 그런 코드는 유지보수하기가 매우 어렵다.
보통 클래스와 메서드는 단순하고 누구나 관리하기 쉬운 수준에서 시작한다. 그러나 이를 단순하게 유지하려는 노력을 하지 않으면 이해하기도 힘들고 유지보수하기도 어려워진다(그림 1-2). 또한 복잡한 코드는 버그를 초래하기 쉽다. 이해하기 어렵게 복잡하게 구현하면 버그가 꼬이기 쉽다. 복잡한 코드는 유지보수, 리팩터링, 테스트가 어렵기 때문에 개발자들은 무언가 깨질까 두려워하며 코드에서 가능한 테스트 케이스를 모두 찾아내기도 어려워한다.