Node.js - Introduction

2016. 7. 20. 10:31ยทServer/Node.js

What is Node.js?

Node.js๋Š” ๊ตฌ๊ธ€ ํฌ๋กฌ์˜ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—”์ง„ (V8 ์—”์ง„) ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„ ์ธก ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. 2009๋…„ Ryan Dahl ์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ์ตœ์‹  ๋ฒ„์ „ v0.10.36 ์ž…๋‹ˆ๋‹ค.(2016๋…„07์›”20์ผ ๊ธฐ์ค€ LTS 4.4.7 ๋ฒ„์ „์ด ๊ฐ€์žฅ ์ตœ์‹ ์ž…๋‹ˆ๋‹ค.) ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” documentation์— ์˜ํ•˜๋ฉด - 

Node.js๋Š” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํฌ๋กฌ์˜ Chrome's JavaScript runtime(V8์—”์ง„)์œผ๋กœ ๊ตฌ์ถ• ๋œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ๋””๋ฐ”์ด์Šค๋ฅผ ๊ฐ€๋ณ๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ event-driven, non-blocking I/O๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

Node.js๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ฐœ๋ฐœ ๋ฐ ๋„คํŠธ์›Œํ‚น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค , ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ ํ•˜๊ณ , OS X, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ Windows, Linux์—์„œ ๋Ÿฐํƒ€์ž„ ๋‚ด์—์„œ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Node.js = Runtime Environment + JavaScript Library

Features of Node.js

๋‹ค์Œ๊ณผ ๊ฐ™์€ Node.js๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…ํŠธ์˜ ์ฃผ์š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Asynchronous and Event Driven Node.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ชจ๋“  API๋Š” non-blocking ๋น„๋™๊ธฐ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. Node.js ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„๋Š” ๋ฆฌํ„ด๋˜๋Š” API ๋ฐ์ดํ„ฐ์˜ ๋Œ€๊ธฐ๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.(๋น„๋™๊ธฐ์— ๋Œ€ํ•œ ์žฅ์ ) ์„œ๋ฒ„ ๊ตฌ๋™ ์ค‘์— API ์š”์ฒญ์„ ๋ฐ›๊ธฐ ์ „์— Node.js๊ฐ€ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋•์Šต๋‹ˆ๋‹ค.

  • Very Fast ๊ตฌ๊ธ€ ํฌ๋กฌ V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ Node.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฝ”๋“œ ์‹คํ–‰์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.

  • Single Threaded but Highly Scalable - event looping๋ฅผ ํ™œ์šฉํ•œ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜ non-blocking ๋ฐฉ์‹์œผ๋กœ ์‘๋‹ตํ•˜๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ œํ•œ๋œ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด ์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ ํ™•์žฅ ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹จ์ผ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋žจ ์•„ํŒŒ์น˜ HTTP ์„œ๋ฒ„ ์™€ ๊ฐ™์€ ๊ธฐ์กด์˜ ์„œ๋ฒ„ ์š”์ฒญ ๋ณด๋‹ค ๋” ๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.  

  • No Buffering - Node.js applications์€ ๋ฒ„ํผ๋ง์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ญ‰์ณ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

  • License - Node.js is released under the MIT license.

Who Uses Node.js?

Following is the link on github wiki containing an exhaustive list of projects, application and companies which are using Node.js. This list includes eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo!, and Yammer to name a few.

  • Projects, Applications, and Companies Using Node

Concepts

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ Node.js์˜ ์ฃผ์š” ๋ถ€๋ถ„๋“ค ์ž…๋‹ˆ๋‹ค.. ๋‹ค์Œ ์žฅ์—์„œ ์ž์„ธํžˆ ๋…ผ์˜ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Node.js Concepts

Where to Use Node.js?

Node.js๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • I/O bound Applications

  • Data Streaming Applications

  • Data Intensive Real time Applications (DIRT)

  • JSON APIs based Applications

  • Single Page Applications

Where Not to Use Node.js?

CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” Node.js๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : TutorialsPoint

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'Server/Node.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Yarn ์ด๋ž€?
  • yarn ๋ช…๋ น์–ด๊ฐ€ ์œˆ๋„์šฐ์—์„œ ์•ˆ๋ ๋•Œ
  • Next.js ์„ค์น˜ ๋ฐฉ๋ฒ•
  • Node.js ํŠœํ† ๋ฆฌ์–ผ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ํ€˜์ŠคํŠธ
    ๋‰ด์Šค
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ํƒœ๊ตญ
    ๋ธŒ๋ฆฌํ•‘
    ์˜ค๋Š˜์˜๋‰ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
Node.js - Introduction
์ƒ๋‹จ์œผ๋กœ

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