Javascript/Node.js

[ Nodejs교과서 ] 1. 노드 시작하기

noahkim_ 2021. 7. 30. 11:39

* 이 포스팅은 인프런 "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

 

How JavaScript works: an overview of the engine, the runtime, and the call stack

As JavaScript is getting more and more popular, teams are leveraging its support on many levels in their stack - front-end, back-end…

blog.sessionstack.com

https://velog.io/@enskawk1991/node