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

Node.js 7.2.1이 V8 instanceof 성능 회귀를 수정하고 Promise 경고 스택트레이스, 버퍼 트랜스코딩, 생성기 함수 파싱 버그를 해결한 유지보수 릴리스

Node.js 7.2.1 (Current)

2016년 12월 6일5intermediate

Context

Node.js 7.x 초기 릴리스에서 V8 업그레이드 후 instanceof 연산자 성능이 퇴보했으며, Promise 경고 시 스택트레이스가 불충분했고, 버퍼 단일 바이트 인코딩에서 ucs2로의 트랜스코딩 오류가 발생했다.

Technical Solution

  • V8 upstream 패치(08377af) 백포트로 instanceof 성능 회귀 해결
  • Promise 경고에 --trace-warnings 옵션 추가로 유용한 스택트레이스 생성
  • 버퍼 트랜스코딩 로직 수정으로 단일 바이트 인코딩에서 ucs2 변환 오류 해결
  • REPL에서 생성기 함수 파싱 버그 수정
  • async_wrap 콜백 호출 시점을 uv_idle_t에서 제때에 호출하도록 변경
  • async_wrap의 Initialize를 정적 클래스 멤버로 리팩토링
  • npm 3.10.10으로 업그레이드
  • Python 3 호환성 개선으로 configure 파일 파싱 가능하도록 수정

Impact

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

Key Takeaway

Node.js 유지보수 릴리스는 상위 계층 의존성(V8, npm)의 버그 백포트와 함께 언어 기본 기능(instanceof, Promise, 버퍼)의 안정성을 우선시하며, 플랫폼 호환성 확대(Python 3, AIX 공유 라이브러리)를 동시에 진행한다.


Node.js 애플리케이션 개발팀은 마이너 버전 업그레이드 시 instanceof 성능, Promise 디버깅, 버퍼 인코딩 변환 등 기본 연산의 회귀 여부를 회귀 테스트로 검증하고, --trace-warnings를 활성화하여 비동기 코드의 스택트레이스 추적성을 확보할 수 있다.

원문 읽기