Node.js

임창현·2022년 10월 25일
0

Node.js

목록 보기
3/6
post-thumbnail

Node.js 정의

: Chrome 브라우저의 V8 Javascript 엔진을 탑재한 Server Side 오픈소스 Javascript 런타임

  • V8 Javascript 엔진
  • Server Side
  • Javascript
  • 런타임

1. V8 Javascript 엔진

1) 엔진
웹 브라우저가 자바스크립트 코드를 실행시켜서 동적으로 웹사이트를 동작시키기 위해서는 엔진이 필요합니다.

2) v8 자바스크립트 엔진
크롬 브라우저에는 v8자바스크립트 엔진이 탑재되어 있습니다.

  • javascript 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환, 해석, 실행
  • 브라우저에서만 실행 가능한 Javascript를 웹 브라우저가 아닌 곳에서 실행 가능하도록 만드려느는 시도 증가 (Node.js 실행 환경 등장)

3) Node.js
브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트브라우저 이외의 환경에서도 동작할 수 있도록 V8 엔진을 브라우저에게 독립시킨 javascript의 또 다른 실행 환경(Runtime)Node.js를 발표

브라우저에서 할 수 없는 다양한 일들이 가능해짐
-> 운영체제의 파일 시스템에 접근해서 파일 조작
-> 데이터베이스 시스템에 접근

  • Node.js 내부 구조
  • libuv
    라이브러리로 node.js의 핵심 개념인 이벤트 기반의 동작을 가능하도록 만들어주는 라이브러리입니다. (core library, binding library)
  • 정리 : Node.js라는 실행 환경이 설치되어 있는 어디에서든지 자바스크립트로 작성된 애플리케이션이 실행이 가능하게 됨. 이를 통해 서버 프로그래밍, 모바일 앱, 데스크탑 애플리케이션의 개발이 가능해 짐.

2. 네트워크 서비스 구축에 특화된 Node.js

node.js는 동시 요청에 대한 문제를 해결하기 위해서 고안된 기술이다.

  • Node.js 개념 정리
    1) Chrome 브라우저의 V8 Javascript 엔진 탑재
    2) 이벤트 기반의 Server Side 오픈소스 Javascript 런타임
    3) 노드에 내장되어 있는 기능들(libuv, httpd..)로 높은 동시 요청 처리 성능을 갖는 HTTP Server 구축 가능

목표 : node.js라는 기술을 사용해서 network 트래픽을 처리할 수 있는 웹 서버를 구축하는 것.

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

1) Frontend와 Backend 기술 스택 통합
2) 빠른 처리 속도와 동시 요청 처리 성능
3) MSA(Micro Service Architecture)에 적합

profile
Hi there 👋 i'm backend developer

0개의 댓글