-
NodeJs란프로그래밍/Node 2021. 5. 14. 00:44
1. NodeJs란?
- 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경이다
- 클라이언트 외부에서 웹 애플리케이션을 실행하기 위한 오픈소스, *크로스 플랫폼이다.
- Node.js는 비동기 식 이벤트 중심 모델을 사용하므로 *데이터 집약적인 애플리케이션에 적합하다.
2. NodeJs의 장점
- 일반적으로 빠르다.
- 통합된 프로그래밍 언어 데이터 유형을 제공한다.(javascript 기반)
- 모든 것이 비동기 적이다.
- 좋은 동시성을 생성한다.
3. 작동 방식
1. 클라이언트는 웹 응용 프로그램과 상호 작용하기 위해 웹 서버에 요청을 보낸다. 요청은 Non-Blocking 또는 Blocking 일 수 있다.
2. Node.js는 들어오는 요청을 검색하여 이벤트 큐에 추가할 수 있다.
3. 요청은 이벤트 루프를 통해 하나씩 전달된다. 외부리소스가 필요한지 확인한다.
4. 이벤트 루프는 I / O 폴링과 같은 간단한 요청 (*Non-Blocking)을 처리하고 해당 클라이언트에 응답을 반환한다.
5. 스레드 풀의 단일 스레드는 computation, database, file system 등과 같은 외부 리소스에 액세스하여 특정 blocking 요청을 완료한다.
6. 작업이 완전히 수행되면 해당 응답을 클라이언트로 다시 보내는 이벤트 루프로 응답이 전송된다.
*크로스 플랫폼 : 컴퓨터 프로그램, 운영체제, 컴퓨터 언어, 프로그래밍 언어, 컴퓨터 소프트웨어등이 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어.
* 데이터 집약적인 애플리케이션 : 대부분의 처리 시간을 I / O 및 데이터 조작에 사용하는 컴퓨팅 응용 프로그램을 의미한다. 사전적인 의미는 이러하지만 무슨 말인지 정확히 이해하지 못했다.
* Non-Blocking 요청: 요청으로 애플리케이션이 일시 중지 또는 절전 모드가 되지 않는다. 다른 요청을 동시에 처리하도록 도와준다.
* 참고 사이트
https://www.simplilearn.com/tutorials/nodejs-tutorial/nodejs-interview-questions
https://flatlogic.com/blog/14-best-node-js-open-source-projects/#five
'프로그래밍 > Node' 카테고리의 다른 글
Blocking vs Non-Blocking (0) 2021.07.20 이벤트 루프? (0) 2021.07.04 Node.js - 비동기 중심 모델 (0) 2021.06.26 Node-passport (0) 2021.03.10