210313 개발일지(96일차) - Node.js 정의와 특징

고재개발·2021년 3월 14일
0

Node.js Study

목록 보기
1/3

Node.js의 정의

Server의 역할도 수행할 수 있는 자바스크립트 런타임(실행기)

* Node.js는 서버가 아니다 ! 그러나 js로 쓰여진 서버로 작동할 수 있는 소스코드를 실행시켜서 서버를 만들어 줌

  • Node.js로 js로 작성된 서버를 실행할 수 있음
  • 서버 실행을 위해 필요한 http/https/http2 등의 모듈을 제공
  • 원래 js는 html에 종속됐지만, Node.js가 이를 해방시켜 줌

Node.js 내부구조

Node.js의 특징

1. 이벤트 기반(많은 프로그램에서 채택하는 방식)

어떤 이벤트가 발생할 때, 미리 지정해둔 작업을 수행하는 방식
ex) 'A'버튼을 클릭하면 'Hello'를 출력해!
- 이벤트 리스너 : 이벤트를 등록하는 함수
- 콜백 함수 : 이벤트가 발생했을 때, 실행되는 함수

2. 논블로킹 I/O

쉽게 말해, 작업1이 끝나지 않아도 작업2가 실행될 수 있다.

3. 싱글 스레드

Node.js는 원래 멀티스레드다. 그 중에 직접 제어할 수 있는 게 1개일 뿐이라서 싱글 스레드가 특징이라고 표현한다. (Node.js ver.14 이후 부터는 멀티 스레드를 지원한다고 한다.)

아래 그림은 논블로킹I/O와 싱글 스레드를 표현한다.
주문이 밀려들어오면 주문을 받고, 순서대로 고객들에게 서빙을 한다.

profile
고재개발

0개의 댓글