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

Node.js 15.7.0이 Buffer Blob 타입 도입, BigInt 위치 파라미터 지원, base64url 인코딩 옵션 추가로 웹 표준 호환성 강화

Node.js 15.7.0 (Current)

2021년 1월 26일5intermediate

Context

Node.js는 웹 브라우저와의 API 호환성을 높이기 위해 표준 웹 객체 지원이 필요했다. 파일 시스템 작업 시 정수 범위 제약으로 인한 대용량 파일 처리의 한계가 있었다.

Technical Solution

  • Buffer에 Blob 타입 도입: 웹 표준 Blob 인터페이스를 Node.js 버퍼 레이어에 구현
  • fs.read() 및 fs.readSync()의 position 파라미터를 BigInt 허용: 정수형 제약 제거로 대용량 파일 위치 지정 가능
  • base64url 인코딩 옵션 추가: Buffer 인코딩 시 URL 안전 base64 변환 지원
  • HTTP에서 res.req 속성 추가: 응답 객체에서 원래 요청 객체에 직접 접근 가능
  • crypto.KeyObject에 asymmetricKeyDetails 속성 추가: 비대칭 키의 상세 정보 노출

Impact

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

Key Takeaway

Node.js는 브라우저와의 API 일관성을 우선시하여 Blob 등 웹 표준을 직접 구현함으로써 엣지 런타임으로서의 입지를 강화했다. 수치 제약 완화(BigInt)와 암호화 API 투명성 개선은 보안과 대규모 데이터 처리 시나리오 모두를 지원하는 플랫폼 진화를 반영한다.


Node.js

1

5.

7.0 이상을 사용하는 서비스에서 대용량 파일의 임의 위치 읽기가 필요할 때 fs.read(fd, buffer, offset, length, position)의 position에 BigInt를 직접 전달하면 2^32 바이트를 초과하는 위치에 접근할 수 있다. Buffer base64url 옵션은 JWT나 COSE 같은 암호화 토큰을 다룰 때 인코딩 단계를 간소화할 수 있다.

원문 읽기