Node.js 교재 · 3편 · 첫 실행

REPL과 첫 스크립트 — node 명령으로 JS 실행하기

대화형 인터랙티브 모드와 파일 실행, 둘 다 손에 익히자.

터미널 REPL 프롬프트에서 자바스크립트를 한 줄씩 실행하는 컨셉 일러스트

2편에서 nvm 으로 Node 를 깔았다면 이제 진짜로 자바스크립트를 굴려본다. 도구는 단 하나 — node 명령. 이 명령은 두 가지 모드로 동작한다.

하나는 REPL — 한 줄씩 입력하고 즉시 결과를 보는 인터랙티브 모드 (계산기 같은 느낌). 다른 하나는 파일 실행node hello.js 처럼 미리 적어둔 파일을 통째로 돌리는 모드. 일상의 90% 는 후자지만, 둘 다 알아둬야 디버깅·실험이 편하다.

1. REPL — 한 줄씩 입력하고 즉시 보기

터미널에서 인자 없이 node 만 치면 REPL 이 뜬다.

$ node Welcome to Node.js v22.10.0. Type ".help" for more information. > 1 + 1 2 > const x = 10 undefined > x * 3 30 > console.log("안녕") 안녕 undefined > .exit

> 가 입력 대기 프롬프트. 한 줄 입력 → Enter → 즉시 결과. const x = 10 같이 값이 없는 문장은 undefined 가 결과로 찍힌다 (선언 자체는 표현식 값이 없어서).

REPL 의 정체는 4단어 약자 — Read · Eval · Print · Loop. 입력을 읽고, 평가하고, 결과를 출력하고, 다시 입력 대기. 모든 인터프리터 언어가 비슷한 REPL 을 가진다 (Python 의 python3, Ruby 의 irb).

REPL 단축키Ctrl+C 두 번 또는 .exit 입력으로 종료. .editor 명령으로 여러 줄 편집 모드. 화살표로 직전 입력 호출 (모든 셸과 같음).

2. 파일 실행 — node 파일명.js

실제 개발은 파일에 코드를 적고 한 번에 실행하는 방식이 표준이다. hello.js 를 만들자.

// hello.js const name = "박준성"; console.log(`안녕, ${name}!`); console.log("Node 버전:", process.version); console.log("실행 경로:", process.cwd());

터미널에서 그 폴더로 이동 후:

$ node hello.js 안녕, 박준성! Node 버전: v22.10.0 실행 경로: /home/user/learn-node

딱 자바스크립트인데, 브라우저엔 없던 process 라는 객체가 보인다. process.version·process.cwd()·process.env 처럼 Node 가 추가한 것들이다. 파일 시스템·네트워크·OS 정보 — 브라우저가 막아둔 것들이 여기선 다 열려있다.

3. REPL vs 파일 실행 — 언제 무엇을

상황도구이유
API 응답 모양 빨리 확인REPL한 줄씩 짚어가며 객체 구조 파악
정규식 패턴 실험REPL즉시 결과, 조정 빠름
라이브러리 한 함수 시험REPLconst fs = require('fs') 후 즉시 호출
10줄 넘는 로직파일REPL 에서 잘못 치면 처음부터 다시
실제 프로그램 구동파일버전 관리·재실행·배포 가능
학습 초기 첫 실습REPL파일 만드는 거 자체가 부담일 때

요약: REPL 은 실험실, 파일은 작업장. 실험실에서 검증된 코드를 작업장으로 옮겨와 굴린다.

4. -e 한 줄 실행과 셔뱅 트릭

REPL 도 파일도 아닌 한 줄짜리 실행도 있다.

$ node -e "console.log(1 + 1)" 2 $ node -e "console.log(process.env.HOME)" /home/user

셸 스크립트 안에서 자바스크립트 한 줄만 끼워 쓸 때 유용. jq·awk 가 부족할 때 대체로 가능.

또 하나의 트릭 — 셔뱅으로 .js 파일을 실행 파일처럼 만든다.

#!/usr/bin/env node console.log("실행 파일처럼 동작합니다");

파일 첫 줄에 #!/usr/bin/env node 를 넣고 chmod +x hello.js 로 권한을 주면 ./hello.js 만으로 실행된다. CLI 도구를 만들 때 표준 패턴.

윈도우 주의 — 셔뱅은 리눅스·맥에서만 의미가 있다. 윈도우는 그냥 node hello.js 가 정답. 셔뱅 줄이 있어도 무시되니까 크로스 플랫폼 패키지 만들 땐 package.jsonbin 필드를 같이 쓴다 (5편 npm 챕터에서).

5. node --watch 와 디버거 — 살짝 맛보기

실전에서 자주 쓰는 두 가지 플래그.

--watch — 코드 저장하면 자동 재실행

$ node --watch hello.js 안녕, 박준성! Completed running 'hello.js'

파일을 수정하고 저장하면 즉시 다시 실행된다. nodemon 같은 외부 도구 없이 Node 19 부터 기본 내장. 짧은 스크립트 반복 테스트할 때 편하다.

--inspect — Chrome 으로 디버거 붙이기

$ node --inspect hello.js Debugger listening on ws://127.0.0.1:9229/...

크롬 브라우저에서 chrome://inspect 를 열면 그 프로세스를 잡고 브레이크포인트·콘솔을 쓸 수 있다. 어려운 디버깅 때 든든.

요약 — 3편 좌표

여기까지 정리. node 명령은 두 가지 모드 — 인터랙티브 REPL (실험실) 과 파일 실행 (작업장). 한 줄짜리 트릭으로 -e, 실행 파일화엔 셔뱅. 실전 보조로 --watch (자동 재실행) 와 --inspect (Chrome DevTools 디버거). 다음 편에서 진짜 큰 주제 — 모듈 시스템 CommonJS vs ESM 의 차이를 본다. 30년 묵은 자바스크립트 모듈 문제의 결말 편.

다음 편 예고 — 모듈 시스템 (CommonJS vs ESM)

requireimport 의 차이, 언제 무엇을 쓰는가. 4편.

© 2026 주나이테크(주) @JUNAITECH