REPL은 "Read Eval Print Loop"의 약자로, 인터프리터 기반의 프로그래밍 언어에서 사용되는 대화식 환경을 제공하는 도구입니다.
REPL은 사용자가 코드를 입력하면 해당 코드를 읽어들이고(Read), 평가하여 실행합니다(Eval), 그리고 실행 결과를 출력합니다(Print). 이후 다시 새로운 코드를 입력할 수 있도록 반복적으로 동작합니다(Loop).
REPL의 동작
REPL은 다음과 같이 동작합니다:
1. Read (읽기): 사용자가 입력한 JavaScript 코드를 읽습니다.
2. Eval (평가): 읽은 코드를 평가하고 실행합니다.
3. Print (출력): 코드의 결과 값을 출력합니다.
4. Loop (반복): 이후 사용자가 더 많은 코드를 입력할 수 있도록 반복합니다.
REPL은 여러 프로그래밍 언어와 환경에서 사용합니다.
주로 스크립트 언어나 인터프리터 언어에서 많이 사용되며, 대표적으로 Python, Ruby, JavaScript 등이 있습니다.
이러한 언어들은 REPL을 통해 개발자들이 간단한 코드를 빠르게 작성하고 테스트할 수 있도록 도와줍니다.
- Python: "Python Shell" 또는 "Python REPL"이라고도 불리는 대화식 셸을 제공합니다. python이라고 입력하면 Python REPL이 시작됩니다.
- Ruby: Ruby에서도 "IRB" (Interactive Ruby)라고 불리는 REPL 환경이 있습니다. irb 명령어를 실행하면 Ruby REPL이 실행됩니다.
- JavaScript (브라우저 콘솔): 웹 브라우저의 콘솔창도 JavaScript 코드 REPL입니다.
개발자 도구(F12 또는 Ctrl + Shift + I를 눌러 엽니다.)에서 "Console" 탭을 사용하면 JavaScript 코드를 입력하고 실행할 수 있습니다. - JavaScript (Node.js): Node.js의 REPL은 JavaScript 코드를 대화식으로 실행할 수 있는 환경을 제공합니다. 브라우저 콘솔과는 다르게 Node.js REPL은 서버 측에서 JavaScript 코드를 실행하며, 파일 시스템 접근 등 브라우저에서 사용할 수 없는 기능도 사용할 수 있습니다.
REPL의 장점
REPL은 테스트가 쉽고 빠른 피드백을 얻을 수 있는 것이 장점입니다. 그래서 개발자가 실시간으로 코드를 테스트하고 디버깅할 수 있습니다.
그 외 언어나 기능을 학습하기 좋고 라이브러리를 실험하기도 좋습니다.
노드(Node.js)의 REPL
노드에서 REPL을 실행하려면 다음과 같이 Node.js를 설치하고 명령줄에서 실행하면 됩니다.
물론 Node.js가 설치된 상태여야 합니다.
1. 터미널(혹은 명령 프롬프트)을 엽니다.
2. 'node'라고 입력하고 Enter 키를 누릅니다.
3. 끝! REPL이 실행 되었습니다. 브라우저 콘솔처럼 바로 JavaScript 코드를 입력하고 실행할 수 있습니다.
예시 (example)
$ node
> let x = 10;
undefined
> let y = 20;
undefined
> x + y;
30
> function add(a, b) { return a + b; }
undefined
> add(5, 3);
8
> exit
- 터미널이나 프롬프트에서 `node` 명령어를 실행하면 REPL이 시작됩니다.
- 위 예제에서 `>`는 사용자 입력을 받는 프롬프트를 나타냅니다.
- REPL에서는 변수를 선언하고 계산을 수행하거나 함수를 정의하고 실행할 수 있습니다.
- 종료하려면 `exit`를 입력하면 됩니다.
아래는 간단하게 파일시스템 모듈을 사용하여 txt를 쓰는 예시입니다.
$ node
> const message = "Hello, Node.js!";
undefined
> console.log(message);
Hello, Node.js!
undefined
> const fs = require('fs');
undefined
> fs.writeFileSync('example.txt', '이것은 Node.js의 REPL에서 만든 파일입니다.');
undefined
> exit
실행하면 터미널을 오픈한 위치에 파일이 하나 생겼을 겁니다.