[개념정리] Node.js란?

seovee·2023년 8월 2일
0

🗂️ 개념정리

목록 보기
5/9
post-thumbnail

어디서든 자주 접하는 개념이지만,
항상 느낌으로만 "아 그거....?"하고 넘어갔던 Node.js가 뭔지 정확히 알아보았다.

✔ Node.js

사전적 정의로는 확장성 있는 네트워크 애플리케이션개발에 사용되는 소프트웨어 플랫폼.
즉, 노드를 통해 다양한 자바스크립트 애플리케이션을 실행하고, 서버를 실행하는데 제일 많이 사용된다.


✔ 탄생배경

JavaScript는 HTML을 조작할 수 있는 작은 기능이었다. 그런데 크롬에서 JavaScript 구동 엔진인 V8을 만들었고, 성능이 뛰어나서브라우저뿐만 아니라 로컬 PC에로 독립시켜 실행시켜줄 수 있는 실행창(런타임)을 만든 것이 Node.js. 이후 많은 개발자들이 Node.js로 여러가지 PC프로그램들을 만들었다.


✔ 특징

JavaScript기반의 프로그래밍 언어로써,
Node.js를 설치하면 터미널 프로그램에서 브라우저 없이 실행 가능

✓ 장점

  • 서버 만드는 것이 매우 쉽다.
  • 싱글스레드로 멀티스레드 방식에 비해 적은 컴퓨터 자원을 사용
  • 논 블로킹 I/O방식이라 I/O 작업이 많은 서버로 적합
  • 웹 서버 내장
  • JSON 형식과 쉬운 호환
  • 네트워크, 데이터베이스, 디스크, 실시간 채팅, 주식차트 등의 작업에 특화(개수는 많지만 크기가 작은 데이터 처리)

✓ 단점

  • 싱글스레드이므로 CPU 부하가 큰 작업은 부적합

✔ 런타임 환경(Runtime environment)

✓ JavaScript 코드를 실행할 수 있는 소프트웨어
✓ Node.js를 알기 위해서는 런타임 환경에 대해서 알고가면 좋다!

  • 컴퓨터가 회사라면, 자바스크립트란 언어를 구사하는 직원
  • 대표적으로 브라우저와 Node.js를 말한다.
  • console 등은 JavaScript 런타임 환경의 기능

✔ 참고 / 용어정리

📌 Node.js - 코딩애플
📌 Node.js - Hanamon님 블로그
📌 JavaScript 런타임 - Hanamon님 블로그

* 런타임(Runtime): 특정 언어로 만든 프로그램을 실행할 수 있는 환경
* 노드(Node): 간단히 말하자면 컴퓨터 네트워크를 구성하는 기기 1개를 의미
* 싱글스레드: 사전적 의미는 한 가닥의 실, 하나의 프로그램에서 동시에 하나의 코드만 실행 가능함
* 논 블로킹 I/O: I/O작업이 완료될 때까지 중단하지 않고, I/O호출에 대해 즉시 리턴하는 것
* I/O: 입력/출력을 뜻함
profile
낭만이 빠지면 섭하지

0개의 댓글