Soony's House

[Node.js] Node.js 초기 설정, 환경변수 설정하기 본문

⚙️Backend/NODE.JS

[Node.js] Node.js 초기 설정, 환경변수 설정하기

soonybutter 2025. 5. 28. 21:54
728x90

 

 

 

Node.js는 JavaScript를 사용하여 서버 사이드 애플리케이션을 개발할 수 있는 런타임 환경이다.

간결하고 유연한 개발 환경을 갖추기 위해, 프로젝트 초기 설정은 매우 중요하다.

 

Node.js 프로젝트를 처음 시작할 때 필수적으로 진행해야 할 설정 과정을 정리해보자☺️

 

 

1. Node.js 설치

Node.js를 설치하기 위해서는 공식 웹사이트에서 설치 파일을 다운로드하거나, nvm(Node Version Manager)을 사용하는 것이 좋다. nvm을 사용하면 여러 버전의 Node.js를 쉽게 관리할 수 있다.

# nvm 설치 (Mac/Linux 기준)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash

# 원하는 Node.js 버전 설치
nvm install 20

# 기본 버전 설정
nvm use 20
nvm alias default 20

 

 

 

 

2. 프로젝트 디렉토리 생성 및 초기화

mkdir my-node-app
cd my-node-app
npm init -y

npm init -y 명령어는 기본값으로 package.json 파일을 자동 생성해 준다. 생성된 package.json 파일은 프로젝트의 메타데이터와 의존성을 관리하는 핵심 파일이다.

 

 

3. Git 초기화 및 .gitignore 설정

버전 관리를 위해 Git을 초기화하고, Node.js에서 불필요한 파일이 커밋되지 않도록 .gitignore 파일을 생성한다.

git init
node_modules/
.env
.DS_Store

node_modules는 외부 라이브러리 폴더이며 용량이 크기 때문에 Git에 포함하지 않는다.

 

.env는 환경 변수 파일로 민감한 정보를 담고 있어 제외한다.

 

 

4. ESLint 및 Prettier 설정

코드 품질을 유지하고 일관된 코드 스타일을 유지하기 위해 ESLint와 Prettier를 사용하는 것이 좋다.

npm install --save-dev eslint prettier
npx eslint --init

ESLint 초기화 과정에서 환경, 스타일 가이드, TypeScript 사용 여부 등을 선택할 수 있다.

 

Prettier는 코드 포매터이며, ESLint와 충돌이 없도록 설정 파일을 분리하거나 통합 플러그인을 사용하는 것이 좋다.

.eslintrc.js 또는 .eslintrc.json, .prettierrc 파일을 생성하여 세부 설정을 관리한다.

 

5. 디버깅을 위한 Nodemon 설치

개발 중 서버를 자동으로 재시작하기 위해 nodemon을 설치한다.

npm install --save-dev nodemon

package.json의 scripts 항목에 다음과 같이 추가한다.

"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js"
}

 

 

6. 환경 변수 설정

보안이나 환경에 따라 달라지는 값을 관리하기 위해 .env 파일을 사용한다. 이를 위해 dotenv 패키지를 설치한다.

npm install dotenv

 

프로젝트의 최상단에 .env 파일을 생성하고, 다음과 같이 값을 저장한다.

PORT=3000

 

index.js에서 해당 값을 사용하기 위해서는 다음과 같이 설정한다.

require('dotenv').config();

const port = process.env.PORT || 3000;

 

이상으로 Node.js 프로젝트의 기본적인 초기 설정 과정을 정리하였다 🙃

 

프로젝트의 규모나 성격에 따라 추가적인 설정이 필요할 수 있지만,

위 과정을 따라가면 대부분의 Node.js 프로젝트를 안정적으로 시작할 수 있다.

728x90