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