REPL이란 사용자가 입력한 프로그램을 읽고(Read) 값을 계산(Evaluate)한 다음, 출력(Print)하는 일을 반복(Loop)하는 구조를 뜻한 Read-Eval-Print Loop의 약어이다.
사용자 입력에 대한 실행 결과를 바로 되돌려주는 상호작용 환경을 말한다.
보통 쉘 형태로 제공되며, 파이썬 같은 동적 언어들은 오래전부터 기본적으로 REPL 환경을 제공해왔다. 자바도 JShell이란 이름으로 REPL 환경이 추가됐다.
코틀린 같은 최신 언어들은 초기 버전부터 REPL 환경을 함께 제공했다.
TDD로 접근이 어려운 코드에서 REPL 환경은 print()와 함께 가장 많이 쓰이는 디버깅 도구이기도 하며, 즉시 실행할 수 있다는 점에서 모호한 알고리즘을 바로 검증할 수 있어 버그를 줄이는 데 많은 도움이 된다.
사람은 누구나 실수를 할 수 있기 때문에 가능한 REPL 환경을 적극 활용해 여러 차례 검증하면서 코드를 작성하는 것이 좋다.
출처 : 자바 알고리즘 인터뷰 (지은이 박상길)