State of node.js 2023
- ๐ Node.js๋ ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ์ ๋ณด์ ํจ์น๋ฅผ ์ถ์ํ๋ฉฐ, 2020๋ 4์ ์๋ก์ด ์ฃผ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋ ์์ ์ ๋๋ค. Node 14๊ฐ ์ง์ ์ข ๋ฃ ์์ ์ด๋ฏ๋ก ์ฌ์ฉ์๋ ์ ์ด๋ ๋ฒ์ 18๋ก ์ ๊ทธ๋ ์ด๋ํด์ผํฉ๋๋ค. - ๋ฆด๋ฆฌ์ค ๊ทธ๋ฃน์ ๋ชจ๋ ์ง์ ๋ฒ์ ์์ ์ ๊ธฐ์ ์ธ ๋ฆด๋ฆฌ์ค์ ๋ณด์ ํจ์น ์ ๋ฐ์ดํธ๋ฅผ ์ ์งํ๋ ๋ฐ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๋ฉฐ, 2020๋ 4์ ์๋ก์ด ์ฃผ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋ ์์ ์ ๋๋ค. - Node 14๋ 4์ ๋ง์ ์ง์ ์ข ๋ฃ๊ฐ ์์ ๋์ด ์์ผ๋ฉฐ, ์ฌ์ฉ์๋ Node 16์ openssl ์ง์ ์ข ๋ฃ๋ก ์ธํด ์ง์ ๊ธฐ๊ฐ์ด ์ฐ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ ์ด๋ ๋ฒ์ 18๋ก ์ ๊ทธ๋ ์ด๋ํด์ผํฉ๋๋ค. - OpenJS๋ ๋ถ๋ฏธ์ ๋น๋ฐ์ค์์ ๋ ๊ฐ์ ์์ ๋ง์ดํฌ๋ก ์ปจํผ๋ฐ์ค๋ฅผ ๊ฐ์ตํ ์์ ์ด๋ฉฐ, ํ๋ ฅ์ ์๋ฐ์ ๊ณ์ ์งํํ ์์ ์ ๋๋ค. ๋ด๋ ์ ๋ํด์๋ ์ฌํ๊ฐํ ์์ ์ ๋๋ค. - ํ๋ก์ ํธ๋ ๋ค์ํ ์ด์ ๋ก ์๊ธ ์ง์์ด ํ์ํ๋ฉฐ, OpenJS ํ๋ก์ ํธ๋ ๋ณด์ ์์ ์ ์ํด ์คํ ์์ค ๋ณด์ ์ฌ๋จ์ผ๋ก๋ถํฐ ์๊ธ ์ง์์ ๋ฐ์์ต๋๋ค. - ๋ฆด๋ฆฌ์ค ์ถ์๋ฅผ ์ํ ๋ณด์ ํ๋ก์ธ์ค๋ ๋ณด์ ์คํ์ด๋๊ฐ ์ด๋๋ 42 ~ 44 ๋จ๊ณ์ ์๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ค์๋ฅผ ํผํ๊ธฐ ์ํด ์์ ํ ์ฃผ์๊ฐ ํ์ํ ์ ๋ชฝ๊ฐ์ ์๋๋ฆฌ์ค์ ๋๋ค. - ๐ ๊ธฐ์ฌ์๋ค์ ๋ ธ๊ณ ๋ฅผ ์ธ์ ํ๋ฉฐ, ๋ฐํ์๋ ํ๋ก์ ํธ์์ ๋ณด์๊ณผ ํ์ ์ ์ค์์ฑ์ ๊ฐ์กฐํ๋ฉด์, ์น์ด์ ๋ธ๋ฆฌ ๊ตฌํ์ ์ํ UV Wazi ํ์ ๊ฒฐ์ฑ์ ๋ฐํํฉ๋๋ค. - ๋ฐํ์๋ ํ๋ก์ ํธ์์ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค์ ๋ณด์์ ๊ธฐ์ฌํ๋ ์ฌ๋๋ค์ ๋ ธ๋ ฅ์ ์ธ์ ํ๋ฉฐ, ๊ทธ๋ค์ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋ฅผ ํํฉ๋๋ค. - ๋ณด์๊ณผ ๊ฐ์ ํน์ ์์ญ์ ์ง์คํ๋ ์ฌ๋์ด ์๋ค๋ฉด, ๋๊ท๋ชจ์ ์ ๋ฐ์ดํธ ์๋ํ์ ๋์์ด ๋์ด ์ทจ์ฝ์ ์ ์์ ํ๊ณ ๊ณต๊ธ๋ง ๋ณด์์ ๊ฐ์ ํ๋ ๊ฒ์ด ์ฌ์์ง๋๋ค. - UV Wazi ํ์ ๋ ธ๋ ๋ฐ ๊ธฐํ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ์น์ด์ ๋ธ๋ฆฌ ์์คํ ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ์ฐธ์ฌํ ์ ์๋๋ก ๊ฒฐ์ฑ๋๋ฉฐ, Wazi ๋ฐ wasm ์ํ๊ณ์ ๋ํด ๋ ๋ง์ด ๋ฐฐ์ธ ์ ์๋ ์ข์ ๊ธฐํ๊ฐ ๋ฉ๋๋ค. - ์ฅ๊ธฐ์ ์ธ ํ๋ ฅ์๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ๋ ธ๋ ์ ๋์จ API์ ๊ฐ์ ์์ ๊ทธ๋ฃน ๋ฐ ํ์ ์ฐธ์ฌํ๋ ๊ฒ์ด ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. - ๐ Node.js ํ๋ก์ ํธ๋ redesign ๋์์ผ๋ฉฐ next.js๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋์์ผ๋ฉฐ, ๋ก๋ API์ ๋ํ ์งํ๋๊ฐ ์์ผ๋ฉฐ ์๋ก์ด ๋ก๋ ํ์ฅ API๊ฐ ๊ฐ๋ฐ ์ค์ ๋๋ค. - ์น ์ฌ์ดํธ๋ ์ธ๊ธฐ์๋ ํ๋ ์ ์ํฌ์ธ next.js๋ก redesign๋์ด ์๋ก์ด ๊ธฐ์ฌ์๋ฅผ ์ ์นํ ์์๋ ์ ์ฌ๋ ฅ์ด ์์ต๋๋ค. - ๋น๋ ์์ ๊ทธ๋ฃน๊ณผ ์น ์ฌ์ดํธ ๊ทธ๋ฃน์ CI ๋จธ์ ๋ฐ ๋ค์ด๋ก๋ ์๋ฒ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๋ฐ์์ง๋ง, ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ฃ๊ฒ๋๋ ๋ ธ๋ ฅ์ด๋ฉฐ, ์ด์ ๋ํ ์ธ์ ๋ถ์กฑ์ด ์์ต๋๋ค. - Claudio๋ ๋ ธ๋ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋๋ผ๋ ํ๋ก์ ํธ์ ๋ํ ๊ธฐ์ฌ๋ก ์ธํด ์ธ์ ๋ฐ์ ์๊ฒฉ์ด ์์ผ๋ฉฐ, ๊ด์ฌ๊ณผ ์ด์ ์ ๊ฐ์ง ๋ชจ๋ ์ฌ๋์ด ๊ธฐ์ฌ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. - Node.js์ ๋ก๋ API๋ ๋ง์ ๊ฐ์ธ๋ค์ ๊ธฐ์ฌ์ ํจ๊ป ๋๊ท๋ชจ PR์ด ์ด๋ ค ์งํ๋๊ณ ์์ผ๋ฉฐ, ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋์ ๋๋ค. - ์๋ก์ด ๋ก๋ ํ์ฅ API๋ ๋์ ๋์ require์ ๋์ฒดํ๊ณ ๋ณ๋์ ์ค๋ ๋์์ ์ฝ๋ ๋ณํ์ ๊ฐ๋ฅํ๊ฒ ํจ์ผ๋ก์จ esm๊ณผ CJs์ ๋จ๊ณ๋ฅผ ํตํฉํ๊ณ TypeScript ์ง์์ ๊ฐ์ ํฉ๋๋ค. - ๐ Node.js๋ ๋จ์ผ ์คํ ํ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ๋ก์ธ์ค ๊ถํ์ ํฌํจํ ์๋ก์ด ์คํ ๊ธฐ๋ฅ์ ์๊ฐํฉ๋๋ค. - James๋ ์ ํ์ฑ์ ์ค์ ์ ๋์๊ณ Unity ์ ๋ฐ์ดํธ์ ๋์์ ์ฃผ๋ ๊ธฐ์ฌ์๋ค์ ํ์ด ์์์ต๋๋ค. - ์๋ WG URL ํ์๋ ๋๋ ธ์ง๋ง Nagis์ Daniel์ Ada ๊ตฌํ ์์ ๋๋ถ์ ์ง๊ธ์ ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ ์ค ํ๋์ ๋๋ค. ์ต๊ทผ ์์ ๊ทธ๋ฃน ๋ด์์ ์ฑ๋ฅ์ ๋ํ ์ด์ ์ด ์์์ต๋๋ค. - Node.js์ ์๋ก์ด ์คํ ๊ธฐ๋ฅ์๋ ๋จ์ผ ์คํ ํ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ๋ก์ธ์ค ๊ถํ์ด ํฌํจ๋ฉ๋๋ค. - ๋ด์ฅ๋ ํ ์คํธ ๋ฌ๋ ๊ธฐ๋ฅ์ ๋งค์ฐ ์ ๋ฐ์๋ค์ฌ์ก์ผ๋ฉฐ ํจํค์ง ๊ฒฝ๊ณ ๋ฅผ ์ฒ๋ฆฌํ์ง ์๊ณ ๊ฐ๋จํ ํ ์คํธ๋ฅผ ์ํ ํ ์ ์์ผ๋ฉฐ ๋งค์ฐ ๊ฒฌ๋ ์ ์๊ณ ๋น ๋ฆ ๋๋ค. - ์์ ์ฑ ๊ฐ์ ์ ์ํ PR์ด ์ด๋ ค ์์ผ๋ฉฐ ๋ง์ ์์ ์ด ์ด๋ฃจ์ด์ง๊ณ ์์ผ๋ฉฐ ์งํ ์ํฉ์ ๋ณด๊ณ ํ๋ ๊ฒ์ ๊ด์ฌ์ด ์์ต๋๋ค. - ๐ IPv6 ์ฑํ์ ์ฆ๊ฐํ๊ณ ์์ง๋ง ์ธํฐ๋ท ํธ๋ํฝ์ 15%๋ง ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ, ๋ ธ๋.js๋ IPv4 ๋๋ IPv6 ํฌํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋ณต์กํด์ก์ง๋ง API ๋ชจ๋์ ํตํด ํด๊ฒฐ์ฑ ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. - IPv6 ์ฑํ์ ์ฆ๊ฐํ๊ณ ์์ง๋ง ์ธํฐ๋ท ํธ๋ํฝ์ 15%๋ง ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ, IPv4 ์ฃผ์ ๊ณ ๊ฐ๋ก ์ธํด, ๋ ธ๋.js๋ IPv4 ๋๋ IPv6 ํฌํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋ณต์กํด์ก์ต๋๋ค. - DNS ์๋ฒ ๊ฒฐ๊ณผ๊ฐ IPv6๋ณด๋ค IPv4๋ฅผ ์ฐ์ ์ํ๋๋ก ์ฌ์ ๋ ฌ๋์ด, IPv6 ์ค์ ์ด ์๋ชป๋ ์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง, API ๋ชจ๋์ ํตํด ์ํํธ์จ์ด๊ฐ ํธ์คํธ์ ์ฐ๊ฒฐํ ๋ IPv4์ IPv6๋ฅผ ๋ชจ๋ ์๋ํ๋๋ก ์ง์ํ ์ ์์ด ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค. - IPv6์ ๋ค๊ฐ์ค๋ ๋ฆด๋ฆฌ์ค์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ ์ด์ ๋์์ผ๋ก ๋๋๋ฆฌ๋ ๋ช ๋ น ์ค ์ต์ ์ด ์์ต๋๋ค. - WG ์คํธ๋ฆผ์ 2๋ ๋์ ๊ฐ๋ฐ๋์ด ์ง๊ธ์ ๋ ธ๋ ์คํธ๋ฆผ๊ณผ ์์ ํ ์ํธ ์ด์ฉ์ฑ์ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ, ํ์ดํ๋ผ์ธ ์์ฑ ๋ฐ isDisturbed์ ๊ฐ์ ์ ํธ๋ฆฌํฐ ํจ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. - ์ฐ์ฌ๋ ์์ ์ ๋ฃจํด์ ์ฑ๊ณต๊ณผ ์ต๊ทผ ๋ช ๋ ๋์์ ์์ ์ง์ฒ์ ๋ํด ๋ ผ์ํ์ต๋๋ค. - ๐ ๋ ธ๋ ํ๋ก์ ํธ๋ ํ์ค API, ํ๋กํ ์ฝ ๊ตฌํ, ๋ก๋ ๊ฐ์ ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ํฅ์๊ณผ ํ๋ ฅ์ ํตํด ์งํ๋ฉ๋๋ค. - ๋ ธ๋ ํ๋ก์ ํธ๋ ๊ฐ์ธ์ ๋๊ธฐ์ ํ๋ ฅ์ ํตํด ์ฑ๊ณต์ ์ํ ์ค์ํ ๊ธฐ์ ์ ๋ฌธ์ ์ ์ดํด ๊ด๊ณ์๋ฅผ ํ์ ํ๊ณ ์งํํฉ๋๋ค. - ๋ฐ์ธ์๋ ํ์ค API์ ์ด์ ์ ๋ง์ถ๊ณ ๊ณตํต ์น API์ ์ฌ์ฉ์ ์ด์งํ์ฌ ํ๋ซํผ ๊ฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ฉฐ, ํ๋กํ ์ฝ ๊ตฌํ๊ณผ ์๋ฒ๋ฆฌ์ค ํจ์๋ฅผ ๋์ผํ ์๋ช ์ผ๋ก ์ฌ๋ฌ ํ๋ซํผ์์ ์คํํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ํ๊ตฌํ๊ณ ์์ต๋๋ค. - ๋ฐ์ธ์๋ ํ๋ซํฌ๋งคํฑ์ ๋ฐ์๊ฒ ์ฐธ์ฌํ๋ฉฐ ์งํ ์ํฉ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ ธ๋ ์ฝ์ด PR์ ๊ฒํ ํ๋ฉฐ, ์ปค๋ฎค๋ํฐ ์ฑ์ฅ๊ณผ ์๋์ฐ ๋ ๋ฆ์์ ์๋ก์ด ์์ ์ด ์งํ๋๋ ๊ฒ์ ์ด๊ดํ๊ณ ์์ต๋๋ค. - ๋ก๋๋ ESM๊ณผ CommonJS์ ๋ถ์ผ์น์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ํ๋ฉฐ, ๋ก๋์ ๋ํ ์ฌ์งํ ๋ ธ๋ ฅ์ด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. - ๋ค๊ฐ์ค๋ ์ด๋ฒคํธ๋ No Conf EU์ ์ ์ ์์ฒญ์ด ์ด๋ฆฌ๊ณ ๋ ธ๋ ์๋ฐ์ด ๋ถํ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ๊ถํ API๋ ๋ ธ๋ 19์์ ์คํ์ ์ผ๋ก ์ถ์๋์์ต๋๋ค. - ๋ฐ์ธ์๋ ์คํ ์์ค ํ๋ก์ ํธ์ ์ถ์ ์ ๊ทผ๋ฒ๊ณผ ํน์ ๊ธฐ๋ฅ์ ์คํ์ ์ํ์ ๋ํด ๋ ผ์ํ๋ฉฐ, ๊ธฐ์ฌ์์๊ฒ ๊ฐ์ฌ์ ์ธ์ฌ๋ฅผ ์ ํ๊ณ ํ๋ก์ ํธ์ ๋ค์ํ ํํ์ ๊ธฐ์ฌ๋ฅผ ์ฅ๋ คํฉ๋๋ค.