Search
Duplicate

서버로서의 노드

생성일
2023/01/23 03:48
태그
nodejs

서버로서의 노드

서버

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

클라이언트

서버에 요청을 보내는 주체 (브라우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버)
ex) 브라우저(클라이언트, 요청)가 웹사이트(서버, 응답)에 접속
ex) 핸드폰(클라이언트)을 통해 앱스토어(서버)에 앱 다운로드

노드 ≠ 서버

노드 서버의 장단점

장점
멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용함
I/O 작업이 많은 서버로 적합
멀티 스레드 방식보다 쉽다
웹 서버가 내장되어 있다
자바스크립트를 사용한다
JSON 형식과 호환하기 쉽다
단점
싱글 스레드라서 CPU 코어를 하나만 사용해야한다
CPU 작업이 많은 서버로는 부적합하다
하나뿐인 스레드가 멈추지 않도록 관리해야한다
서버 규모가 커졌을 때, 서버를 관리하기 어렵다
어중간한 성능이다
→ CPU 작업을 위해 AWS Lambda나 GCP 같은 별도 서비스를 사용
→ 페이팔, 넷플릭스, 나사, 월마트, 링크드인, 우버 등에서 메인 또는 서브 서버로 사용
→ 자바스크립트 런타임이기 때문에 용도가 서버에만 한정되지 않음
→ 다양한 용도 사용 가능
웹프레임워크 : Angular, React, Vue, Meteor etc.
모바일 앱프레임워크 : React Native
데스크탑 개발도구 : Electorn(Atom, Slack, VSCode, Discore 등 제작)