[TIL] Node.js intro

SYhwang·2023년 1월 11일
0

Node.js 란?

  • 크롬 브라우저의 v8엔진을 탑재한 server side 오픈소스 자바스크립트 런타임으로, Node.js Core Library, Node.js Bindings, V8 Engine, libuv 등으로 구성되어 있다.

Node.js 중요 키워드 : Javascript, chrome v8 엔진, Server Side, Runtime

  • javascript : HTML 요소 생성부터 페이지 및 기능을 동적으로 처리할 수 있게 해주는, 브라우저에서 실행되는 프로그래밍 언어이다.
    (Google Maps 이후 웹 서비스를 자바스크립트로 개발하는 시도가 많아졌다.)

  • chrome v8 엔진 : 구글이 주도해 c++으로 개발한 자바스크립트 엔진으로
    자바스크립트 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환, 해석, 실행한다.

  • server side : node.js는 네트워크 서버 구축에 특화되어 있다.
    이전 많이 사용하던 APACHE HTTP 서버는 구조적인 문제로 많은 동시 요청에 있어서 이슈가 발생하였는데, node.js는 이 이슈를 해결하였다.

  • runtime : 실행 환경을 의미한다.
    이전에는 자바스크립트를 브라우저에서만 실행할 수 있었는데, node.js로 인해 로컬 환경에서도 실행할 수 있게 되면서 브라우저에서는 할 수 없었던 일을 할 수 있게 되었다.(대표적으로 파일을 읽고 쓰는 기능)

Node.js로 API server를 구축해야 하는 이유

  • frontend와 backend의 기술 스택 통합 : 동일한 언어인 javascript를 사용하여 frontend의 서버프로그래밍 접근성과, 개발팀의 생산성을 증가시킬 수 있다.

  • 빠른 처리 속도와 높은 동시 요청 처리 성능 : V8 엔진, libuv 등으로 인해 높은 성능을 가지고 있다.

  • MSA에 적합한 실행 환경 : MSA는 micro service architecture로 시스템의 전체적인 구조를 서비스별로 독립적으로 나누어 구성해 하나의 시스템에서 하나의 기능만 하는 아키텍쳐이다. (반대로 하나의 시스템에서 모든 기능을 하는 경우:모놀리틱 아키텍쳐)

Node.js 주요 기능

자바스크립트를 브라우저 밖에서 실행하기

  1. REPL(READ EVAL PRINT LOOP)
  • 자바스크립트, nodejs코드를 실시간으로 처리하는 대화형 쉘
  • 터미널에서 node 입력해서 실행, .exit 입력하여 종료
  • 자바스크립트 코드를 읽고, 해석하여 결과를 평가하고, 결과를 출력해 줌
  • 기본 자바스크립트 함수 뿐 아니라 nodejs에 내장된 모듈도 사용 가능.
  • 간단한 테스트 용으로 주로 사용
  1. 자바스크립트 파일을 직접 실행
  • js 파일을 생성
  • 편집기로 js 파일 안에 자바스크립트 코드를 작성
  • 파일에 적힌 코드를 실행(명령어: node 파일명.js)

모듈 시스템

  • 초기 자바스크립트는 모듈화와 거리가 멀었으나, CommonJS에서 범용 명세를 만들었으며 Node.js 모듈 시스템 역시 이 명세를 따르고 있다. Node.js는 수많은 내장 모듈을 가지고 있으며, 커스텀 모듈을 정의하여 사용할 수 있다.
  • CommonJS 모듈 명세 : 모듈을 어떻게 정의하고 사용할 것인가?
      1. 모듈은 독립적인 실행 영역이 있어야 함(파일 하나에 모듈 하나) - 전역변수와 지역변수 분리
      1. 모듈을 외부에서 사용할 수 있도록 공개(export라는 전역 객체를 이용)
      1. 모듈을 사용하는 영역에서는 require()함수를 이용해 호출
  • 커스텀 모듈 만들기
    1. exports 객체 사용 - exports는 module.exports의 축약형(shortcut)이다.
    2. module.exports 를 사용해 외부에 공개한다 (권장)

0개의 댓글