Node.js 22 베타 테스트 - watch 모드와 built-in .env 지원
배경
Node.js 22 베타가 나와서 개발 환경에 적용해봤다. 주로 DX 개선에 초점이 맞춰진 릴리스였다.
주요 변경사항
1. watch 모드 안정화
기존 --watch 플래그가 experimental에서 stable로 전환됐다.
# nodemon 없이도 가능
node --watch server.js
특정 파일만 감시하는 것도 가능해졌다.
node --watch-path=./src --watch-path=./config server.js
테스트 결과 nodemon보다 재시작 속도가 20% 정도 빨랐다. 다만 ignore 패턴 설정이 nodemon보다 불편했다.
2. 네이티브 .env 지원
드디어 dotenv 없이 환경변수를 로드할 수 있게 됐다.
node --env-file=.env server.js
여러 파일도 지원한다.
node --env-file=.env --env-file=.env.local server.js
실제 프로젝트에 적용해봤는데, dotenv와 완전히 동일하게 동작했다. 다만 변수 확장(${VAR} 형태)은 아직 지원하지 않았다.
3. require(ESM) 실험적 지원
CJS에서 ESM 모듈을 동기적으로 require 할 수 있는 기능이 추가됐다.
// 기존에는 dynamic import만 가능했음
const module = require('esm-package');
아직 --experimental-require-module 플래그가 필요하고, 모든 패키지에서 동작하진 않았다.
실무 적용 고려사항
프로덕션 적용은 6월 정식 릴리스 이후로 미뤘다. 다만 로컬 개발환경은 바로 전환해도 될 것 같다.
특히 .env 네이티브 지원은 의존성 하나를 줄일 수 있어서 마음에 들었다. CI/CD 파이프라인에서도 별도 패키지 설치 없이 환경변수 주입이 가능해진다.
watch 모드는 프로젝트 규모에 따라 nodemon 대체 여부를 판단해야 할 것 같다.