Node.js CLI 옵션 --watch, --env-file, --test 정리
이 글은 AI가 작성했습니다.
Overview
이 문서는 Node.js의 CLI 옵션 중 --watch, --env-file, --test에 대해 목적, 기본 사용법, 동작 특성, 주의사항 및 대안 도구를 간결하게 정리합니다. 각 옵션의 세부 동작은 Node.js 버전과 빌드 설정에 따라 다를 수 있으므로 실제 사용 전 node --help나 공식 문서를 확인하는 것을 권장합니다.
—watch
설명
--watch는 실행 중인 스크립트와 그 의존성(모듈/파일)에 변경이 발생하면 프로세스를 재시작하거나 다시 실행하도록 하는 감시 모드입니다. 개발 중 코드 변경을 반영하기 위해 사용합니다.
사용 예
- 단일 파일 실행 감시:
node --watch index.js
- 디렉터리나 특정 파일만 감시하도록 옵션을 제공하는 구현도 있으므로(버전/배포마다 차이) 필요한 경우 문서 확인이 필요합니다.
동작 특성
- 일반적으로 실행되는 스크립트가 로드한 파일(의존성 그래프)을 기준으로 변경을 감지합니다.
- 감시 방식(파일 시스템 이벤트 또는 폴링), 재시작 방식(프로세스 재실행, 내부 테스트 재실행 등)은 Node.js 버전과 플랫폼에 따라 달라질 수 있습니다.
- 디렉터리 전체 또는 외부 바이너리 파일 등 특정 경로의 감시 제외/포함 규칙을 지원하는지 여부는 구현에 따라 다릅니다.
주의사항
- 대규모 프로젝트에서 모든 파일을 감시하면 성능 또는 리소스 문제가 발생할 수 있습니다.
- 일부 파일(예: 빌드 산출물, node_modules)은 감시에서 제외하는 것이 일반적입니다.
- 플랫폼별 파일 시스템 이벤트 차이로 감지 지연이나 중복 이벤트가 발생할 수 있습니다.
—env-file
설명
--env-file은 실행 시 지정한 파일(예: .env)에서 환경 변수를 읽어 process.env에 주입하도록 하는 옵션입니다. 애플리케이션 구동 전에 환경 변수를 일괄로 설정해야 할 때 사용합니다.
사용 예
.env파일을 읽어 실행:node --env-file .env index.js
동작 특성
- 옵션 지정 파일을 파싱하여 해당 키=값 쌍을 런타임 환경에 설정합니다.
- 파일 파싱 방식(주석 지원, 따옴표 처리, 빈 줄 무시 등)은 구현에 따라 다를 수 있습니다.
- 이미 시스템 환경에서 설정된 변수와의 우선순위(덮어쓰기 여부)는 Node.js 버전 또는 CLI 구현에 따라 달라질 수 있으므로 확인이 필요합니다.
주의사항
- 민감 정보(비밀번호, 시크릿)는 버전 관리에서 제외하고 안전한 방식으로 관리해야 합니다.
.env포맷 규칙(인코딩, 유니코드, 특수문자 이스케이프 등)에 유의해야 합니다.- 만약 CLI 옵션이 사용 가능한 버전이 아니라면 외부 라이브러리(예: dotenv)를 사용해야 합니다.
—test
설명
--test는 Node.js에 내장된 테스트 러너를 실행하는 옵션입니다. 단일 파일이나 디렉터리를 지정하거나 자동으로 테스트 파일을 검색하여 테스트를 실행합니다.
사용 예
- 단일 테스트 파일 실행:
node --test test/example.test.js
- 디렉터리 단위로 테스트 실행(설치된 구현에서 자동 검색을 수행하는 경우):
node --test test/
동작 특성
- 내장 테스트 러너는 테스트 발견, 실행, 간단한 리포팅 기능을 제공합니다.
- 리포터 형식, 병렬 실행, 필터링 등 추가 옵션이나 상세 동작은 Node.js의 버전과 러너의 구현 상태에 따라 제공 여부가 달라집니다.
- 외부 테스트 프레임워크(예: Jest, Mocha)와는 기능 범위와 사용 방식이 다르므로, 요구 사항에 맞춰 선택해야 합니다.
주의사항
- 내장 테스트 러너가 제공하는 API/기능은 외부 프레임워크보다 제한적일 수 있습니다(어댑터, 확장성 등).
- 복잡한 테스트 환경(목(mock) 라이브러리, 고급 리포팅, 커버리지 측정 등)이 필요하면 외부 도구를 병행 사용하는 것이 일반적입니다.
예시 시나리오
-
개발 시 자동 재시작 및 환경 변수 로드:
node --watch --env-file .env index.js- 주: 이 조합이 현재 사용 중인 Node.js 배포판에서 지원되는지
node --help로 확인해야 합니다.
-
테스트 실행(내장 러너 사용):
node --test test/또는node --test test/example.test.js
버전 및 호환성 확인 방법
- 현재 설치된 Node.js 버전 확인:
node --version
- CLI 옵션 목록 및 사용법 확인:
node --help
- 보다 상세한 문서는 설치한 Node.js의 공식 릴리스 노트 또는 문서 사이트에서 확인하십시오.
대안 도구
- 파일 감시 및 자동 재시작: nodemon, pm2 (개발 편의성 및 추가 기능 제공)
- .env 파일 로드: dotenv (Node 애플리케이션 내에서 명시적으로 사용)
- 테스트 프레임워크: Jest, Mocha, Tap 등(특정 기능과 생태계 요구에 따라 선택)
요약 및 권장 사항
--watch,--env-file,--test는 개발 편의성을 제공하는 기능이지만, 정확한 동작과 가용성은 Node.js 버전별로 다를 수 있다.- 사용 전
node --help와 공식 문서를 확인하고, 프로젝트 요구에 따라 외부 도구를 병행 사용하는 것이 안전하다.