-
[Node.js] Node.js์ ์ ์์ ํน์ง๐ Node.js 2024. 10. 30. 15:40
โญ Node.js๋?
Node.js๋ ์๋ฒ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ JavaScript๋ก ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐํ์ ํ๊ฒฝ์ ๋๋ค.
๊ณต์ ํํ์ด์ง์์ ์ ์ํ๋ Node.js๋
"V8 JavaScript ์์ง์ผ๋ก ๋น๋ ๋ JavaScript ๋ฐํ์" ์ด๋ผ๊ณ ์ ์ํ์์ต๋๋ค.
์ด ๋ง์ ์ฆ, Node.js๊ฐ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์๋ JavaScript๋ฅผ ์คํํ ์ ์๊ฒ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก JavaScript๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ง ์คํ๋์ด ์น ํ์ด์ง์ ๋์์ ์ ์ดํ์ง๋ง,
Node.js๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ํ๊ฒฝ์์๋ JavaScript๊ฐ ์๋ฒ ์ญํ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
Node.js๊ฐ V8 ์์ง์ ์ฑํํ ์ด์ ๋ ์ด ์์ง์ด JavaScript ์ฝ๋๋ฅผ ์ง์ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ
์คํ ์๋๋ฅผ ๋น์ฝ์ ์ผ๋ก ๋์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
V8 ์์ง์ ๋ณธ๋ Chrome ๋ธ๋ผ์ฐ์ ๋ด์์ JavaScript์ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ๊ฒ์ผ๋ก,
Node.js๋ ์ด ์์ง์ ์๋ฒ ํ๊ฒฝ์ ํ์ฉํด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๋ฅผ ์ต๋ํ ๋์ด์ฌ๋ฆฌ๊ณ ๋น ๋ฅธ ์๋ต์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๋ฐ๋ผ์ V8 ์์ง ๋๋ถ์ Node.js๋ ์๋ฒ ์ฌ์ด๋์์ JavaScript๋ก ๋ค์ํ ์๋ฒ ์์ฒญ์ ๊ณ ์ฑ๋ฅ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ ๋ํ ๊ทธ๋ ๊ณ ๋ง์ ์ฌ๋๋ค์ด Node.js๋ฅผ ์ฒ์ ์ ํ์์ ๋๋, Node.js๋ฅผ ์ธ์ด๋ก ์คํดํ๊ธฐ๋ ํฉ๋๋ค.
๊ทธ ์ด์ ๋ ์ฃผ๋ก Node.js๊ฐ JavaScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ๋ฆฌํ์๋ฉด, Node.js๋ JavaScript ์ธ์ด๋ฅผ ์๋ฒ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ ๋ฐํ์ ํ๊ฒฝ์ด๋ฉฐ,
JavaScript๋ ์ฌ์ ํ Node.js ๋ด์์ ์ฌ์ฉ๋๋ ์ธ์ด์ ๋๋ค.
Node.js๋ ์ธ์ด๊ฐ ์๋, JavaScript์ ์๋ฒ ์ธก ์คํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋๊ตฌ์ด์ ํ๊ฒฝ์ ๋๋ค.
๋ฐํ์์ด๋?
JavaScript์ฝ๋๊ฐ ์ค์ ๋ก ์คํ๋๋ ํ๊ฒฝ์ ์๋ฏธํฉ๋๋ค. JavaScript๋ ์์ฒด์ ์ผ๋ก ์คํ์ด ์๋๋ฉฐ,
๋ฐํ์ ํ๊ฒฝ์ด ์์ด์ผ๋ง ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํ ์ ์์ต๋๋ค.
Node.js์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๐ก Node.js์ ์ฅ์
1. ๋น ๋ฅธ ์คํ
Node.js๋ Google์ V8 ์์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ JavaScript ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ์ฆ์ ๋ณํํฉ๋๋ค.
์ด ๋๋ถ์ ํ๋ก๊ทธ๋จ์ด ์ ์ํ๊ฒ ์คํ๋๋ฉฐ, ๋์ ์ฒ๋ฆฌ ์๋๋ฅผ ์๋ํฉ๋๋ค.
๊ทธ๋์ ์๋ฒ์์ ์์ฒญ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ ํฉํฉ๋๋ค.
2. ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ชจ๋ธ
Node.js๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ์ฌ, ๋น๋๊ธฐ์ ์ผ๋ก I/O ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ด๋ CPU๊ฐ ์์ ์ ๋๊ธฐํ๋ ์๊ฐ์ ์ต์ํํ๋ฉฐ, ์๋ง์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
3. ๋จ์ผ ์ธ์ด ์ฌ์ฉ
ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ๋ชจ๋์์ JavaScript๋ฅผ ์ฌ์ฉํ ์ ์์ด,
๊ฐ๋ฐ์๋ ํ๋์ ์ธ์ด๋ก ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
4. ํ๋ถํ ํจํค์ง ์ํ๊ณ
Node.js๋ npm์ด๋ผ๋ ๊ฐ๋ ฅํ ํจํค์ง ๊ด๋ฆฌ ์์คํ ์ ํตํด ์๋ง์ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋ชจ๋์ ์ฝ๊ฒ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ํ์ํ ๊ธฐ๋ฅ์ ์์ฝ๊ฒ ์ถ๊ฐํ์ฌ ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค.
npm์ด๋?
node package manager์ ์ค์๋ง๋ก Node.js์ ๊ธฐ๋ณธ ํจํค์ง ๊ด๋ฆฌ ์์คํ ์ ๋๋ค.
ํจํค์ง ์ค์น ๋ฐ ๊ด๋ฆฌ, ์์กด์ฑ ๊ด๋ฆฌ, ๊ณต์ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ ์ ์์ผ๋ฉฐ npm์ ์ฌ์ฉํ๋ฉด
Node.js ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ด ํจ์ฌ ๋ ์ฝ๊ณ ํจ์จ์ ์ด๊ฒ ๋ฉ๋๋ค.
5. ํ์ฅ์ฑ
Node.js๋ ์๋ง์ ๋์ ์ฐ๊ฒฐ์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด, ๊ณ ๊ฐ์ฉ์ฑ ์์คํ ์ ์ ํฉํฉ๋๋ค.
๋ํ, ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ง์ํ์ฌ ์ ์ฐํ ์์คํ ์ค๊ณ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๊ทธ๋ผ ๋ฐ๋๋ก ๋จ์ ์ ๋ํด์ ์ค๋ช ๋๋ฆฌ์๋ฉด...
๐ก Node.js์ ๋จ์
1. CPU ์ง์ฝ์ ์ธ ์์ ์ ํ๊ณ
Node.js๋ ์ฑ๊ธ ์ค๋ ๋๋ก ์๋ํ๊ธฐ ๋๋ฌธ์, CPU ์์์ ๋ง์ด ์๊ตฌํ๋ ์์ ์๋ ํจ์จ์ ์ด์ง ์์ต๋๋ค.
๋ณต์กํ ๊ณ์ฐ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ์ ์์ ์ ๋ค๋ฅธ ์ธ์ด์ ๋นํด ์ฑ๋ฅ ์ ํ๋ฅผ ๊ฒช์ ์ ์์ต๋๋ค.
2. ์ฝ๋ฐฑ ์ง์ฅ
๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์, ์ฝ๋ฐฑ ํจ์๊ฐ ์ค์ฒฉ๋ ๊ฒฝ์ฐ
์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ก ์ธํด ๋๋ฒ๊น ๊ณผ ์ ์ง ๋ณด์๊ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
3. ๋น๋๊ธฐ ์ฝ๋์ ๋ณต์ก์ฑ
๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ต์ํ์ง ์์ ๊ฐ๋ฐ์์๊ฒ๋ ์ด๊ธฐ ํ์ต ๊ณก์ ์ด ์์ ์ ์์ต๋๋ค.
ํนํ, ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ ์ํ๋ ๋ฐ ์๊ฐ์ด ํ์ํ ์ ์์ต๋๋ค.
4. ์ฑ์ํ์ง ์์ ํจํค์ง
npm์๋ ๋ค์ํ ํจํค์ง๊ฐ ์์ง๋ง, ๋ชจ๋ ํจํค์ง๊ฐ ๊ฒ์ฆ๋ ๊ฒ์ ์๋๋๋ค.
๋๋ก๋ ์ ๋ขฐํ ์ ์๋ ํจํค์ง๋ก ์ธํด ๋ณด์ ๋ฌธ์ ๋ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
5. ์๋ฌ ์ฒ๋ฆฌ์ ๋ณต์ก์ฑ
๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ ์ฝ๋์์๋ ์๋ฌ ์ฒ๋ฆฌ๊ฐ ๋ณต์กํด์ง ์ ์์ต๋๋ค.
์์ธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ์ ์ ํ๊ฒ ์๋ฌ๋ฅผ ํธ๋ค๋งํ์ง ์์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์์น ๋ชปํ ๋์์ ํ ์ ์์ต๋๋ค.
Node.js๋ ํน์ฑ๊ณผ ๊ธฐ๋ฅ์ ๋ฐํ์ผ๋ก ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์๋ ์์ฒญ๋ ์ธ๊ธฐ๋ฅผ ๋๊ณ ์๋ ๊ฒ์ ํ์คํฉ๋๋ค!
๋ค๋ง, ๊ฐ๋ฐ์ ์ ์ฅ์์๋ ํน์ ์ํฉ์์์ ํ๊ณ๊ฐ ์์์ ์ธ์ํ๋ ๊ฒ์ด ์ค์ํ๊ธฐ์ ๋จ์ ๋ ๊ฐ์ด ์ ์ด๋ณด์์ต๋๋ค
์งํํ๋ ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ์ ๋ง์ถฐ ์ ์ ํ ๊ธฐ์ ์คํ์ ์ ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ๋จผ์ ๋ผ๊ณ ์๊ฐ์ด ๋ค์์ต๋๋ค.
'๐ Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] Express๋? (์ ์ ๋ฐ ์ฌ์ฉ๋ฒ) (0) 2024.11.07 [Node.js] fs๋ชจ๋์ด๋?(์ฝ๊ธฐ, ์ฐ๊ธฐ, ์์ , ์ญ์ ) (0) 2024.08.29