Back_End/Node.js

[ 백엔드 공부하기 : Node.js ] Node의 역할.

안다미로 : APP & Web3 & D.S 2024. 11. 17. 15:27

 

 

 

 

[ 백엔드 공부하기 : Node.js ] Node의 역할.

 


 

∇ Node.js의 역할.

목  차

1. 노드 Introduction
2. 노드 역할
3. 노드 서버의 장단점.

 

 


Ⅰ . 노드(Node.js) Introduction.


 

"Node.js" 는   '크롬 V8  자바스크립트 엔진' 으로 빌드된 자바스크립트  "런타임 환경(Runtime Environment)"으로

              "서버-사이드-애플리케이션 개발"에 사용되는 소프트웨어 플랫폼입니다.

 

      § Node.js 는 브라우저 외부 환경에서 자바스크립트 애플리케이션 개발에 사용되며,

            이 작업에 필요한 "모듈", "파일 시스템" , "HTTP"  등등   'Build-in API'를 제공합니다.

 

 

     ○ Node.js는 자바스크립트를 사용해 개발합니다.

 

     ○ Front-end 와 Back-end에서 JS언어를 사용할 수 있다는 동형성(ismorphic)은

        추가적인 언어 학습 시간을 단축해주는 장점.

프론트 단 :자바스크립트 - 백엔드 단 : Node.js

 

     ○ Node.js는  Non-blocking I/O와 단일-스레드 이벤트-루프를 통한 높은 Request 처리 성능을 가지고 있습니다.

 

 

     ○ DB로부터 대량의 데이터를 취득하여,  웹페이지를 렌더링할 때,

       일반적으로 DB처리에 대기시간(blocking)이 발생하기 때문에 웹페이지 표시가 지연되는 현상이 발생합니다.

 

     ○ Node.js의 모든 API는   " 비동기 방식으로 동작 " 하여서 Non-blocking I/O가 가능하고 

          "단일 스레드 이벤트 루프 모델"을 사용하여 보다 가벼운 환경에서도 높은 Request 처리 성능을 가집니다.

 

     ○ Node.js의 데이터를 실시간 처리하여  빈번한 I/O가 발생하는 SPA(Single Page Application)에 적합합니다.

             but, CPU 사용률이 높은 앱에는 권장하지 않습니다.

 

 

          ++ Node.js에는 Socket.io 라는 '실시간 통신'을 실현하는 라이브러리를 사용가능하여서

                 대량의 데이터 처리와 실시간 통신을 구현할 수 있는 모든 기능을 갖추고 있습니다.

 

 

 


 

Ⅱ . 노드(Node.js) 역할.


         ∇ 서버 (Server )

 

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

 

                 √ 클라이언트 : '서버'에 요청을 보내는 주체

                                           (브라우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내느 서버).

 

                     ex)

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

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

 

 

 

            ★ Node는 '서버'를 구성할 수 있도록 하는 모듈을 제공합니다.

 

 


Ⅲ . 노드(Node.js) 서버의 장단점.


 

 

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

 

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