What is Node.js?

임수정·2023년 2월 19일
0
post-thumbnail

Node.js

API 개발에 있어 아주 핵심이 되는 개념입니다. 크롬브라우저의 V8 자바스크립트 엔진을 탑재한 이벤트기반의 서버사이드 오픈소스 자바스크립트 런타임으로 정의할 수 있습니다.
이를 이해하기 위해서는 V8 자바스크립트 엔진 / 자바스크립트 / 런타임 의 개념을 잘 이해해야 합니다.

여기서는 자바스크립트를 가볍게 정리하고 지나가겠습니다(추후에 자세한 개념정리 진행할 예정입니다.)

JavaScript

html 요소 생성부터 모든 페이지 및 기능을 동적으로 처리할 수 있도록 만들어주는 프로그래밍 언어입니다. 이를 활용해, 웹서비스를 개발하려는 시도가 증가하고 있습니다.

V8 자바스크립트 엔진

웹브라우저가 자바스크립트를 실행시켜서 동적으로 웹사이트를 동작시키기 위해 필요한 엔진크롬 브라우저에는 이 엔진이 탑재되었습니다. 자바스크립트 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트코드로 변환,해석,실행시킵니다. 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 V8엔진을 브라우저에서 독립시킨 자바스크립트의 실행 환경(runtime)을 Node.js라고 합니다.


<NOde.js의 내부구조>

<참고>
Lib uv : 자바스크립트 이벤트기반의 동작을 가능하도록 만들어주는 라이브러리

Node.js의 특징

  • 자바스크립트를 그대로 활용하면서, 이벤트기반의 높은 처리성능을 낼 수 있는 네트워크 서버를 구축
  • 동시요청에대한 이슈를 해결하기 위해서 고안된 기술
  • 궁극적으로는 네트워크 트래픽을 처리할 수 있는 웹 서버를 구축

위와 같은 특징을 가진 Node.js는 특히 API 서버(HTTP 서버)를 구축하는데 활용됩니다.HTTP API 서버를 만드는 방법이 다양한데, 왜 Node.js 기반으로 API 서버를 구현해야 하는지 살펴보겠습니다.

Node.js 기반 API서버를 구축하면 좋은이유

  • 프론트엔드와 백엔드 애플리케이션 개발에 모듈로 만들어서 재사용 가능(기술통합)
  • 프론트엔드개발자의 서버 프로그래밍 접근성이 높다
  • 개발팀 생산성 향상에 도움을 준다.
  • 빠른처리속도와 동시요청처리성능(지연X)
  • MSA에 적합하다.
    (MSA(Micro Service Architecture)
    : 시스템의 전체적인 구도를 서비스별로 독립적으로 나뉘어서 구성되는 아키텍쳐)
  • 결제기능,인증기능을 분리해서 하나의 시스템에서 하나의 기능만을 하도록 만들어진 구조

<참고>

<Monolithic Architecture & Micro Service Architecture>

profile
부족함을 인정하고 채워나가는 개발자! (Node.js 개발자)

0개의 댓글