* 이 포스팅은 인프런 "Nodejs 교과서" 강의를 듣고 공부한 요약내용임
1. 핵심개념 이해하기
- 서버
노드는 자바스크립트 애플리케이션이 서버로서 기능하기 위한 도구를 제공함 - 자바스크립트 런타임
- 런타임 : 특정언어로 만든 프로그램을 실행할 수 있는 환경
- 노드의 내부구조
- 이벤트 기반
이벤트 발생 시 미리 지정해둔 작업을 수행
이벤트 리스너에 콜백 함수 등록
이벤트 루프 : 이벤트들이 동시에 발생 시 콜백함수들의 순서를 판단 - setTimeout
- 테스크 큐 : 이벤트 발생 후 호출되어야 할 콜백함수를 기다림
- 백그라운드 : 타이머나 I/O 작업 콜백 or 이벤트리스너가 대기
- 논블로킹 I/O
오래걸리는 함수는 백그라운드에 둠
논블로킹 : 이전작업의 끝을 기다리지 않고 다음작업을 수행함. I/O 작업이나 파일시스템 작업에 자주 사용함 - 싱글스레드
2. 서버로서의 노드
싱글스레드이므로 CPU 코어 1개 사용이 가능하며 자원 사용이 적음.
I/O가 많은 작업에 적합하고 CPU 연산에는 부적합
에러관리가 중요하고 웹서버에 내장되어 사용되며 API, JSON 서버에 유용 (+템플릿 엔진)
3. 서버외의 노드
웹 프레임워크에 사용됨 : Angular, React, Vue, Meteor
사진출처 :
https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf
'Javascript > Node.js' 카테고리의 다른 글
[ Nodejs교과서 ] 2. 알아두어야 할 자바스크립트 (0) | 2021.07.30 |
---|---|
[ Javascript ] Node.js 핵심 개념 (0) | 2021.07.30 |