[Node] 노드 정리

2023. 4. 7. 10:09·Node

express = Node.js 웹 프레임워크

node.js
- node.js의 모든 api는 비동기 방식으로 동작하여 non-blocking I/O가 가능하다.
- 단일 스레드 이벤트 루프 모델을 사용하여 가벼운 환경에서도 높은 Request 처리 성능을 가지고 있다.
- 데이터를 실시간으로 처리하여 I/O가 자주 발생하는 SPA(Single page Application)에 적합하다.
- 서버 사이드 스크립트 언어이다.

node.js 장단점
장점)
1. 멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용
2. I/O 작업이 많은 서버에 적합(non blocking 방식을 사용하기 때문)
단점)
1. 싱글 스레드라서 CPU 코어를 하나만 사용
2. CPU 작업이 많은 서버에는 부적합(non blocking 방식을 사용하기 때문)

클라이언트 사이드 : 클라이언트(사용자) 측에서 처리하는 것 대표적으로(javascript)
서버 사이드 : 서버(제공자) 측에서 즉시 처리하는 것 대표적으로(java, node.js, python)

데이터를 서버 사이드에서 처리시
장점 
  - 클라이언트(사용자)의 컴퓨터 처리부담이 줄어든다
  - 데이터 위조의 가능성을 줄여준다(서버쪽에서 중요한 데이터를 관리하기 때문에).
단점 
  - 서버가 처리해야할 데이터가 많아져서 서버 비용이 늘어난다.

데이터를 클라이언트 사이드에서 처리시
장점 
  - 서버 비용이 줄어든다.
단점 
  - 클라이언트 쪽에서 보내준 데이터를 서버 쪽에서 진위성을 파악하기 힘들기 때문에 중요한 데이터를 클라이언트 쪽에서 처리하기 힘듬

이벤트가 발생할 때 미리 만들어둔 작업을 수행하는 방식
1. 이벤트 리스너에 콜백 함수 등록
2. 이벤트 발생
3. 등록된 콜백 함수 호출

non blocking I/O
- 오래 걸리는 함수를 백그라운드로 보내고 빨리 끝나는 코드를 먼저 실행하는 방식(뒤로 밀린 함수들은 다시 태스트 큐를 거쳐 호출 스택으로 올라온다.)
- I/O작업을 진행하는 동안 유저 프로세스의 작업을 중단시키지 않는다.
blocking I/O
- 요청이 들어온 함수를 차례차례 순서대로 실행하는 방식
- I/O작업이 진행되는 동안 유저 프로세스의 작업을 중단한채 대기한다.

'Node' 카테고리의 다른 글

[Node] 웹소켓 정리  (0) 2023.04.07
[Node] NPM 정리  (0) 2023.04.07
'Node' 카테고리의 다른 글
  • [Node] 웹소켓 정리
  • [Node] NPM 정리
꾸준2
꾸준2
  • 꾸준2
    꾸준2
    꾸준2
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • 복습 프로젝트 (3)
      • 어드민 프로젝트 (4)
      • 프로젝트 리팩토링 (4)
      • Database (0)
      • Java Library (2)
      • Java (4)
      • Java(JVM) (1)
      • 자바 문제 (13)
        • 이론 (6)
        • 실습 (7)
      • IDE (2)
        • IntelliJ (2)
      • 인강 (13)
        • SpringBoot(JPA활용1) (0)
        • 자바(기본편) (6)
        • 자바(중급1편) (3)
        • 자바(중급2편) (1)
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편 (3)
      • Network (2)
      • Node (3)
      • CS (0)
      • amCharts4 (5)
      • 오류 모음 (4)
        • 리눅스 (1)
      • 기타지식 (2)
      • 자주 사용하는 기능 (4)
      • Vue (11)
      • Javascript (13)
      • Javascript-메서드 (3)
      • CSS (6)
      • 라이브러리 (4)
      • 자료구조 (11)
      • 알고리즘 (4)
      • Vue-프로젝트 (20)
      • Vue-bitcoin프로젝트 (6)
      • 블로그클론 프로젝트 (11)
      • 면접 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
꾸준2
[Node] 노드 정리
상단으로

티스토리툴바