더북(TheBook)

코드를 작성하고 나면 테스트를 실행할 수 있지만 여전히 실패한다. 프로덕션 코드가 아직 제대로 동작하지 않기 때문이다. 여기에서 TDD 사고방식에 입각한 ‘설계’가 실행된다. 즉, 테스트를 작성하면서 필요한 인터페이스와 클래스를 정의하고 이를 기반으로 프로덕션 코드를 작성한다.

테스트가 통과할 수 있도록 코드를 수정한다

처음부터 너무 과도하게 추상화를 진행하지 않는 것이 중요하며, 가능한 한 단순하게 유지해야 한다. 일단 테스트가 통과되게 하는 것이 우선이다. 테스트가 통과하는 것부터 해결해야 한다.

코드를 리팩터링한다

테스트가 통과하면 다음으로 검증해야 하는 기능을 단위 테스트로 만들거나 코드를 리팩터링해서 더 읽기 쉽게 만들고 중복 코드를 제거하는 등 작업을 진행한다. 여기에서도 ‘설계’가 실행된다. 이 단계에서 설계란 리팩터링을 통해 코드 구조를 재정비하고 개선하는 과정을 의미한다. 리팩터링을 통해 코드는 더욱 견고하고 세련되게 바뀌지만, 기존 기능이 동일하게 작동하는 방식으로 컴포넌트를 만들 수 있다.
리팩터링은 아주 작은 범위만 고치는 식으로 점진적으로 진행되어야 하며, 각 단계마다 모든 테스트를 실행하여 부작용은 없는지 확인해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.