피드로 돌아가기
Node.js 18.1.0 (Current)
Node.js BlogNode.js Blog
Backend

Node.js 18.1.0이 WebAssembly Web API 구현과 Test Runner 초기 CLI, 의존성 업그레이드를 통해 표준 호환성 강화

Node.js 18.1.0 (Current)

2022년 5월 3일5intermediate

Context

Node.js 18.x는 WebAssembly 지원을 확대하고 테스트 러너를 내장하기 위해 API 표준화가 필요했다. 또한 npm 8.8.0, undici 5.1.1 등 주요 의존성 보안 업데이트와 레거시 아키텍처(linux-ppc64, aix-gcc 등) 지원 중단을 통한 유지보수 부담 경감이 시급했다.

Technical Solution

  • WebAssembly Web API 구현: lib,src에서 Response URL을 WebAssembly 로케이션으로 사용하는 표준 Web API 기능 추가
  • Test Runner CLI 초기화: test_runner 모듈에 초기 커맨드라인 러너 기능 추가로 테스트 작성 지원
  • MessagePort hasRef() 메서드 추가: worker 모듈의 MessagePort에 hasRef() 메서드 구현으로 참조 상태 확인 기능 확대
  • 의존성 버전 업그레이드: npm을 8.8.0으로, undici를 5.1.1로 업데이트
  • 레거시 아키텍처 제거: linux-ppc, linux-ppc64, aix-gcc, archs/aix64-gcc 플랫폼 지원 중단
  • V8 공유 읽기 전용 힙 활성화: build 단계에서 V8의 shared read-only heap 옵션 활성화
  • ESM top-level-await 안정화: top-level-await 기능을 실험 단계에서 안정 상태로 승격
  • FormData 실험 경고 제거: lib에서 FormData의 experimental warning 제거

Impact

아티클에 정량적 수치가 제시되지 않음.

Key Takeaway

Node.js 18.1.0은 WebAssembly와 ESM 표준 API 지원을 공식화하고 레거시 플랫폼을 단계적으로 제거함으로써 표준 호환성 강화와 유지보수 복잡성 감소를 동시에 달성했다.


Node.js 런타임을 사용하는 팀에서는 WebAssembly Web API 구현으로 Response 객체를 직접 WebAssembly.instantiate()에 전달할 수 있게 되었으므로, 모듈 페칭 로직 간소화가 가능하다. 또한 test_runner의 CLI 기능으로 별도 테스팅 프레임워크 의존성을 줄일 수 있다.

원문 읽기