당신의 모듈에는 세 겹이 있다. 아마 한 겹만 썼을 것이다.
Box Structure는 모듈이 무엇을 하는지, 무엇을 기억하는지, 어떻게 동작하는지를 세 개의 별개이면서 검증 가능한 겹으로 정의하도록 강제한다. Cleanroom이 어떻게 디버깅을 제거하는지 알아보자.
먼저 코드를 쓰고, 다음에 테스트를 쓰고, 그제야 코드가 틀렸다는 걸 알게 된다. 이게 표준 루프다. 그래서 디버깅은 대부분의 프로젝트 타임라인 절반을 잡아먹는다. Box Structure는 이를 뒤집는다. 코드를 쓰기 전에 동작을 정의하고, 그 정의를 수학적으로 검증한 뒤, 한 겹씩…