React에 대해서 본격적으로 알아보기 전에, Node.js의 기본에 대해서 알아야할 필요성을 느껴서 Node.js 내용에 대해 먼저 정리하고자 한다.
1. Node.js 소개
Node.js는 자바스크립트(JavaScript)를 서버 측에서 실행할 수 있게 해주는 런타임 환경이다.
원래 자바스크립트는 브라우저 안에서만 동작했지만, Node.js가 등장하면서 서버에서도 자바스크립트를 사용할 수 있게 되었다.
🧐 Node.js는 왜 만들어졌을까?
자바스크립트는 원래 웹 페이지에 간단한 동작을 넣기 위해 만들어졌지만, 시간이 지나면서 언어가 유연하고 생산성이 높다는 점이 주목받았다.
이런 장점을 브라우저 밖, 특히 서버 영역에서도 활용하고 싶다는 요구가 커졌고, 이를 가능하게 하기 위해 자바스크립트 엔진(V8)을 브라우저 밖에서 돌릴 수 있게 만든 환경이 바로 Node.js다.
2. Node.js 사용하기
1) 패키지란?
- 특정 기능을 모아둔 코드 묶음(파일 또는 파일 집합)
- 다른 개발자가 쉽게 재사용할 수 있도록 만들어진 형태
- npm으로 설치·업데이트·삭제·관리
2) 프로젝트 초기 설정 (npm init)
터미널 실행:
npm init
입력 항목:
- package name: 프로젝트 이름
- version: 버전
- description: 설명
- entry point: 시작 파일 (예: index.js)
- test command: 테스트 실행 명령
- git repository: 깃 주소
- keywords: 검색 키워드
- author: 작성자
- license: 라이선스(기본 ISC)
→ 입력 완료 시 package.json 생성됨
3) index.js 파일 생성 & 실행
index.js:
console.log("안녕 js야");
실행:
node index.js 또는 node src/index.js
4) 패키지 스크립트 (npm scripts)
- package.json의 scripts 섹션에 정의된 명령어들
- 반복되는 작업을 npm run으로 편하게 실행 가능
예시 (package.json)
"scripts": {
"start": "node index.js",
"test": "echo \"Running tests...\"",
"build": "webpack --config webpack.config.js",
"dev": "nodemon index.js",
"lint": "eslint .",
"serve": "node server.js"
}
주요 스크립트 설명
- start →
npm start(서버/메인 실행 파일 실행) - test →
npm test(테스트 스크립트 실행) - build →
npm run build(배포용 번들 생성) - dev →
npm run dev(개발 모드 / 자동 재시작) - lint →
npm run lint(코드 스타일 검사) - serve →
npm run serve(서버 실행)
5) 예시 실행
npm start
→ "start": "node index.js" 실행됨
3. Node.js 모듈 시스템 이해하기
모듈이란 ?
- 특정 기능을 수행하는 코드 단위(파일)
- 큰 프로젝트에서는 코드를 여러 파일로 나눠서 관리하는 것이 효율적이다. (예:
user모듈,cart모듈,payment모듈)
모듈 시스템이란 ?
- 모듈을 만들고, 불러오고, 사용하는 방식을 정의한 시스템
- 자바스크립트에는 여러 모듈 시스템이 있고, 그중 CommonJS(CJS)**와 ES Module(ESM)이 가장 널리 사용된다.
CommonJS (CJS)
- Node.js가 기본적으로 사용해온 모듈 시스템.
- 자바스크립트가 브라우저만 쓸 때, 서버에서도 쓰려고 만든 방식.
- require / module.exports 문법 사용.
- 동기 로딩 → 파일을 불러올 때 즉시 로딩됨.
- 서버 환경과 궁합이 좋고, 브라우저에서는 기본적으로 사용하기 어렵다.
ES Module (ESM)
- JS 공식 표준 모듈 시스템 (ES6에서 도입).
- 브라우저와 Node.js 모두에서 사용 가능.
- import / export 문법 사용.
- 비동기 로딩 지원 → 네트워크 요청이 필요한 환경(브라우저)에서 효율적.
- 최신 자바스크립트 생태계에서 기본으로 쓰는 방식.
Node.js 라이브러리 사용하기
라이브러리란 ?
개발에 필요한 다양한 기능을 제공해주는 코드 모음이다. Node.js는 기본적으로 제공되는 내장 라이브러리와 외부 라이브러리를 통해 웹, 서버, 파일 처리, 네트워크 통신 등 여러 기능을 손쉽게 구현할 수 있다.