인프런 커뮤니티 질문&답변

aaa5011님의 프로필 이미지
aaa5011

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

Main 메소드

Edit configurations의 사용이유

해결된 질문

작성

·

359

0

 Main 메소드 강의 내용 중 Edit configurations의 사용법에 대해서도 알려주셨는데 Edit configurations는 언제 사용하는 건가요?

Scanner로 사용자에게 입력을 받아오는 것과 Edit configurations로 값을 설정하는 것의 차이가 궁금합니다!

답변 2

2

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?
콜센터가 있고 대표번호를 통해 전화를 걸면 가입 또는 해지 부서로 연결될 수 있다고 가정하겠습니다. 이 경우 다음과 같이 어떤 메뉴가 있는지를 먼저 알려주고 나서 사용자로부터 Scanner 를 통해 입력을 받고 입력값에 따라 서로 다른 동작을 하도록 할 수 있습니다.

public class CallCenter {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("메뉴를 입력하세요 (가입 또는 해지)");        
        String selection = sc.next();
        if (selection.equals("가입")) {
            System.out.println("신규 가입 안내");
        } else if (selection.equals("해지")) {
            System.out.println("서비스 해지 안내");
        }
    }
}

즉, 프로그램을 일단 실행한 다음에 메뉴를 선택하는 것이라고 보면 됩니다.

메뉴를 입력하세요 (가입 또는 해지)
가입  <= 사용자가 직접 입력
신규 가입 안내

반면에 콜센터 대표번호가 아닌 가입 부서와 해지 부서로 직접 연결할 수 있는 번호가 있다고 가정하겠습니다. 그러면 매번 대표번호로 연결한 뒤에 부서를 선택할 필요 없이 처음부터 원하는 부서로 전화를 걸면 되겠죠. 이 역할을 Edit Configurations... 를 통해서 할 수 있습니다. 프로그램을 실행할 때 어떤 값들을 입력받도록 하면 프로그램 내에서 사용자에게 물어볼 필요 없이 바로 그에 해당하는 동작을 수행하게 됩니다. 가령 아래와 같이 코드를 작성해보겠습니다.

public class CallCenter {
    public static void main(String[] args) {
        if (args[0].equals("가입")) {
            System.out.println("신규 가입 안내");
        } else if (args[0].equals("해지")) {
            System.out.println("서비스 해지 안내");
        }
    }
}

이 때 전달값에 해당하는 args 는 IntelliJ 내에서 바로 입력하도록 하기 위해 Edit Configurations 내에서 설정할 수 있는데, 실제로 우리가 만든 CallCenter 라는 자바 프로그램을 IntelliJ 가 아닌 명령창 (또는 다른 프로그램) 에서 직접 실행하는 경우에 다음과 같이 할 수 있습니다.

D:\JavaWorkspace\out\production\JavaWorkspace>java CallCenter 가입
신규 가입 안내

D:\JavaWorkspace\out\production\JavaWorkspace>java Callcenter 해지
서비스 해지 안내

이 때 src 폴더가 아닌 out 폴더임을 주의해주세요. CallCenter.java 파일은 IntelliJ 에서 실행하게 되면 빌드라는 과정을 거치게 되고 그 결과로 out 을 포함한 경로 내에 CallCenter.class 라는 파일이 생성됩니다. 이를 java.exe 라는 명령을 통해 위 예제처럼 실행할 수 있고, 전달값으로 '가입' 또는 '해지' 를 직접 입력할 수 있게 됩니다. 그러면 우리가 만든 자바 프로그램을 다른 프로그램에서 실행해야 하는 경우에 사용자로부터 수동으로 '가입' 또는 '해지' 라는 입력값을 Scanner 를 이용하여 받는 과정을 거칠 필요 없이 직접 전달할 수 있겠지요.
궁금증 해결에 도움되었으면 좋겠습니다 😊
감사합니다.

0

aaa5011님의 프로필 이미지
aaa5011
질문자

자세한 설명 감사합니다! 😊😊😊

aaa5011님의 프로필 이미지
aaa5011

작성한 질문수

질문하기