Node.js 요약1

이정규 (가지마)·2023년 6월 3일
0
  1. 노드의 정의
    Node.js는 크롬 V8자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다.
    노드는 서버가 아니다.(노드가 서버의 역할을 수행할 수 있음.)

노드: 자바스크립트 런타임

노드:자바스크립트로 만든 프로그램을 실행할 수 있게 해줌

libuv : 노드의 특성인 이벤트 기반, 논블로킹(I/O모델을 구현한 라이브러리)

서버: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
클라이언트: 서버에 요청을 보내는 주체(브라우저,데스크탑프로그램,모바일 앱,다른 서버에 요청을 보내는 서버)

클라이언트 -> (요청) 서버
클라이언트 <- (응답) 서버

노드 서버의 장단점

장점 : 멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용함
: I/O작업이 많은 서버로 적합
: 멀티스레드 방식보다 쉬움
: 웹서버가 내장되어 있음.
: 자바스크립트를 사용함
: JSON형식과 호환하기 쉬움.
단점 : 싱글스레드라서 CPU코어를 하나만 사용함
:CPU작업이 많은 서버로는 부적합
: 하나뿐인 스레드가 멈추지 않도록 관리해야함;
: 서버 규모가 커졌을때 서버를 관리하기 어려움
: 어중간한 성능

1.호출스택
함수 호출 순서대로 쌓이고, 역순으로 실행됨.
함수 실행이 완료되면 스택에서 빠짐
LIFO 구조라서 스택이라고 불림.

2.이벤트루프

호출스택
-백그라운드 (코드가 백그라운드로 가면 호출스택(호출스택이 항상 먼저 실행 되어야 한다)과 백그라운드가 동시에 실행됨)
-테스크 큐
-메모리
-콘솔창

Promise는 .then을 만나는순간 비동기로간다.
Promise .then/catch
process .nextTick 은 테스크큐에서 우선순위가 제일높아서 새치기함.

profile
"꾸준함이 답이다."

0개의 댓글