더북(TheBook)

리스트 항목 외에 prepareLaunch()에도 주석 처리된 print 문이 들어 있습니다. 자세히 보면 print 문에서 선언하지 않은 변수인 item에 접근하고 있어 주석 처리를 걷어낼 수 없습니다.

주석 처리된 코드는 심각한 문제입니다. 일반적인 주석과 달리 명확히 설명해주는 역할을 하지 않거든요. 혼란만 가중시킬 쓰레기를 코드에 끼얹는 셈입니다.

대부분의 프로그래머는 특정 기능이 동작하지 못하게 하려고 코드를 주석 처리합니다. 다른 측면에 더 집중해 쉽게 주석 처리해버리죠. 때로는 훗날 다시 사용할지 모를 코드를 잃어버리고 싶지 않아 주석 처리하기도 합니다.

아래처럼 바꾸어도 별로 놀랍지 않습니다.

class LaunchChecklist {

    List<String> checks = Arrays.asList( 
        "Cabin Leak",        
        "Engine",
        "Hull", 
        "OxygenTank"
    );

    Status prepareLaunch(Commander commander) { 
        for (String check : checks) {
            boolean shouldAbortTakeoff = commander.isFailing(check); 
            if (shouldAbortTakeoff) {                
                return Status.ABORT_TAKE_OFF; 
            }
        }
        return Status.READY_FOR_TAKE_OFF; 
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.