Skip to content

Latest commit

 

History

History
61 lines (35 loc) · 2.49 KB

노드 개념 이해하기.md

File metadata and controls

61 lines (35 loc) · 2.49 KB

노드 개념 이해하기

Node.js? 자바스크립트 런타임

1. 서버

서버란? 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 or 프로그램

Untitled

2. 자바스크립트 런타임

노드란? 자바스크립트 런타임 (=자바스크립트 실행기)

런타임? 특정 언어로 만든 프로그램들을 실행할 수 있는 환경

Untitled

libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있음

3. 이벤트 기반

이벤트가 발생할 때 미리 지정 해둔 작업을 수행하는 방식

이벤트 리스너에 콜백 함수를 등록함

  • 이벤트 루프 - 이벤트 발생 시 호출할 콜백 함수 관리 및 실행 순서 결정

4. 논블로킹 I/O

이전 작업이 완료될 때까지 대기하지 않고 다음 작업 수행

↔ 블로킹? 이전 작업이 끝나야만 다음 작업을 수행

Untitled

I/O 입력 출력 의미, 파일시스템 접근 및 네트워크를 통한 요청 작업도 I/O의 일종

노드는 I/O 작업을 백그라운드로 넘겨 동시에 처리함

→ 동시에 처리될 수 있는 작업들을 묶어서 넘김

5. 싱글 스레드

  • 프로세스 vs 스레드

    프로세스는 운영체제에서 할당하는 작업 단위

    자원 공유 X

    스레드는 프로세스 내에 실행되는 흐름의 단위

    자원 공유 O

    Untitled

    프로세스는 스레드를 여러개 생성해 여러 작업을 동시에 처리할 수 있음