트러블슈팅 - 로직 설계 단계에서 매개변수 선정의 중요성..!

이희수·2025년 1월 20일

트러블슈팅 : printMenu 메서드 호출 시 불필요한 출력 발생 문제 해결

문제 상황

Kiosk 클래스의 start 메서드에서 printMenu 메서드를 호출할 때, 프로그램은 전체적으로 실행되었지만, 원치 않는 출력이 추가로 표시되는 문제가 있었습니다.

원인 분석

  • printMenu 메서드가 실행 중 애플리케이션의 상태를 제어할 수 있는 매개변수를 고려하지 않았습니다.
  • start 메서드에서 루프 내 조건 없이 printMenu를 호출했기 때문에, 불필요한 출력이 계속해서 생성되었습니다.
  • 실행 흐름 제어를 위한 boolean isRunning 변수가 제대로 전달되지 않아, 불필요한 출력이 반복적으로 발생한 것입니다.

해결 방법

  1. 매개변수 추가
    printMenu 메서드에 boolean isRunning 매개변수를 추가하여, 프로그램의 실행 상태를 기반으로 출력 로직을 제어할 수 있도록 수정했습니다.

  2. 호출부 수정
    start 메서드에서 isRunning 변수를 적절히 갱신하면서, 이를 printMenu에 전달하도록 업데이트했습니다.

수정된 코드

기존 코드

public void start() {
    while (true) {
        printMenu(cart, scanner);
    }
}

private void printMenu(Cart cart, Scanner scanner) {
    System.out.println("Menu options...");
    // 잘못된 상태에서 불필요한 출력 발생
}

수정 후

결과

  • isRunning 변수를 통해 실행 흐름을 명확히 제어하면서 불필요한 출력이 발생하지 않도록 개선되었습니다.
  • 프로그램이 의도한 대로 동작하며, 사용자 경험이 향상되었습니다.

배운점

이 문제를 해결하면서 프로그램 실행 흐름 제어의 중요성을 깨달았습니다. 특히, 상태를 관리하는 변수를 명확히 정의하고, 이를 적절히 활용하는 것이 프로그램의 안정성과 유지보수성을 크게 높인다는 점을 배웠습니다.

또한 불필요한 출력을 제어하는 과정에서 로직 설계 단계에서의 매개변수 선정이 얼마나 중요한지를 실감했습니다. 이 경험을 바탕으로, 앞으로는 메서드 설계 시 매개변수로 전달해야 할 상태나 조건을 사전에 꼼꼼히 고려할 것입니다.

0개의 댓글