Node.js v20 신기능!

지난 4월 18일에 node.js v20이 공개되었다. 무엇이 추가되었는지 정리함.

permission control

  • 지금까지는 파일이 무엇이든 node some.js로 수많은 사고를 저지를 수 있었음
  • 이제 파일 실행 권한 옵션이 생겨서 --experimental-permission으로 파일에 권한을 줄 수 있게됨
  • 읽어보니 읽기, 쓰기 제한은 당연히 있고, child process, worker thread도 제어할 수 있게 해놓음
  • process.permission.has('fs.write') 같은 방법으로 미리 체크할 수 있게도 해놓음
  • 보안에 취약하다고 지적당하던 부분을 해결할 수 있을듯

Native Test Runner

18 때 실험적으로 도입됐던 기능이 stable 버전으로 격상!

import { test, mock } from 'node:test';
import assert from 'node:assert';
import fs from 'node:fs';

test('my first test', (t) => {
  assert.strictEqual(1, 1);
});

test('my second test', (t) => {
  assert.strictEqual(1, 2);
});

// asynchronous test with mocking
mock.method(fs, 'readFile', async () => 'Node.js test');
test('my third test', async (t) => {
  assert.strictEqual( await fs.readFile('anyfile'), 'Node.js test' );
});

--watch 옵션을 붙이면 파일 변경되면 자동으로 테스트 재실행

기타 기능들

  • url.parse(“url”) 에 포트가 number가 아니면 warning 뱉음
  • V8 엔진 업데이트 -> UTF-16 검증하는 isWellFormed, toWellFormed 도입

일단 더 있는 것 같은데, 좀 더 찾아볼것!

 Date: May 1, 2023
 Tags:  node.js

Previous:
⏪ [2019] NHN 200만 동접 게임을 위한 MySQL 샤딩 정리

Next:
system design - 1. 한계 극복의 역사 ⏩