Node.js์— ๋Œ€ํ•˜์—ฌ

2025. 3. 5. 18:24ยท๐Ÿ“‚ Computer Science

 

๐Ÿ“Œ Node.js๋ž€?

Node.js๋Š” Chrome V8 JavaScript ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ JavaScript ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค. ์ฆ‰, ์›๋ž˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ์‹คํ–‰๋˜๋˜ JavaScript๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ํ”Œ๋žซํผ์ด๋‹ค. Node.js๋Š” ๋ธŒ๋ผ์šฐ์ € ์—†์ด๋„ JavaScript๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋ฉฐ, ์ด๋กœ ์ธํ•ด JavaScript๋Š” ๋‹จ์ˆœํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ๋„˜์–ด, ์„œ๋ฒ„ ๊ฐœ๋ฐœ, API ๊ตฌ์ถ•, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, CLI ๋„๊ตฌ ๊ฐœ๋ฐœ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์šฉ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ™•์žฅ๋˜์—ˆ๋‹ค.

 

+ ์ถ”๊ฐ€ ์ง€์‹

๋Ÿฐํƒ€์ž„

 ~> ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ, ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ

 ~> ์˜ˆ๋ฅผ ๋“ค์–ด, Java๋Š” JVM(Java Virtual Machine), Python์€ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ, JavaScript๋Š” ๋ธŒ๋ผ์šฐ์ €

ํ„ฐ๋ฏธ๋„

 ~> ์‚ฌ์šฉ์ž๊ฐ€ ์šด์˜์ฒด์ œ(OS)์™€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค

 ~> ๋งˆ์šฐ์Šค ๋Œ€์‹  ํ‚ค๋ณด๋“œ๋กœ ๋ช…๋ น์–ด(Command)๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ปดํ“จํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ฐฝ

 ~> ํ„ฐ๋ฏธ๋„ ์ž์ฒด๋Š” ๋‹จ์ˆœํ•œ ์ž…๋ ฅ ์ฐฝ์ผ ๋ฟ์ด๊ณ , ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์€ ์‰˜(Shell)์ด ๋‹ด๋‹น

      (Windows์—์„œ๋Š” cmd๋‚˜ PowerShell, Linux์™€ macOS์—์„œ๋Š” bash, zsh ๊ฐ™์€ ์‰˜์ด ๋ช…๋ น์„ ์ฒ˜๋ฆฌ)

npm(Node Package Manager)

 ~> Node.js์˜ ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๊ด€๋ฆฌ ๋„๊ตฌ

 ~> Node.js์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

 

๐Ÿ“Œ Node.js์˜ ํŠน์ง•

1๏ธโƒฃ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ฐ Non-blocking I/O

 โœ… ์ผ๋ฐ˜์ ์ธ ์„œ๋ฒ„(์˜ˆ: PHP, Java Servlet)๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜์ง€๋งŒ,
 โœ… Node.js๋Š” Non-blocking I/O ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ธฐ ์—†์ด ๋‹ค์Œ ์ž‘์—…์„ ์‹คํ–‰ ๊ฐ€๋Šฅ

 ๐Ÿ“Œ ์žฅ์ 

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ → ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ

  • ๋น ๋ฅธ ์‘๋‹ต ์†๋„ → ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ ๊ฐ™์€ ์ž…์ถœ๋ ฅ(I/O) ์ž‘์—…์„ ์ตœ์ ํ™”

2๏ธโƒฃ Single-thread ๊ธฐ๋ฐ˜

 โœ… ์ผ๋ฐ˜์ ์ธ ์„œ๋ฒ„(์˜ˆ: Java, Python)๋Š” ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ,
 โœ… Node.js๋Š” Event Loop๋ฅผ ์‚ฌ์šฉํ•ด ํ•˜๋‚˜์˜ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋กœ ๋น„๋™๊ธฐ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ

 ๐Ÿ“Œ ์žฅ์ 

  • ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ๋„ ๋งŽ์€ ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ → ์„œ๋ฒ„ ๋น„์šฉ ์ ˆ๊ฐ

  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋ฐฉ์‹๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐ → ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ์—†์Œ

  • ํ•˜์ง€๋งŒ, CPU ์ž‘์—…์ด ๋งŽ์€ ๊ฒฝ์šฐ(์˜ˆ: ๋Œ€๊ทœ๋ชจ ์—ฐ์‚ฐ, ๋จธ์‹ ๋Ÿฌ๋‹ ๋“ฑ)์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ

3๏ธโƒฃ JavaScript ํ’€์Šคํƒ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

 โœ… ๊ธฐ์กด์—๋Š” ํด๋ผ์ด์–ธํŠธ(Frontend)๋Š” JavaScript, ์„œ๋ฒ„(Backend)๋Š” Java, Python ๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ,
 โœ… Node.js๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฑ์—”๋“œ๋„ JavaScript๋กœ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

 ๐Ÿ“Œ ์žฅ์ 

  • ๊ฐœ๋ฐœ ์†๋„ ์ฆ๊ฐ€ → ํ•˜๋‚˜์˜ ์–ธ์–ด(JavaScript)๋กœ ํ’€์Šคํƒ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ํ†ตํ•ฉ์ด ์‰ฌ์›€ → ๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ˜‘์—…์ด ์›ํ™œ

  • React, Vue, Angular ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ž˜ ๋งž์Œ → JSON ๊ธฐ๋ฐ˜ REST API ๊ฐœ๋ฐœ์ด ์šฉ์ด

