node

김경천·2021년 7월 10일
0

노드: 자바스크립트 실행기

노드의 특성

  1. 이벤트 기반:
    이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식
    예 : 클릭, 네트워크 요청, 타이머
    이벤트 리스너: 이벤트를 등록하는 함수
  2. 논블로킹 : 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오오래 걸리는 함수
    동기: 코드가 순서대로 실행
    비동기: 코드가 순서대로 실행되지 않는다.
    블로킹: 코드가 순서대로실행된다.
    논블로킹: 코드가 순서대로 실행되지 않을수도있다. 살짝다름
  3. 싱글스레드

    주어진 일을 하나밖에 처리하지 못함

프로세스: 운영체제에서 할당하는 작업의 단위, 프로세스간 자원 공유 X
스레드: 프로세스 내에세 실행되는 작업의 단위, 부모 프로세스 자원공유

프로그램을 실행하면 프로세스는 하나뜬다.
쉽게 예를 들자면 크롬창을 띄워 이게 프로세스 탭들이 스레드라 생각하면 됨

서버로서의 노드

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

장단점

장점

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

서버 외의 노드

자바스크립트 런타임이기 때문에 용도가 서버에만 한정되지않음

profile
화이팅

0개의 댓글