NODE.JS 제 1장

마조리카·2021년 4월 3일
post-thumbnail

NODE.JS 스터디 시작

1장 NODE.JS 시작하기


1.1 핵심 개념 이해하기.

1.1.1 서버

서버란 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램이다.
클라이언트란 요청을 보내는 주체 (EX 브라우저, 프로그램, 모바일앱, 서버 등)
서버의 응답은 무조건 YES가 되는것은 아니다.

1.1.2 자바스크립트 런타임

- 런타임 : 특정 언어로 만든 프로그램들을 실행 시킬수있는 환경

1.1.3 이벤트 기반

이벤트기반 : 이벤트가 발생할 때 지정해둔 작업을 수행하는 방식 ( 인터럽트와 비슷한가?)
이벤트 리스너에 콜백함수를 등록하여 이벤트 발생시 콜백함수를 호출한다.
이벤트 루프 : 콜백함수 관리, 콜백함수 실생 순서 결정, 이벤트 처리를 위한 작업을 반복하여 '루프'라 부른다.
백그라운드 : 이벤트 리스너들이 대기하는 곳, 동시에 실행될 수 있다.

1.1.4 논 블로킹 I/O

논 블로킹 : 이전 작업이 완료 전에 다른 작업을 수행함을 의미 ( EX I/O )
setTimeout( 콜백, 0) 같은 코드로 논블로킹을 사용가능, 논 블로킹은 동시와 같은 의미를 갖지 않는다. 오래걸리는 작업이 있는경우 간단한 작업들이 대기하는 상황을 막을 수 있따는 점에서 의의

1.1.5 싱글스레드

스레드는 프로세스 내에서 실행되는 흐름의 단위, node는 싱글스레드 논블로킹 모델이다.
단, 스레드풀 ( 특정 동작 중 스스로 멀티 스레드를 사용 ), 워커 스레드 (노드 12 버전부터 멀티스레드 사용가능)
싱글 스레드, 논 블로킹은 직원 한명이 주문을 동시에 받고 서빙을 동시에 하는 방식이라면
멀티 스레드, 블로킹은 손님 1명당 직원 1명이 붙는 방식
멀티 스레드, 논 블로킹이 제일 효율적이지만 프로그래밍이 어려워진다.
i/o 요청에는 멀티 프로세싱이 더 효율적이기도 함.

1.2 서버로서의 노드

서버로서의 노드는 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는 데 적합.
대규모 데이터 처리 서버로는 부적합, 굳이 사용한다면 AWS 람다, 구글 클라우드 펑션스 등의 서비스이용 고려

1.3 서버 외의 노드

대표적인 웹 프ㅔ임 워크에는 앵귤러, 리액트, 뷰 등 이있다.

0개의 댓글