4๏ธโƒฃ npm(Node Package Manager)

 โœ… Node.js๋Š” npm(Node Package Manager) ๋•๋ถ„์— ์ˆ˜๋งŽ์€ ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
 โœ… ํ”„๋ ˆ์ž„์›Œํฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ŠคํŠธ ๋„๊ตฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์„ค์น˜ & ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

 ๐Ÿ“Œ ์žฅ์ 

  • ๋น ๋ฅธ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ → ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ  ํŒจํ‚ค์ง€ ํ™œ์šฉ ๊ฐ€๋Šฅ

  • ํŒจํ‚ค์ง€ ์ž๋™ ์—…๋ฐ์ดํŠธ & ์˜์กด์„ฑ ๊ด€๋ฆฌ ์‰ฌ์›€ → package.json์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

  • ๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€ & ๋กœ์ปฌ ํŒจํ‚ค์ง€ ์ง€์› → ํ”„๋กœ์ ํŠธ ๋‹จ์œ„ ๋˜๋Š” ์‹œ์Šคํ…œ ์ „์ฒด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

+ ์ถœ์ฒ˜

https://velog.io/@fejigu/Node.js-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0%EC%A0%95%EC%9D%98%EB%A7%8C%EB%93%A0-%EC%9D%B4%EC%9C%A0-%EC%84%9C%EB%B2%84

 

'๐Ÿ“‚ Computer Science' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

NUnit์— ๋Œ€ํ•˜์—ฌ  (0) 2025.03.08
Rendering์— ๋Œ€ํ•˜์—ฌ  (0) 2025.03.07
Database์— ๋Œ€ํ•˜์—ฌ  (0) 2025.02.21
Ping, Jitter, Packet Loss์— ๋Œ€ํ•˜์—ฌ  (0) 2025.02.19
TCP์™€ UDP์— ๋Œ€ํ•˜์—ฌ  (0) 2025.02.19
'๐Ÿ“‚ Computer Science' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • NUnit์— ๋Œ€ํ•˜์—ฌ
  • Rendering์— ๋Œ€ํ•˜์—ฌ
  • Database์— ๋Œ€ํ•˜์—ฌ
  • Ping, Jitter, Packet Loss์— ๋Œ€ํ•˜์—ฌ
YeonSu02
YeonSu02
Email : rkddustn2519@naver.com
  • YeonSu02
    IsLiife2
    YeonSu02
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • ๐Ÿ“‚ Computer Science
      • ๐Ÿ“‚ Unity Engine Study
        • ๐Ÿ“„ Unity ์ธํ”„๋Ÿฐ ๊ฐ•์˜
        • ๐Ÿ“„ Unity ์œ ํŠœ๋ธŒ ๊ฐ•์˜
        • ๐Ÿ“„ Unity ์ฐธ๊ณ 
      • ๐Ÿ“‚ Game Designer Study
        • ๐Ÿ“„ ๊ธฐํš ์ธํ”„๋Ÿฐ ๊ฐ•์˜
      • ๐Ÿ“‚ Quality Assurance Study N
        • ๐Ÿ”ฅ ์—˜๋ฆฌ์Šค SW QAํŠธ๋ž™ N
        • ๐Ÿ“„ QA ๊ณต๋ถ€
        • ๐Ÿ“š QA ์ฑ… ๋ฆฌ๋ทฐ
      • ๐Ÿ“‚ Program Language Study
        • ๐Ÿ“„ C# ๊ณต๋ถ€
        • ๐Ÿ“„ ํŒŒ์ด์ฌ ๊ณต๋ถ€
        • ๐Ÿ“„ Java ๊ณต๋ถ€
        • ๐Ÿ“„ JavaScript ๊ณต๋ถ€
      • ๐Ÿ“‚ Additional Study
        • ๐Ÿ“„ Git
        • ๐Ÿ“„ Firebase
        • ๐Ÿ“„ License
      • ๐Ÿ’ป Game Development
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ
    ํ…Œ์ŠคํŒ…์ž๊ฒฉ์ฆ
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ
    QA
    BTS
    ์—‘์…€
    ISTQB
    ์ •์ฒ˜๊ธฐ ๋…ํ•™
    ๊ตญ์ œ์ž๊ฒฉ์ฆ
    qa์ž๊ฒฉ์ฆ
    ์ปดํ™œ
    istqb-ctfl
    qa ์ฑ…
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ1๊ธ‰
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ2๊ธ‰
    ์ •์ฒ˜๊ธฐ
    ์ •์ฒ˜๊ธฐ ํ•„๊ธฐ
    qa ์ฑ… ๋ฆฌ๋ทฐ
    ์ž๊ฒฉ์ฆ
    ์ปดํ™œ2๊ธ‰
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
YeonSu02
Node.js์— ๋Œ€ํ•˜์—ฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”