REPL은 Read-Eval-Print-Loop(읽기-평가-출력-반복)의 약자입니다. 사용자가 표현식을 입력하면 이를 즉시 평가하고 그 결과를 바로 반환해 주는 대화형 셸 환경입니다. REPL을 사용하는 가장 큰 목적은 자바 파일을 만들고, 컴파일한 뒤 실행하는 번거로운 과정 없이 자바 프로그램과 빠르게 상호작용하는 것입니다. Java 9부터 도입된 JShell은 개발자에게 매우 유용한 도구일 뿐만 아니라, 자바 언어를 학습하는 데에도 탁월한 학습 환경을 제공합니다.
REPL의 주요 특징
- Java 9에 기본적으로 내장되어 있어 별도 설치가 필요 없습니다.
- 클래스 파일 생성, 컴파일, 실행 과정 없이 어떤 자바 표현식이든 즉시 테스트할 수 있습니다.
- 에디터에서처럼 TAB 키만 누르면 메서드 이름이 자동 완성됩니다.
- 메서드를 직접 정의하고, 나중에 필요할 때 호출할 수 있습니다.
- 코드 실행 중 예외가 발생하면 예외 내용을 화면에 바로 보여줍니다.
- 이미 정의한 메서드를 언제든지 수정하고 변경할 수 있습니다.
- 세션 관리 등에 활용할 수 있는 다양한 내장 명령어를 제공합니다.
아래는 JShell 도구를 활용한 REPL 사용 예제입니다.
예제 1 - 표현식 즉시 평가하기
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> Math.round(34.543) $1 ==> 35
위 예제에서는 별도의 클래스나 main 메서드 없이 Math.round() 표현식을 입력하는 순간 결과값 35가 즉시 반환되는 것을 확인할 수 있습니다.
예제 2 - 메서드 정의 및 호출하기
jshell> void test(String s) {
...> System.out.println(s);
...> }
| created method test(String)
jshell> test("TutorialsPoint")
TutorialsPoint이처럼 JShell에서는 메서드를 정의하면 "created method test(String)"라는 피드백이 표시되며, 정의한 메서드를 곧바로 호출하여 결과를 확인할 수 있습니다. 이러한 특성 덕분에 간단한 로직 검증이나 자바 문법 학습 시 컴파일과 실행에 드는 시간을 크게 절약할 수 있습니다.