๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Node.js๋ž€?

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2023. 11. 27.

1. Node.js 

Node.js๋Š” Chrome V8 JavaScript ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ JavaScript ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค.
-Node.js๋Š” ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

 

๋Ÿฐํƒ€์ž„์€ ํŠน์ • ์–ธ์–ด๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋œปํ•œ๋‹ค.

์šฐ์„ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ๋Š” ์–ธ์–ด๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML์— ์ข…์†๋˜์–ด์žˆ๋Š” ์–ธ์–ด์ด๋‹ค. HTML ์กฐ์ž‘๊ณผ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

 

*HTML์€ ์›นํŽ˜์ด์ง€์— ๊ธ€์“ฐ๊ณ  ๊ทธ๋ฆผ ๋„ฃ๋Š” ์–ธ์–ด์ด๋‹ค. (์•ˆ ์›€์ง์ž„, ๊ธ€ ๋„ฃ๊ณ  ๊ทธ๋ฆผ ๋„ฃ๊ณ  ๋)

 

์ •์  ์–ธ์–ด์ธ HTML์„ ์กฐ์ž‘ํ•ด์„œ ์›นํŽ˜์ด์ง€๋ฅผ ๋‹ค์ด๋‚˜๋ฏนํ•˜๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š”๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ด๋‹ค.

 

=================================================

 

HTML์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์กฐ์ž‘ํ•œ๋‹ค๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ด์„์€ ๋ˆ„๊ฐ€ํ•˜๋‚˜ ?

 

๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ € ์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ด์„ ์—”์ง„์ด ์žˆ๋‹ค.(๋ธŒ๋ผ์šฐ์ €์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์“ฐ๋Š” ์—”์ง„์ด ๋‹ค๋ฅด๋‹ค.) ๋”ฐ๋ผ์„œ ๊ธฐ์กด์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € ์œ„์—์„œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜, 2008๋…„ ๊ตฌ๊ธ€์ด V8 ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๋กฌ์„ ์ถœ์‹œํ–ˆ๋‹ค. V8 ์—”์ง„์€ ์—„์ฒญ ๋น ๋ฅด๊ณ , ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ฝ”๋“œ๋„ ๊ณต๊ฐœ๋˜์—ˆ๋‹ค. V8 ์—”์ง„์ด ๋„ˆ๋ฌด ๋›ฐ์–ด๋‚˜์„œ ๊ธฐ๋Šฅ์„ ์ข€ ๋” ๋”ํ•ด V8 ์—”์ง„ ๊ธฐ๋ฐ˜์— ๋…ธ๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ , Node.js(V8)์ด ๋“ฑ์žฅํ–ˆ๋‹ค. Node.js๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.

 

๋”ฐ๋ผ์„œ Node.js๋Š” JavaScript ์‹คํ–‰ ํ™˜๊ฒฝ(=๋Ÿฐํƒ€์ž„) ์ด๋‹ค.

 

Node.js๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ‚ค์ง€ ์•Š์•„๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Node.js๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์‰ฝ๊ฒŒ ์‹คํ–‰์‹œ์ผœ์คฌ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

Node.js๋ฅผ ์„ค์น˜ํ•˜๋ฉด  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ‚ค์ง€ ์•Š์•„๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

 

  1. Node.js ํ™ˆํŽ˜์ด์ง€์—์„œ ์„ค์น˜ ํ›„
  2. Windows ๊ฒ€์ƒ‰์ฐฝ์— cmd๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ด์–ด๋ด…์‹œ๋‹ค.
  3. ์„ค์น˜๊ฐ€ ์ œ๋Œ€๋กœ ๋๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋ ค๋ฉด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์— node -v ๋ฅผ ์ž…๋ ฅ ํ›„ ๋ฒ„์ „์ด ์ œ๋Œ€๋กœ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜ ํ™•์ธ์ด ๋๋‚ฌ์œผ๋ฉด node๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด node ์ž…๋ ฅํ•œ ํ›„
  5. console.log('ํ—ฌ๋กœ') ๋ฅผ ์ ์–ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

 

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Node๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ ๋‹ค.

 

Node.js๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ์ด์œ 

์ผ๋ฐ˜์ ์ธ ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํŠน์ • ์š”์ฒญ์ด ๋งŽ์œผ๋ฉด ๋’ค์— ์žˆ๋Š” ์š”์ฒญ์€ ๊ทธ๋™์•ˆ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ Node.js๋Š”

๋ชจ๋“  ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅธ ๊ฒƒ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ๋‹ค ์ค€๋‹ค. ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅธ ๊ฒƒ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๊ฒŒ Node.js์˜ Non-blocking I/O์˜ ๊ฐœ๋…์ด๋‹ค.

 

Node.js์˜ ๊ฐ•์ 

SNS๋‚˜ ์ฑ„ํŒ…์„œ๋น„์Šค์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Ÿฐ ์„œ๋น„์Šค๋“ค์˜ ํŠน์ง•์€ ์š”์ฒญ์ด ๋งค์šฐ ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ผ๋ฐ˜ ์„œ๋ฒ„๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์š”์ฒญ์ด ๋งŽ๊ฑฐ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋•Œ Node.js ์„œ๋ฒ„๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์š”์ฒญ์ด ๋งŽ๊ฑฐ๋‚˜ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ์š”์ฒญ์ด ์žˆ์–ด๋„ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ์š”์ฒญ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฐ Non-blocking ๋•๋ถ„์— ์ฑ„ํŒ…์ด๋‚˜ SNS์— ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

 

์ด์™ธ์—๋„ ๊ฐœ์ˆ˜๋Š” ๋งŽ์ง€๋งŒ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„ ์ฃผ๊ณ  ๋ฐ›๋Š” ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์— ์‚ฌ์šฉ๋œ๋‹ค.

 

์ด๋ฏธ ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์˜ ๋ฌธ์ œ๋„ ์ถฉ๋ถ„ํžˆ ๊ฒ€์ฆ๋˜์—ˆ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ํฐ ์—์–ด๋น„์—”๋น„, ๋„ทํ”Œ๋ฆญ์Šค, ๋งํฌ๋“œ์ธ ๋“ฑ์—์„œ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ํŽ˜์ดํŒ”์ด๋‚˜ ์›”๋งˆํŠธ ๊ฐ™์ด ๊ฒฐ์ œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๊ธฐ์—…์—์„œ๋„ ๋…ธ๋“œ๋กœ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค.

 

Node.js์˜ ๋‹จ์ 

Node.js๋Š” ๋ชจ๋‘ ์Šค๋ ˆ๋“œ ํ•˜๋‚˜์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค. ์ฝ”๋“œ๊ฐ€ CPU ์—ฐ์‚ฐ์„ ๋งŽ์ด ์š”๊ตฌํ•˜๋ฉด ์Šค๋ ˆ๋“œ ํ•˜๋‚˜๊ฐ€ ๊ฐ๋‹นํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๋‚˜ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ™์ด CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์„ ์œ„ํ•œ ์„œ๋ฒ„๋กœ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฐ ๋ถ€๋ถ„์—์„œ ๋…ธ๋“œ๋ณด๋‹ค ๋” ์ ํ•ฉํ•œ ์–ธ์–ด ์—ญ์‹œ ์กด์žฌํ•œ๋‹ค.

๋Œ“๊ธ€