리스트 항목 외에 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; 
        }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.