Node.js란?
Node.js는
웹 브라우저가 아닌 환경에서도 JavaScript를 실행할 수 있게 해주는 런타임(Runtime) 이다.
기존의 JavaScript는 브라우저 내부에서만 실행되었지만, Node.js의 등장으로 다음과 같은 작업이 가능해졌다.
- 서버 개발
- 파일 시스템 접근
- CLI 프로그램 제작
- 백엔드 개발
Node.js = JavaScript 실행기 (Runtime)
React와 Node.js의 관계
React는 브라우저에서 실행되는 라이브러리이지만, 개발 환경 자체는 Node.js 기반으로 구성된다.
- 개발 서버 실행
- 번들링 및 빌드
- 패키지 관리(npm)
따라서 React 개발을 위해서는 Node.js 설치가 필수이다.
JavaScript의 탄생 배경
JavaScript는 처음에 웹 페이지 내부에서 간단한 동작을 처리하기 위해 만들어졌다.
예를 들면,
- 버튼 클릭 처리
- 폼 유효성 검사
- 간단한 UI 제어
이후 Node.js가 등장하면서 JavaScript는 프론트엔드를 넘어 범용 프로그래밍 언어로 확장되었다.
패키지(Package)란?
패키지는 Node.js에서 사용하는 프로그램 단위이다.
- 여러 기능을 하나로 묶은 코드
- npm을 통해 설치 및 관리
예시로는 다음과 같은 패키지들이 있다.
- 날짜 처리
- 랜덤 값 생성
- 수학 계산
- 서버 프레임워크
VSCode에서 터미널 열기
VSCode에서 터미널을 여는 단축키는 다음과 같다.
Cmd + J
터미널은 에디터 하단에 열린다.
npm init (프로젝트 초기화)
Node.js 프로젝트를 시작할 때 가장 먼저 실행하는 명령어이다.
npm init
엔터를 계속 누르면 기본 설정으로 프로젝트가 초기화된다.
실행 후 package.json 파일이 생성된다.
package.json은 해당 프로젝트의 설정 파일이자 설명서 역할을 한다.
Node.js로 JavaScript 파일 실행하기
먼저 JavaScript 파일을 생성한다.
index.js
터미널에서 다음 명령어로 실행할 수 있다.
node 경로/파일명
예시:
node src/index.js
npm script 사용하기
매번 node 명령어와 파일 경로를 직접 입력하는 것은 번거롭다.
이럴 때 npm script를 사용한다.
package.json에 scripts 항목을 추가한다.
"scripts": {
"start": "node src/index.js"
}
이후 아래 명령어로 실행할 수 있다.
npm run start
모듈 시스템이란?
모듈 시스템이란
코드를 여러 파일로 나누고, 필요한 부분만 불러와 사용하는 방식을 말한다.
모듈 시스템을 사용하는 이유는 다음과 같다.
- 코드가 길어지는 것을 방지
- 기능별 관리 가능
- 재사용성 증가
- 유지보수 용이
JavaScript 모듈 시스템 종류
JavaScript에는 대표적으로 두 가지 모듈 시스템이 있다.
CommonJS
- Node.js 기본 모듈 방식
- require, module.exports 사용
ES Module
- 최신 JavaScript 표준
- import, export 사용
CommonJS 예제
math.js 파일을 생성한다.
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
module.exports = {
add,
sub,
};
index.js에서 해당 모듈을 불러온다.
const moduleData = require("./math");
console.log(moduleData.add(1, 2));
console.log(moduleData.sub(2, 1));
const { add, sub } = require("./math");
console.log(add(1, 2));
console.log(sub(2, 1));
ES Module 사용 방법
ES Module을 사용하려면 package.json에 아래 내용을 추가해야 한다.
"type": "module"
ES Module 예제
math.js 파일
export function add(a, b) {
return a + b;
}
export function sub(a, b) {
return a - b;
}
export default function multiply(a, b) {
return a * b;
}
index.js 파일
import mul, { add, sub } from "./math.js";
console.log(add(1, 2));
console.log(sub(2, 1));
console.log(mul(2, 3));
ES Module에서는 파일 확장자 .js를 반드시 명시해야 한다.
라이브러리란?
라이브러리는
자주 사용하는 기능을 미리 구현해 놓은 모듈 묶음이다.
대표적인 예시는 다음과 같다.
- 날짜 및 시간 처리
- HTTP 요청
- 서버 프레임워크
- 유틸 함수 모음
npm으로 라이브러리 설치하기
npm 공식 사이트에서 라이브러리를 검색할 수 있다.
설치는 다음 명령어로 진행한다.
npm install randomcolor
설치 후 생성되는 파일들
라이브러리를 설치하면 다음과 같은 파일들이 생성된다.
- package.json
→ 의존성 정보가 기록됨 - node_modules
→ 실제 라이브러리 코드가 저장됨 - package-lock.json
→ 정확한 버전 정보 기록
node_modules는 GitHub에 올리지 않는다
node_modules 폴더는 용량이 크며,
npm install 명령어로 언제든 다시 설치할 수 있다.
따라서 .gitignore에 반드시 추가한다.
npm install
아래 명령어를 실행하면
package.json 기준으로 모든 의존성이 설치된다.
npm i
Node.js & npm 버전 확인
설치가 정상적으로 되었는지 확인하려면 아래 명령어를 사용한다.
node -v
npm -v