1.2 노드의 특성
5. 멀티 스레드 모델과의 비교
- 싱글 스레드 모델은 에러를 처리하지 못하는 경우 멈춤
= 프로그래밍 난이도 쉽고, CPU, 메모리 자원 적게 사용
- 멀티 스레드 모델은 에러 발생 시 개로운 스레드를 생성하여 극복
= 단 새로운 스레드 생성이나 놀고 있는 스레드 처리에 비용 발생
= 프로그래밍 난이도 어려움
= 스레드 수만큼 자원을 많이 사용함.
- 점원: 스레드, 주문: 요청, 서빙: 응답
6. 멀티 스레드의 활용
-노드 14 버전
- 멀티 스레드를 사용할 수 있도록 worker_threads 모듈 도입
- CPU를 많이 사용하는 작업인 경우에 활용 가능
- 멀티 프로세싱만 가능했던 아쉬움을 달래줌. (메인X)
1.3 노드의 역할
1. 서버로서의 노드
- 서버: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
- 클라이언트: 서버에 요청을 보내는 주체(브라우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버)
- 예시
= 브라우저(클라이언트, 요청)가 길벗 웹사트(서버, 응답)에 접속
= 핸드폰(클라이언트)을 통해 앱스토어(서버)에서 앱 다운로드
- 노드 != 서버
- But, 노드는 서버를 구성할 수 있게 하는 모듈(4장에서 설명)을 제공
2. 서버로서의 노드
- 노드 서버의 장단점
- CPU 작업을 위해 AWS Lambda나 Google Cloud FUnctions같은 별도 서비스 사용
- 페이팔, 넷플릭스, 나사, 월마트, 링크드인, 우버 등에서 메인 또는 서브 서버로 사용
3. 서버 외의 노드
- 자바 스크립트 런타임이기 때문에 용도가 서버에만 한정되지 않음
- 웹, 모바일, 데스크탑 애플리케이션에도 사용
= 웹 프레임워크: Angular, React, Vue, Meteor 등
= 모바일 앱 프레워크: React Native
= 데스크탑 개발 도구: Electron(Atom, Slack, VSCode, Discord 등 제작)
- 위 프레임워크가 노드 기반으로 동작함
'GGM > 네트워크' 카테고리의 다른 글
20230307 - 네트워크 - 컴퓨터네트워크 1장 - 1 (0) | 2023.03.07 |
---|
댓글