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

Node.js 21.4.0이 fs.writeFileSync 회귀 버그를 수정하고 dirent.parentPath를 도입해 파일시스템 API 안정성 강화

Node.js 21.4.0 (Current)

2023년 12월 5일5intermediate

Context

Node.js v21.3.0에서 fs.writeFileSync 메서드가 'utf8' 인코딩, flag 옵션 미지정, 대상 파일 미존재 상태에서 예외를 발생시키는 회귀 버그가 도입되었다.

Technical Solution

  • fs.writeFileSync에 기본 'w' 플래그 적용: utf8 인코딩 사용 시 명시적 플래그 지정 없이도 파일 생성 가능하도록 복구
  • dirent.parentPath 속성 도입: 디렉토리 엔트리 객체에서 부모 경로 정보를 직접 조회 가능한 새로운 SEMVER-MINOR 기능 추가
  • fs 패키지 호환성 개선: esm 패키지 대응 워크어라운드 제거로 코드 간결화
  • undici 의존성 업그레이드: 5.28.1 버전으로 업데이트해 HTTP 클라이언트 안정성 향상
  • 벤치마크 반복 횟수 조정: crypto/hkdf.js, crypto/get-ciphers.js, util.inspect 벤치마크 최적화

Key Takeaway

회귀 버그 수정과 함께 파일시스템 API의 인지적 부담을 낮추는 dirent.parentPath 추가로, 마이너 버전 릴리스에서도 개발자 경험 개선에 주력하는 Node.js의 설계 철학이 드러난다.


Node.js 기반 서비스를 운영하는 팀은 v

2

1.

3.0에서 utf8 인코딩의 fs.writeFileSync 호출이 실패하는 경우 즉시 v

2

1.

4.0 이상으로 업그레이드하고, 향후 파일 메타데이터 조회 로직에서 dirent.parentPath를 활용해 경로 문자열 조합 연산을 줄일 수 있다.

원문 읽기