Node.js๋ ๊ฐ๋ฐ์๊ฐ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ธก ๋ฐ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋ ์คํ ์์ค ๊ต์ฐจ ํ๋ซํผ ๋ฐํ์ ํ๊ฒฝ์ ๋๋ค. ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๋๊ธฐ ์๊ฐ์ด ์งง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Node.js๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋ ธ์ฝ๋ ํ๋ซํผ์ธ AppMaster ์์ ์ง์ํ๋ ํ๋ก์ ํธ๋ฅผ ํฌํจํ์ฌ ์๋ง์ ์น ๊ฐ๋ฐ ํ๋ก์ ํธ์ ํ์ ์์๊ฐ ๋์์ต๋๋ค.
2009๋ Ryan Dahl์ด ์์ํ Node.js๋ ์ฒ์์ Google Chrome์ V8 JavaScript ์์ง ์์ ๊ตฌ์ถ๋์์ต๋๋ค. ์ค๋๋ ํ์ ๋ฐฑ์๋ ๊ฐ๋ฐ ๋๊ตฌ๋ก ์๋ฆฌ ์ก๊ณ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋์ ๋จ์ผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ JavaScript๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฌ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค. ๋น๋๊ธฐ์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น์ฐจ๋จ ํ๊ฒฝ์ธ Node.js๋ ์ฌ๋ฌ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
Node.js๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ๋๊ตฌ๋ฅผ ํ์ฉํฉ๋๋ค. ์ด ์ค์์ npm์ผ๋ก ์๋ ค์ง ํจํค์ง ๊ด๋ฆฌ์์๋ 2021๋ 10์ ํ์ฌ 130๋ง ๊ฐ๊ฐ ๋๋ ๋ฐฉ๋ํ ํจํค์ง ๋ฐ ๋ชจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ๊ด๋ฒ์ํ ์ปฌ๋ ์ ์ ํตํด ๊ฐ๋ฐ์๋ ์ฌ์ ๊ตฌ์ถ๋ ๊ตฌ์ฑ ์์์ ์ก์ธ์คํ๊ณ ์ด๋ฅผ ํ์ฉํ์ฌ ์์ ์ ๊ฐ์ํํ๊ณ ์ ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ Node.js๋ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ต์ํํ๋ฉด์ ์ฌ๋ฌ ๋์ ์์ ์ ๊ด๋ฆฌํ๋ ํจ์จ์ ์ธ ๋จ์ผ ์ค๋ ๋ ์ํคํ ์ฒ๋ก ๋๋๋ฌ์ง๋๋ค. ๋ฐ๋ผ์ ์ค์๊ฐ ํ์ ๋๊ตฌ, ์จ๋ผ์ธ ๊ฒ์ ํ๋ซํผ, ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ฝํ ์ธ ๊ณต์ ์น์ฌ์ดํธ์ ๊ฐ์ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๋ฐ ํนํ ์ ํฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด Netflix, Walmart, LinkedIn ๋ฐ Uber์ ๊ฐ์ ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ ๋ฐฑ์๋ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํด Node.js๋ฅผ ์ฑํํ์ต๋๋ค.
๋ฐํ์ ํ๊ฒฝ์ผ๋ก์ Node.js๋ AppMasterno-code ํ๋ซํผ๊ณผ ์๋ฒฝํ๊ฒ ํธํ๋๋ฏ๋ก ๊ณ ๊ฐ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ฑํ๊ณ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์๊ฐ์ ์ผ๋ก ๋์์ธํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๋์ง ๊ด๊ณ๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ ์๊ฐ์ ์ต๋ 10๋ฐฐ ๋จ์ถํ๊ณ ๋น์ฉ์ ์ต์ 3๋ฐฐ ์ ๊ฐํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ต์ ํํ ์ ์์ต๋๋ค.
Node.js๋ AppMaster ์ ํธํ๋๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ Postgresql๊ณผ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํํ ํตํฉ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ๋ํ AppMaster์์ ์์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์์ ํ๋ฉด ์ฒญ์ฌ์ง์ ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋ก์ด ์ต์ ์๋ฃจ์ ์ด ๋ง๋ค์ด์ง๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ์ ๋ถ์ฑ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ์์ฑ, ์ปดํ์ผ ๋ฐ ์คํํ ์ ์์ต๋๋ค.
ํฌ๊ด์ ์ด๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํ Node.js ํ๊ฒฝ์ HTTP, WebSockets ๋ฐ TCP ์ฐ๊ฒฐ๊ณผ ๊ฐ์ ๋ค์ํ ํต์ ํ๋กํ ์ฝ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ์ ์ฐ์ฑ ๋๋ถ์ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ํ RESTful API๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์ด์์ ์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก AppMaster ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํด Node.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ฐ๋ ฅํ๊ณ ์์ ํ๋ฉฐ ์ ๋ฌธ์ํ๋ API๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
Node.js๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ ๋ํ IBM, Microsoft ๋ฐ Intel๊ณผ ๊ฐ์ ๊ฑฐ๋ ๊ธฐ์ ๊ธฐ์ ์ ๊ธฐ์ฌ๋ฅผ ํฌํจํ์ฌ ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ ์ํ๊ณ์ ํํ์ ๋ฐ์ต๋๋ค. ์ด ๋ฒ์ฑํ๋ ์ปค๋ฎค๋ํฐ๋ Node.js๊ฐ ๊ด๋ จ์ฑ ์๊ณ ์ต์ ์ด๋ฉฐ ๊ฐ๋ ฅํ ์ํ๋ฅผ ์ ์งํ๋๋ก ๋ณด์ฅํ์ฌ ๊ฐ๋ฐ์์๊ฒ ํ์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ํ์ํ ๋๊ตฌ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ํ Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ด๋ ํ์ฅ์ฑ์ ์๋ํ๋ฉฐ AWS, Microsoft Azure ๋ฐ Google Cloud Platform๊ณผ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ๊ณผ ํธํ๋๋ฏ๋ก ๊ธฐ์ ์ด ์ ํธํ๋ ํธ์คํ ์๋ฃจ์ ์ ๋ง์ถฐ ์กฐ์ ํ๊ณ ๋ค์ํ ์ํฌ๋ก๋์ ํจ์จ์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด ํ์ฅ์ฑ ์ฉ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋นํ ์ฑ๋ฅ ์ ํ ์์ด ์ฆ๊ฐํ๋ ํธ๋ํฝ๊ณผ ์์๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ณด์ฅํ๋ฏ๋ก ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ํนํ ์ ์ฉํฉ๋๋ค.
Node.js๋ ๋ฐฑ์๋ ๊ฐ๋ฐ ๊ธฐ์ ์ ์คํํธ๋ผ์์ ์ค์ํ ๊ตฌ์ฑ ์์๋ก, ์๋ฒ ์ธก ๋ฐ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ JavaScript ๊ตฌํ์ ์ต์ ํํ๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ๋ฐํ์ ํ๊ฒฝ์ ๊ฐ๋ฐ์์๊ฒ ์ ๊ณตํฉ๋๋ค. AppMaster ์ ํ๋ซํผ๊ณผ์ ํธํ์ฑ ๋ฐ ํตํฉ์ ๊ณ ๊ฐ์๊ฒ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๊ณ ๋น ๋ฅธ ์๋๋ก ๊ตฌ์ถํ ์ ์๋ ๊ณ ๊ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๊ธฐ์ ์ด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ๋น์ฉ์ ์ต์ํํ๋ฉฐ ์์ฐ์ฑ์ ๊ทน๋ํํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.