기본값으로 require(esm)
활성화
- Node.js 22.12.0 ('Jod') LTS 버전이 출시되었으며, 기본적으로
require(esm)
기능이 활성화됨
- 더 이상
--experimental-require-module
플래그가 필요하지 않음
-
require()
를 사용해 네이티브 ES 모듈을 로드할 수 있게 되었음
- 기능 배경:
- CommonJS(CJS) 사용자에게 호환성을 유지하면서 ES 모듈(ESM) 채택을 가속화하기 위함
- 플러그인 코드에 네이티브 ESM 지원을 도입하는 데 도움을 주며, 프레임워크와 도구의 전환 과정을 지원함
- 개발자 참고사항:
-
require()
로 로드할 때 ERR_REQUIRE_ESM
에러가 더 이상 발생하지 않음
- 단, 모듈에
top-level await
가 포함된 경우 ERR_REQUIRE_ASYNC_MODULE
에러 발생 가능
- 경고 메시지는 모듈이 node_modules 경로에서 로드되지 않을 때 출력됨
자동화된 프로세스를 통한 릴리스 속도 향상
- 2023년부터 릴리스 과정의 자동화를 추진했으며, 최근 몇 달 동안 보안 릴리스 관련 작업을 자동화하여 효율성을 높였음
- 새로운 기능:
- 릴리스 워크플로우를 간소화하는
--releaseDate
및 --yes
플래그 추가
- 보안 릴리스의 변경 로그에 CVE-ID 메타데이터를 자동으로 포함하는 기능 추가
- 릴리스 정책 변화:
- Node.js 24부터 모든 주요 릴리스에 안정성을 위한 1개월 "베이킹 기간"을 필수적으로 포함
보안 강화
- 보안 보고 감소:
- 2024년 10~11월 동안 보고된 보안 이슈가 총 10건으로 역대 최저 기록
- 보고 내용: 스팸(1), 비적용(4), 참고용(2), 신규 문제(2), 분류 완료(1)
- 개선 효과:
- 새로운 보안 정책이 시스템 보호 강화에 기여
- 자동화된 워크플로우로 릴리스 제안, 웹사이트 배너 업데이트, 블로그 게시물 관리가 간소화됨
- 추가 개발:
- 변경 로그에 CVE-ID 메타데이터 자동 추가를 통해 보안 릴리스 속도 개선
핵심
-
require(esm)
의 기본 활성화는 CommonJS와 ES 모듈 간의 격차를 줄이는 중요한 단계로, 개발자들이 현대적이고 상호운용 가능한 JavaScript 개발을 수월하게 할 것임
- Node.js는 성능, 보안, 생태계의 유연성을 계속해서 발전시키며 JavaScript 언어와 플랫폼의 글로벌 영향력을 강화하는 데 기여하고 있음