작동하는 깔끔한 코드

론 제프리즈가 처음 소개하였고, Test-driven development: by example에서 켄트 벡이 인용한 기준.

켄트 벡은 “작동하는 깔끔한 코드”라는 목적에 한번에 도달하기는 힘들다고 말한다. 따라서 TDD에서는 이걸 나눠서 정복한다. “작동하는(that works)” 부분을 먼저 해결한 후 “깔끔한 코드(clean)” 부분을 해결하는거다:

우리의 목적은 “작동하는 깔끔한 코드”를 얻는 것이다(이 핵심을 찌르는 요약을 제공한 론 제프리즈에게 감사한다). “작동하는 깔끔한 코드”를 얻는 것은 때로는 최고의 프로그래머들조차 도달하기 힘든 목표고, 나같은 대부분의 평범한 프로그래머들에게는 거의 불가능한 일이다. 그렇다면 나누어서 정복하자. 일단 작동하는 깔끔한 코드를 얻어야한다는 전체 문제 중에서 ‘작동하는’에 해당하는 부분을 먼저 해결하라. 그러고 나서 ‘깔끔한 코드’ 부분을 해결하는 것이다. 이러한 접근 방식은 ‘깔끔한 코드’ 부분을 먼저 해결한 후에, ‘작동하는’ 부분을 해결해 가면서 배운 것들을 설계에 반영하느라 허둥거리는 아키텍처 주도 개발과 정반대다. —p54

한편, 이 맥락에서 “깔끔한 코드”란 Once and only once를 만족하는 코드를 말한다.

2024 © ak