JavaScript๋ก ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํ ํ๋ซํผ์ธ Node.js 22.0์ด ์ถ์๋์์ต๋๋ค. Node.js 22.0์ ์ฅ๊ธฐ ์ง์ ๋ธ๋์น๋ก ๋ถ๋ฅ๋๋๋ฐ, ์ด ์ํ๋ ์์ ํ ์ดํ์ธ 22์์๋ง ๋ถ์ฌ๋ ์์ ์ ๋๋ค. Node.js 30.x๋ 2027๋ 20์ 2026์ผ๊น์ง ์ง์๋ฉ๋๋ค. Node.js 18.x์ ์ด์ LTS ๋ธ๋์น ์ ์ง ๊ด๋ฆฌ๋ 2025๋ 21์๊น์ง ์ง์๋๋ฉฐ, ๋ง์ง๋ง LTS ๋ธ๋์น 1.x 2024๋ ์ ์ธ XNUMX๋ XNUMX์๊น์ง ์ ์ง๋ฉ๋๋ค. Node.js XNUMX.x์ ์คํ ์ด์ง ๋ธ๋์น๋ XNUMX๋ XNUMX์ XNUMX์ผ์ ์ค๋จ๋ฉ๋๋ค.
์ฃผ์ ๊ฐ์ ์ฌํญ:
- V8 ์์ง์ด Chromium 12.4์์ ์ฌ์ฉ๋๋ ๋ฒ์ 124๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค. V21 8 ์์ง์ ์ฌ์ฉํ๋ Node.js 11.8 ๋ธ๋์น์ ๋น๊ตํ ๋ณ๊ฒฝ ์ฌํญ ์ค ๋ค์๊ณผ ๊ฐ์ ์ฌํญ์ด ์์ต๋๋ค.
- ๊ฐ๋น์ง ์์ง๊ธฐ(Kotlin, PHP, Java ๋ฑ)๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ WebAssembly๋ก ์ฝ๊ฒ ํฌํ ํ๋ WasmGC ํ์ฅ์ ์ง์ํฉ๋๋ค. WasmGC๋ ๋น์ ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉํ ์ ์๋ ์๋ก์ด ์ ํ์ ๊ตฌ์กฐ์ ๋ฐฐ์ด์ ์ถ๊ฐํฉ๋๋ค.
- ์ ์ฌ ๋ฐฐ์ด, ๋ฐ๋ณต ๊ฐ๋ฅ ๋๋ ๋น๋๊ธฐ ๋ฐ๋ณต ๊ฐ๋ฅ ๊ฐ์ฒด์์ ๋ณต์ฌ๋ Array ๊ฐ์ฒด์ ์ ์ธ์คํด์ค๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐํํ๋ Array.fromAsync() ๋ฉ์๋๋ฅผ ์ง์ํฉ๋๋ค.
- .map, .filter, .find, .take, .drop, .forEach ๋ฐ .reduce์ ๊ฐ์ ๋ฐ๋ณต์ ๋ฉ์๋๋ฅผ ์ง์ํฉ๋๋ค.
- ๊ฐ์ ์ปฌ๋ ์ ์ ์ ์ํ๊ณ ๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์ด, ๋ง์ ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์งํฉ ์ฐ์ฐ์ ๊ตฌํํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ Set ๊ฐ์ฒด๋ฅผ ์ง์ํฉ๋๋ค.
- Maglev ์ต์ ํ JIT ์ปดํ์ผ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ผ๋ฉฐ, ๋ง์ด ์ฌ์ฉ๋๋ JavaScript ์ฝ๋์ ๋ํ ๊ณ ์ฑ๋ฅ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. Maglev๋ฅผ ํ์ฑํํ๋ฉด ์ฅ๊ธฐ ์์ ์ ์ํํ์ง ์๋ ๋จ๊ธฐ CLI ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋๋ฅผ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Jetstrea ํ ์คํธ๋ฅผ ์๋ฃํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ 7.5%, ์๋๊ณ ํ ์คํธ๋ 5% ๋จ์ถ๋ฉ๋๋ค.
- highWaterMark ์ต์ ์ ๊ฐ์ 16KB์์ 65KB(๋ นํ๊ฐ ๋ฒํผ๋ง๋๋ ์ต๋ ํ๋ ์ ์)๋ก ์ฆ๊ฐํ์ฌ ์คํธ๋ฆผ ์์ ์ด ๊ฐ์ํ๋์์ต๋๋ค. ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ฆ๊ฐํ๋ฏ๋ก ์ ํ๋ RAM์์ ์คํ๋๋๋ก ์ค๊ณ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ setDefaultHighWaterMark() ํธ์ถ์ ํตํด ์ด์ ๊ฐ์ผ๋ก ๋๋๋ ค์ผ ํ ์๋ ์์ต๋๋ค.
- AbortSignal ์ธ์คํด์คํ๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด fetch() ๋ฐ ํ ์คํธ ์คํ๊ธฐ API์ ์ฑ๋ฅ์ ํฅ์ํ์ต๋๋ค. ํ์ผ ์์คํ ๊ณผ์ ๋๊ธฐ ์์ ๊ณผ ๊ด๋ จ๋ API์ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- ๋๊ธฐ ๋ชจ๋์์ JavaScript ESM ๋ชจ๋(ECMAScript ๋ชจ๋)์ ๋ก๋ํ๊ธฐ ์ํด "require()" ํธ์ถ์ ์ฌ์ฉํ๋ ์คํ์ ๊ธฐ๋ฅ์ด ์ ๊ณต๋์์ต๋๋ค. ESM ๋ชจ๋์ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ๋๋ฉฐ Node.js ๊ด๋ จ CommonJS ๋ชจ๋์ ๋์ฒดํฉ๋๋ค. "require()"๋ฅผ ํตํด ๋ก๋ํ๋ ค๋ฉด ESM ๋ชจ๋์ ๋๊ธฐ ๋ชจ๋์์ ์คํํด์ผ ํฉ๋๋ค(์ต์์ ์์ค์์ ๋๊ธฐํ์ง ์์). "--experimental-require-module" ํ๋๊ทธ๋ฅผ ํตํด ์ง์์ด ํ์ฑํ๋ฉ๋๋ค.
- "--run" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ package.json ํ์ผ์ ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์คํ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. "
- ๊ฐ์ ธ์จ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ๋ค์ ์์๋๋๋ก ๋ณด์ฅํ๋ ๊ฐ์ ๋ชจ๋๊ฐ ๊ตฌํ๋์ด "node โwatch" ๋ช ๋ น์ด ์์ ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค(์: "node โwatch index.js"๊ฐ ์คํ๋๋ฉด index.js๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ์๋์ผ๋ก ๋ค์ ์์๋ฉ๋๋ค.
- WebSocket API์ ๊ธฐ๋ณธ ๊ตฌํ์ด ์์ ํ๋์ด ์ถ๊ฐ ์ข ์์ฑ์ ์ค์นํ์ง ์๊ณ ๋ WebSocket์ ํด๋ผ์ด์ธํธ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Navigator API์ ๋ํ ๋ถ๋ถ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Webstreams API์๋ deflate-raw ์์ถ ํ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ์ผ ๊ฒฝ๋ก์ ํจํด ์ผ์น๋ฅผ ์ํด node:fsmodule์ glob ๋ฐ globSync ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ์๋ชป ๊ตฌ์ฑ๋ IPv6 ์คํ ์ฒ๋ฆฌ๊ฐ ๊ฐ์ ๋์์ต๋๋ค. IPv6 ์๋์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ๋ฅธ ๋กค๋ฐฑ์ ์ํด Happy Eyeballs ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ์ต๋๋ค.
- util API๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
- ์ ๋ฐ์ดํธ๋ ์ข ์์ฑ ๋ฒ์ : npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson์์ 3.8.0, ada 2.7.7 ๋ฐ undici 6.6.0 .
Node.js ํ๋ซํผ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ ์ธก ์ง์๋ฟ๋ง ์๋๋ผ ํ์ค ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ธก ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ธฐ ์ํด ๋ค์ํ ๋ชจ๋์ด ์ค๋น๋์ด ์์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ชจ๋๋ค์ด ํฌํจ๋ฉ๋๋ค. ์๋ฒ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ํด๋ผ์ด์ธํธ, ๋ค์ํ ์น ํ๋ ์์ํฌ์์ ํตํฉ ๋ชจ๋, WebSocket ๋ฐ Ajax ํธ๋ค๋ฌ, DBMS(MySQL, PostgreSQL, SQLite, MongoDB) ์ปค๋ฅํฐ, ํ ํ๋ฆฟ ์์ง, CSS ์์ง, ์ํธํ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ธ์ฆ ์์คํ (OAuth) ๊ตฌํ, XML ํ์ ๋ฑ์ ํฌํจํฉ๋๋ค.
๋ง์ ์์ ๋ณ๋ ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Node.js๋ ๋น์ฐจ๋จ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐ ์ฝ๋ฐฑ ํธ๋ค๋ฌ ์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋น๋๊ธฐ ์ฝ๋ ์คํ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ๋ฉํฐํ๋ ์ฑ ์ฐ๊ฒฐ์ ์ง์๋๋ ๋ฐฉ๋ฒ์๋ epoll, kqueue, /dev/poll ๋ฐ select๊ฐ ์์ต๋๋ค. ์ฐ๊ฒฐ ๋ฉํฐํ๋ ์ฑ์๋ Unix ์์คํ ์ libev ๋ฐ Windows์ IOCP์ ๋ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ธ libuv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. libeio ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค๋ ๋ ํ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ c-ares๋ ๋น์ฐจ๋จ ๋ชจ๋์์ DNS ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ธฐ ์ํด ํตํฉ๋์์ต๋๋ค. ์ฐจ๋จ์ ์ ๋ฐํ๋ ๋ชจ๋ ์์คํ ํธ์ถ์ ์ค๋ ๋ ํ ๋ด์์ ์คํ๋ ๋ค์ ์ ํธ ์ฒ๋ฆฌ๊ธฐ์ฒ๋ผ ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ช ๋ช ๋์ง ์์ ํ์ดํ๋ฅผ ํตํด ๋ค์ ์ ๋ฌํฉ๋๋ค.
Google์ด ๊ฐ๋ฐํ V8 ์์ง์ ์ฌ์ฉํ์ฌ JavaScript ์ฝ๋ ์คํ์ด ๋ณด์ฅ๋ฉ๋๋ค(๋ํ Microsoft๋ Chakra-Core ์์ง์ ์ฌ์ฉํ์ฌ Node.js ๋ฒ์ ์ ๊ฐ๋ฐ ์ค์
๋๋ค). ํต์ฌ์ ์ผ๋ก Node.js๋ Perl AnyEvent, Ruby Event Machine, Python Twisted ํ๋ ์์ํฌ ๋ฐ Tcl์ ์ด๋ฒคํธ ๊ตฌํ๊ณผ ์ ์ฌํ์ง๋ง Node.js์ ์ด๋ฒคํธ ๋ฃจํ๋ ๊ฐ๋ฐ์์๊ฒ ์จ๊ฒจ์ ธ ์์ผ๋ฉฐ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฒคํธ ์ฒ๋ฆฌ์ ์ ์ฌํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ์คํ ์ค์
๋๋ค.
์ถ์ฒ : opennet.ru
