더북(TheBook)

이 함수의 최종 버전은 실행할 때 어떤 것도 화면에 표시하지 않고 값을 반환만 한다. 우리가 작성한 print 문은 디버깅할 때는 유용하지만, 잘 작동하는 함수를 만들었으면 print 문을 제거해야 한다. 이런 종류의 코드를 스캐폴딩(scaffolding, 건축에서 완공 때까지 사용하는 임시 가설물)이라고 하는데, 스캐폴딩이란 프로그램을 만들 때는 유용하지만 최종 산출물은 아닌 부분을 말한다.

처음 시작할 때는 한 번에 한두 줄의 코드만 추가해야 한다. 경험을 쌓다 보면 좀 더 큰 덩어리로 코드를 작성하고 디버깅할 수 있게 된다. 어느 쪽이든 간에 점진적인 개발을 하면 디버깅 시간을 엄청나게 절약할 수 있다.

점진적인 개발의 핵심은 다음과 같다.

1. 동작하는 프로그램에서 시작하고 작게, 점진적으로 바꿔나가라. 어떤 시점에 오류가 발생한다면 어느 지점인지 알 수 있어야 한다.

2. 중간값을 담을 수 있는 변수를 사용하고, 이들 변수를 화면에 표시하고 확인하라.

3. 일단 프로그램이 동작하면 스캐폴딩의 일부를 제거하고, 여러 문장을 복합 표현식으로 바꿔나간다. 단, 프로그램이 읽기 어려워지지 않는 범위에서만 복합 표현식으로 바꿔야 한다.

연습삼아 인수로 두 개의 구간의 길이를 받아서 직각 삼각형의 빗변의 길이를 반환하는 hypotenuse 함수를 점진적인 개발을 사용해 작성해보라. 점진적인 개발을 하면서 각 단계를 기록해보자.

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