19P by xguru 6달전 | favorite | 댓글 8개

Node.js 테스트 러너

  • Node.js에는 이제 기본 테스트 러너 기능이 포함됨
  • 테스트 파일에서 node:test 모듈을 임포트하여 테스트 작성 가능
  • 단일 테스트 실행: node --test tests/math.test.js
  • 테스트 파일을 자동으로 감지하고 실행
  • 기본 제공되는 assert 모듈을 사용하여 테스트 확인 가능
  • 테스트 스위트와 훅을 사용하여 관련된 테스트를 그룹화하고 관리 가능

Node.js 네이티브 모킹

  • Node.js에는 이제 네이티브 모킹 기능이 포함됨
  • 다른 테스트 프레임워크에서 제공하는 모킹 기능을 Node.js에서 직접 사용할 수 있음
  • node:test 모듈에서 mock 메서드를 사용하여 모킹 기능 구현 가능

Node.js 네이티브 테스트 커버리지

  • 테스트 커버리지는 소스 코드의 테스트 범위를 이해하는 데 도움을 줌
  • Node.js 20부터 네이티브 테스트 커버리지 기능 제공
  • --experimental-coverage 플래그를 사용하여 테스트 커버리지 데이터 생성 가능
  • 커버리지 보고서를 통해 테스트되지 않은 코드 영역을 식별할 수 있음

Node.js 와치 모드

  • 와치 모드는 파일 변경을 실시간으로 감지하고 스크립트를 자동으로 재실행함
  • Nodemon과 같은 외부 의존성이 필요하지 않음
  • --watch 플래그를 사용하여 파일 변경을 감지하고 스크립트를 자동으로 실행 가능

Node.js 코어팩 (Corepack)

  • 코어팩은 프로젝트와 패키지 관리자 간의 다리 역할을 함
  • 프로젝트에서 사용할 패키지 관리자를 명시하고, Corepack이 이를 자동으로 관리함
  • corepack enable 명령어로 코어팩을 활성화 가능

Node.js .env 로더

  • Node.js 20부터 네이티브로 .env 파일에서 환경 변수를 로드하는 기능 제공
  • --env-file 플래그를 사용하여 .env 파일을 로드 가능
  • 여러 .env 파일을 로드하여 다양한 환경 설정 가능

Node.js import.meta 지원

  • Node.js v20.11.0과 v21.2.0에서 import.meta.filenameimport.meta.dirname 지원
  • 파일 경로와 디렉터리 이름을 더 쉽게 가져올 수 있음

Node.js 네이티브 타이머 프라미스

  • Node.js v15부터 타이머를 프라미스 형태로 사용 가능
  • setTimeoutsetInterval을 프라미스로 사용하여 비동기 코드를 더 간결하게 작성 가능

Node.js 퍼미션 모듈

  • Node.js 애플리케이션의 리소스 접근을 제어하는 실험적 기능
  • --experimental-permission 플래그를 사용하여 파일 시스템, 네트워크, 환경 변수 등의 접근을 제한 가능

Node.js 폴리시 모듈

  • 악성 코드의 로딩을 방지하는 보안 기능
  • --experimental-policy 플래그를 사용하여 정책 파일을 지정하고, 모듈 로딩을 제어 가능

node --run 언급이 없네요. 최신 버전부터 NPM 의존하지 않고 스크립트 실행이 가능합니다. 부팅이 수십배 빨라요

이번에 tsboard 프로젝트를 해보면서 Bun 런타임이랑 이래저래 비교를 많이 해봤는데, Node.js 가 정말 다 좋지만 (1) TypeScript 미지원 (2) 속도 이 두가지가 여전히 아쉽습니다. 호환성이나 하드웨어 자원을 딱히 가리지 않는 점 등은 정말 대단하다고 생각합니다.

TypeScript, 동작 속도 등을 고려하신다면 Bun 런타임도 한 번 고려해 보세요...!

vite나 Next.js 등 몇몇 에코시스템이 Node 중심으로 이루어진 프로젝트에는 아직 시기상조인 게 아쉽습니다. 물론 Bun 잘못은 아니지만, 쓸 날이 왔으면 좋겠군요.

우와~ 원문에 Jest 언급도 있네요.

작은 프로젝트에서 jest - > node.js 이전해 봤는데, 검증 함수 지원이 너무 부족해서 별로네요 :(

이제 네이티브로 타입스크립트 지원만 하면 베스트인데~

최신 트렌드들을 엄청 빨리 받아들이는 군요..

와 네이티브 모킹!