[wecode]-(1주차 2일) node.js intro (1) 정의/장점

eunkyung·2023년 1월 14일
0

1. node.js 란 ?

Node.js를 한 문장으로 정의하면, Chrome 브라우저의 V8 Javascript 엔진을 탑재한 Server Side 오픈소스 Javascript 런타임입니다.

V8 Javascript 엔진 : Javascript 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환하는 역할을 수행합니다.

이렇게 속도까지 얻게 된 Javascript는 생태계가 더욱 커지게 되면서, Browser에서만 실행 가능한 Javascript를 웹 브라우저가 아닌 곳에서도 실행 가능하도록 만들고자 하는 목소리가 커지게 됩니다.

V8 엔진을 브라우저에서 독립시킨 Javascript의 또 다른 실행 환경(runtime)인 Node.js 탄생,
그러면서, 브라우저에서 할 수 없는 운영체제의 파일 시스템에 접근해서 파일을 조작한다든지 등의 다양한 일들이 가능하게 되었습니다.

node.js의 목적 : 이벤트 기반의 높은 처리 성능을 낼 수 있는 network 서버를 만드는 것

  • Node.js는 주로 API 서버(HTTP 서버)를 구축하는데 활용됩니다.

  • Node.js 기반의 네트워크 서버(API)의 장점은 Frontend와 Backend 기술 스택 통합, 빠른 처리 속도와 높은 동시 요청 처리 성능, 그리고 MSA (Micro Service Architecture)에 적합 등이 있습니다.

2. node.js 장점

2-1) Frontend와 Backend 기술 스택 통합

  • 프론트엔드와 백엔드 양쪽에 동일한 언어 사용으로 코드를 모듈로 만들어서 재사용할 수 있음 >> 생산성 향상

2-2) 빠른 처리 속도와 동시 요청 처리 성능

  • V8의 기능(우리가 작성한 코드를 컴퓨터가 해석하기 쉽게 함) : 성능이 매년 향상
  • libuv라는 비동기 I/O에 중점을 둔 오픈 소스 라이브러리를 사용함으로써 이벤트 기반(Event Driven), Single Thread, non-blocking I/O 모델을 구현 >> 지연(blocking) 없이 동시 요청을 빠르게 처리

2-3) MSA (Micro Service Architecture)에 적합

MSA는 요즘 널리 사용되는 아키텍처입니다.
MSA 구조 안에서는 기능이 추가될 때마다 기존 시스템에 더해지는 것이 아니라 가벼운 시스템을 새롭게 구축하는 방법으로 확장하게 됩니다.

결과적으로 Node.js는 상대적으로 가벼운 런타임이기 때문에 MSA와 아주 잘 조화되어 사용될 수 있습니다.

2-4) 풍부한 생태계(라이브러리 약 80만개)를 갖고 있고, JSON 형식을 그대로 사용할 수 있음

이러한 이유로 자바스크립트와 노드로 백엔드 API 서버를 구축하는 것은 좋은 선택일 수 있습니다.

0개의 댓글