4P by neo 14일전 | favorite | 댓글과 토론

기본값으로 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 언어와 플랫폼의 글로벌 영향력을 강화하는 데 기여하고 있음