[Node.js] 소개와 설치, 패키지,라이브러리 설정하기: 초보자를 위한 가이드

chaen·2024년 4월 4일

개발지식

목록 보기
4/6
post-thumbnail

❓ Node.js 란?

자바스크립트의 역사는 Node.js의 등장 이전과 이후로 나뉠 만큼, Node.js는 자바스크립트 생태계에 지대한 영향을 미쳤습니다. 앞으로 공부할 REACT 또한 Node.js를 기반으로 작동하기 때문에 잘 알아둘 필요가 있습니다.

자바스크립트 런타임

자바스크립트는 웹 브라우저에 내장된 자바스크립트 엔진에 의하여 실행됩니다. 자바스크립트를 실행하는 웹 브라우저는 자바스크립트의 런타임이라고 표현합니다. (여기서 런타임이란, 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻합니다.)

자바스크립트가 가진 수많은 장점으로 인해 웹 브라우저 위 외에서도 이 언어를 사용하고자 하는 요구가 점차 증가하였습니다.
동시에 2008년에 구글이 V8 엔진을 사용하여 크롬을 출시했습니다. V8 엔진은 속도가 빠르고 기능이 뛰어났으며, 오픈 소스로 코드가 공개되었습니다. 이에 따라 V8 엔진 기반에 몇 가지 기능이 더해진 Node.js (V8)가 등장하게 되었습니다.

Node.js

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. Node.js가 등장한 이후로는 웹 서버나 모바일 등 자바스크립트의 활용 범위가 확대되었습니다. Node.js를 설치하면 브라우저를 키지 않아도 자바스크립트를 컴퓨터에서 수행할 수 있습니다.

👍 Node.js의 장점

높은 처리량

SNS나 채팅 서비스와 같은 요청이 많은 어플리케이션에 적합합니다. 비동기식 처리(빨리 끝나는 작업 먼저 처리)로 인해 요청이 많거나 시간이 오래 걸리는 상황에서도 서버가 멈추거나 대기하지 않습니다.

빠른 개발 속도

코드가 간결하고 쉽기 때문에 개발이 빠르게 진행됩니다. 이는 Pivoting(기능 변경)이 용이하며, 작은 크기의 데이터를 빠르게 실시간으로 주고 받는 데 적합합니다.

신뢰성과 보안성

이미 대규모 기업들이 Node.js를 사용하여 안정성과 보안성을 충분히 검증하였습니다. 에어비엔비, 넷플릭스, 링크드인과 같은 기업들이 Node.js를 사용하고 있으며, 결제 시스템을 운영하는 대기업들도 Node.js를 채택하고 있습니다.

👎 Node.js의 단점

모든 작업이 단일 스레드에서 처리되기 때문에 CPU 연산이 많이 필요한 작업에는 적합하지 않습니다. 이미지 처리나 대규모 데이터 처리와 같은 CPU 집약적인 작업에는 다른 언어나 플랫폼이 더 적합할 수 있습니다.

💻 Node.js 설치

Node.js 설치

  1. 윈도우 사용자 계정 이름 영어로 바꾸기
    • 계정명이 한국어일 경우 설치 및 향후 이용 과정에서 문제가 발생할 수 있습니다.
  2. Node.js 홈페이지에서 OS에 맞게 설치하기 : 안정적인 LTS (Long Term Support)를 설치합니다.
  3. CMD 혹은 Terminal에 node -v를 입력하여 최신 버전이 제대로 나오는지 확인하기
  4. npm -v를 입력하여 마찬가지로 출력되는지 확인합니다. npm(Node Package Manager)은 Node.js의 프로젝트 단위인 ‘패키지’를 관리하는 도구입니다.

💻 Node.js 패키지 생성

일반적으로 복잡한 프로그램을 구현할 때는 기능별로 파일을 나누어 작성합니다. 하나의 프로젝트에서 여러 자바스크립트 파일을 Node.js를 이용해 실행할 때는 패키지(Package) 형태로 구성합니다. 패키지는 Node.js에서 여러 개의 자바스크립트 파일을 실행하고 관리하는 일종의 관리 단위입니다.

패키지 만들기

패키지 단위로 여러 파일을 관리하기 위해서는 최상위 폴더인 ‘루트 폴더’가 필요합니다. 따라서 루프 폴더를 하나 생성하고 그 안으로 경로를 이동합니다.

패키지를 생성하려면 npm을 이용해야 합니다. npm는 패키지를 관리하기 위한 유용하고 간편한 명령어와 기능들을 제공합니다.
우선 터미널에 Node.js를 초기화하는 명령어를 입력합니다.

npm init

그 후 패키지 이름, 버전, 설명, 구성 등에 대한 사항을 작성합니다. 패키지 이름은 원하는 대로 작성한 후 나머지는 엔터만 눌러 모두 확인 후 yes까지 입력해줍니다.

패키지 구성이 완료되면 비주얼 스튜디오코드 루트 폴더에 package.json이라는 파일이 생성됩니다.
package.json에는 앞서 입력했던 메타 정보들이 기본으로 생성됩니다.

name
version
description //설명 (보통 패키지로 구성한 프로그램의 목적) 
main //소스 코드 파일 중 메인 역할을 담당하는 소스 코드 파일
scripts //패키지를 쉽게 다루기 위해 지정한 매크로 명령어 
author //패키지를 만든 사람 
license //패키지의 라이선스

패키지 스크립트로 명령어 만들기

Node.js 패키지의 package.json에는 scripts라는 항목이 있습니다. 이 scripts 항목은 복잡한 명령어를 간단한 명령어로 변경하는 일종의 매크로 기능을 지원합니다.

만약 폴더 내에 index.js라는 파일을 만들었을 때, 해당 파일을 실행하려면 node ./index.js 를 입력해야 합니다. 하지만 아래와 같이 scripts 항목에 start라는 명령어를 작성하면 간단하게 npm run start를 입력하여 실행할 수 있게 됩니다.

{
  (...)
  "scripts": {
  "start": "node index.js",
  "test": "echo \"Error: no test specified\" && exit 1"
  },
  (...)
}

추가로, Node.js에서 ESM 모듈 시스템을 이용하고 싶다면 마찬가지로 package.json에 "type": "module",을 추가해줍니다.

{
  (...)
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "type": "module"
}

💻 라이브러리 사용하기

Node.js 패키지에서는 외부 패키지, 즉 라이브러리를 설치해 사용할 수 있습니다. 라이브러리를 이용하면 모든 기능을 사용자가 직접 개발하지 않아도 됩니다. 필요한 부분이 있다면 해당 기능을 수행하는 라이브러리를 찾아 설치하면 됩니다.

라이브러리 설치하기

  • npmjs.com 홈페이지에서 원하는 기능을 구현해놓은 라이브러리를 찾습니다.
  • readme 오른쪽에 install 내의 명령어를 터미널에 입력합니다.
  • 만약 에러가 발생했을 때 MacOS 사용자라면 명령어 앞에 sudo를 붙여 다시 실행해보세요.
  • 라이브러리를 설치하고 나면, node_modules라는 파일이 폴더 내에 생성됩니다.
  • 또한 package.jsondependencies 항목이 추가됩니다.
  • 조금 더 자세한 버전을 명시하기 위한 파일인 package-lock.json 파일이 자동으로 생성됩니다.

🔗참고 자료
[개발 기본 지식] Node.js란?
한 입 크기로 잘라먹는 리액트

0개의 댓글