Skip to content

Node.js REPL 사용법

node 명령어는 Node.js 스크립트를 실행하는 데 사용하는 명령어입니다.

bash
node script.js

실행할 스크립트나 인자 없이 node 명령어를 실행하면 REPL 세션이 시작됩니다.

bash
node

참고

REPL은 Read Evaluate Print Loop의 약자로, 사용자 입력을 단일 표현식으로 받아들여 실행 후 결과를 콘솔에 반환하는 프로그래밍 언어 환경(기본적으로 콘솔 창)입니다. REPL 세션은 간단한 JavaScript 코드를 빠르게 테스트하는 편리한 방법을 제공합니다.

터미널에서 지금 시도해 보면 다음과 같이 됩니다.

bash
> node
>

명령어가 대기 모드로 유지되고 입력을 기다립니다.

TIP

터미널 여는 방법을 모르는 경우 "운영 체제에서 터미널 여는 방법"을 검색하세요.

REPL은 더 정확하게 말하면 JavaScript 코드를 입력하기를 기다리고 있습니다.

간단하게 시작하여 다음을 입력합니다.

bash
> console.log('test')
test
undefined
>

첫 번째 값 test는 콘솔에 출력하도록 지시한 출력이고, undefinedconsole.log() 실행의 반환 값입니다. Node는 이 코드를 읽고 평가하고 결과를 출력한 다음 더 많은 코드를 기다리기 위해 돌아갔습니다. Node는 세션을 종료할 때까지 REPL에서 실행하는 모든 코드에 대해 이 세 단계를 반복합니다. 이것이 REPL 이름의 유래입니다.

Node는 출력하도록 지시할 필요 없이 JavaScript 코드 줄의 결과를 자동으로 출력합니다. 예를 들어, 다음 줄을 입력하고 Enter 키를 누르십시오.

bash
> 5==5
false
>

위의 두 줄의 출력 차이를 확인하십시오. Node REPL은 console.log()를 실행한 후 undefined를 출력했지만, 다른 한편으로는 5== '5'의 결과를 출력했습니다. 전자는 JavaScript의 문장이고 후자는 표현식이라는 점을 명심해야 합니다.

경우에 따라 테스트하려는 코드는 여러 줄이 필요할 수 있습니다. 예를 들어, 난수를 생성하는 함수를 정의한다고 가정하면 REPL 세션에서 다음 줄을 입력하고 Enter 키를 누릅니다.

javascript
function generateRandom()
...

Node REPL은 아직 코드를 작성하지 않았음을 판단할 만큼 충분히 똑똑하며, 더 많은 코드를 입력할 수 있도록 여러 줄 모드로 전환됩니다. 이제 함수 정의를 완료하고 Enter 키를 누릅니다.

javascript
function generateRandom()
...return Math.random()

특수 변수:

코드 작성 후 _를 입력하면 마지막 연산의 결과가 출력됩니다.

위쪽 화살표 키:

위쪽 화살표 키를 누르면 현재 및 이전 REPL 세션에서 실행된 이전 코드 줄의 기록에 액세스할 수 있습니다.

점 명령

REPL에는 모두 점(.)으로 시작하는 몇 가지 특수 명령이 있습니다. 다음과 같습니다.

  • .help: 점 명령 도움말을 표시합니다.
  • .editor: 편집기 모드를 활성화하여 여러 줄의 JavaScript 코드를 쉽게 작성할 수 있습니다. 이 모드에서는 ctrl-D를 입력하여 작성한 코드를 실행합니다.
  • .break: 여러 줄 표현식을 입력할 때 .break 명령을 입력하면 추가 입력을 중단합니다. ctrl-C를 누르는 것과 같습니다.
  • .clear: REPL 컨텍스트를 빈 객체로 재설정하고 현재 입력 중인 여러 줄 표현식을 지웁니다.
  • .load: 현재 작업 디렉터리를 기준으로 JavaScript 파일을 로드합니다.
  • .save: REPL 세션에서 입력한 모든 내용을 파일에 저장합니다(파일 이름을 지정).
  • .exit: REPL을 종료합니다(ctrl-C를 두 번 누르는 것과 같습니다).

REPL은 .editor를 호출할 필요 없이 여러 줄 명령문을 입력할 때를 알 수 있습니다. 예를 들어 다음과 같이 반복을 입력하기 시작하면:

javascript
[1, 2,3].forEach(num=>{

Enter 키를 누르면 REPL은 3개의 점으로 시작하는 새 줄로 이동하며, 이제 해당 블록에서 계속 작업할 수 있음을 나타냅니다.

javascript
1... console.log (num)
2...}

줄 끝에 .break를 입력하면 여러 줄 모드가 중지되고 명령문이 실행되지 않습니다.

JavaScript 파일에서 REPL 실행

repl을 사용하여 JavaScript 파일에서 REPL을 가져올 수 있습니다.

javascript
const repl = require('node:repl')

repl 변수를 사용하여 다양한 작업을 수행할 수 있습니다. REPL 명령 프롬프트를 시작하려면 다음 줄을 입력합니다.

javascript
repl.start()

명령줄에서 파일을 실행합니다.

bash
node repl.js

REPL이 시작될 때 표시되는 문자열을 전달할 수 있습니다. 기본값은 '>'(뒤에 공백)이지만 사용자 지정 프롬프트를 정의할 수 있습니다.

javascript
// Unix 스타일 프롬프트
const local = repl.start('$ ')

REPL을 종료하는 동안 메시지를 표시할 수 있습니다.

javascript
local.on('exit', () => {
  console.log('repl 종료 중')
  process.exit()
})

repl 문서에서 REPL 모듈에 대한 자세한 내용을 확인할 수 있습니다.