์ฃผ์
- ์ฆ์์์ ๋๋ ํน์ ์ด๋ฒคํธ ๋ฐ์ ์ ์์ฑ๋๋ ๊ธฐ๋ฅ์ด ์์ ํ๋์์ต๋๋ค.
์ง๋จ ๋ณด๊ณ ์ , ์ถฉ๋, ์ฑ๋ฅ ์ ํ, ๋ฉ๋ชจ๋ฆฌ ๋์, ๊ณผ๋ํ CPU ๋ก๋, ์์์น ๋ชปํ ์ค๋ฅ ์ถ๋ ฅ ๋ฑ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋์์ด ๋๋ ์ด๋ฒคํธ๋ฅผ ํ์ํฉ๋๋ค. - ์คํ์ API ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
๋น๋๊ธฐ ๋ก์ปฌ ์ ์ฅ์ ์ฝ๋ฐฑ ํธ์ถ ๋ฐ ์ฝ์์ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ์ํ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ AsyncLocalStorage ํด๋์ค์ ๊ตฌํ์ ์ฌ์ฉํฉ๋๋ค. AsyncLocalStorage๋ฅผ ์ฌ์ฉํ๋ฉด ์น ์์ฒญ์ด ์ฒ๋ฆฌ๋๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด๋ ๋ค๋ฅธ ์ธ์ด์ ์ค๋ ๋ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์ฐ์์ํต๋๋ค. - ๋ก๋ ์ ์คํ์ ๊ธฐ๋ฅ์ ๋ํ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค.
๋ชจ๋๋ค ECMAScript 6 ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๊ณ ๋ด๋ณด๋์ต๋๋ค. ๋์์ ESM ๋ชจ๋ ์์ฒด์ ๊ตฌํ์ ์ฌ์ ํ โโ์คํ์ ์ ๋๋ค. - V8 ์์ง์ด ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค.
8.1 (1 ,2 ,3 )์๋ ์๋ก์ด ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ ์ฐ์ฐ์ "??"์ ๊ฐ์ ์๋ก์ด ์ฑ๋ฅ ์ต์ ํ ๋ฐ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. (์ผ์ชฝ ํผ์ฐ์ฐ์๊ฐ NULL์ด๊ฑฐ๋ ์ ์๋์ง ์์ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง), "?." ์ฐ์ฐ์ ์ ์ฒด ์์ฑ ๋๋ ํธ์ถ ์ฒด์ธ(์: ์ฌ์ ํ์ธ ์์ด "db?.user?.name?.length")์ ๋ํ ์ผํ์ฑ ํ์ธ, ์ง์ญํ๋ ์ด๋ฆ์ ์ป๊ธฐ ์ํ Intl.DisplayName ๋ฉ์๋ ๋ฑ - Streams API์ ์ผ๊ด์ฑ์ ๊ฐ์ ํ๊ณ Node.js ๊ธฐ๋ณธ ๋ถ๋ถ์ ๋์ ์ฐจ์ด๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋ชฉํ๋ก Streams API ๊ฐ์ ์ด ์ํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด http.OutgoingMessage์ ๋์์ stream.Writable์ ๊ฐ๊น๊ณ net.Socket์ stream.Duplex์ ์ ์ฌํฉ๋๋ค. autoDestroy ์ต์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก "true"๋ก ์ค์ ๋ฉ๋๋ค. ์ด๋ ์๋ฃ ์ "_destroy"๋ฅผ ํธ์ถํ๋ค๋ ์๋ฏธ์ ๋๋ค.
- ์คํ์ API ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
๋ด๊ฐ ๊ทธ๋ฌ๋ (์น์ด์ ๋ธ๋ฆฌ ์์คํ ์ธํฐํ์ด์ค ), ์ด์ ์ฒด์ ์์ ์ง์ ์ ์ธ ์ํธ ์์ฉ์ ์ํ ์ํํธ์จ์ด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค(ํ์ผ, ์์ผ ๋ฑ ์์ ์ ์ํ POSIX API). - ์๊ตฌ์ฌํญ ์ฆ๊ฐ
์ต์ ๋ฒ์ ์ปดํ์ผ๋ฌ ๋ฐ ํ๋ซํผ: macOS 10.13(High Sierra), GCC 6,Windows ์ต์ 7/2008R2 .
Node.js ํ๋ซํผ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ฒ์ธก ์ง์๊ณผ ์ผ๋ฐ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ ์์ฑ์ ๋ชจ๋ ์ฌ์ฉ๋ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํด ๋ด
์๋ค. Node.js์ฉ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ธฐ ์ํด ์๋ง์
๋ง์ ์์ ๋ณ๋ ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Node.js๋ ๋น์ฐจ๋จ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐ ์ฝ๋ฐฑ ํธ๋ค๋ฌ ์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋น๋๊ธฐ ์ฝ๋ ์คํ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ๋ฉํฐํ๋ ์ฑ ์ฐ๊ฒฐ์ ์ง์๋๋ ๋ฐฉ๋ฒ์๋ epoll, kqueue, /dev/poll ๋ฐ select๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฐ๊ฒฐ์ ๋ค์คํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Node.js์ ํต์ฌ์ ํ๋ ์์ํฌ์ ์ ์ฌํฉ๋๋ค.
์ถ์ฒ : opennet.ru