서버로서의 노드

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

 >> 클라이언트 : 서버에 요청을 보내는 주체(브라우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버)

 >> 예시

   - 브라우저(클라이언트, 요청)가 길벗 웹사이트(서버, 응답)에 접속

   - 핸드폰(클라이언트)을 통해 앱스토어(서버)에서 앱 다운로드

 >> 노드 != 서버

 

 >> 노드서버의 장단점

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

 

 >> CPU 작업을 위해 AWS Lambda나 Google Cloud Functions 같은 별도 서비스 사용

 >> 페이팔 , 넷플리스, 나사 , 월마트, 링크드인, 우버 등에서 메인 또는 서브 서버로 사용

 

 

서버 외의 노드 

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

 >> 웹, 모바일, 데스크탑 애플리케이션에도 사용

  - 웹 프레임워크 : Angular, React, Vue, Meteor 등

  - 모바일 앱 프레임워크 : React Native

  - 데스크탑 개발 도구 : Electron(Atom, Slack, VSCode, Discord 등 제작)

 

 

 

'Javascript > Node' 카테고리의 다른 글

var const let 자바스크립트 변수 상수  (0) 2024.10.30
Node.js 다운로드 설치 최신버전 22버전  (0) 2024.10.29
노드의 특성  (0) 2024.10.27
노드의 정의  (0) 2024.10.26
노드 교과서 섹션0  (0) 2023.09.07

Node.js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다.

 - 서버의 역할도 수행할 수 있는 자바스크립트 런타임

 - 노드는 자바스크립트로 작성된 서버를 실행할 수 있음.

 - 서버 실행을 위해 필요한 http/https/http2 모듈을 제공

 

노드 : 자바스크립트 런타임

 - 런타임 : 특정 언어로 만든 프로그램을 실행할 수 있게 해주는 가상 머신(크롬의 V8 엔진사용)의 상태

 - 노드 : 자바스크립트로 만든 프로그램들을 실행할 수 있게 해 줌

 - 다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스 등)가 있음

 

노드는 V8과 libuv를 내부적으로 포함

 - V8 엔진 :오픈 소스 자바스크립트 엔진 -> 속도 문제 개선

 - libuv : 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리

 

 

'Javascript > Node' 카테고리의 다른 글

서버 노드  (0) 2024.10.28
노드의 특성  (0) 2024.10.27
노드 교과서 섹션0  (0) 2023.09.07
노드 교과서 섹션 1  (0) 2023.09.06
노드 교과서 섹션 2  (0) 2023.09.05

+ Recent posts