✨ 목표
Node.js(Express) 서버의 하드코딩된 설정값들을 .env 환경변수 파일로 분리하고, dotenv 모듈을 사용하여 설정을 안전하고 유연하게 관리합니다. 이를 통해 운영 환경과 개발 환경을 쉽게 구분할 수 있으며, 코드 유지보수성을 높일 수 있습니다.
📦 주요 작업 요약
- .env 파일 생성 및 .gitignore에 등록
- dotenv 설치 및 서버 코드에 적용
- PORT, DB 경로, API Key 등 민감한 값 외부화
- 하드코딩된 설정값 제거 및 환경변수로 정리
✔️ 1. dotenv 설치 및 .env 파일 생성
1️⃣ dotenv 설치
- server 폴더에서 터미널을 열고, 다음 명령어를 입력합니다. (로컬 및 서버에서 전부 입력)
npm install dotenv
👉 dotenv는 .env 파일에 작성된 환경변수들을 Node.js에서 사용할 수 있게 해주는 라이브러리입니다.
2️⃣ server폴더 안에 .env 파일 생성
- server 폴더 안에 새 파일을 만들고 이름을 .env로 만들어 줍니다.
❗주의: .env.txt 로 저장되지 않도록 파일 확장자 보기 설정을 반드시 확인해야 합니다!

- 파일을 열어 아래처럼 작성합니다.
DB_HOST=localhost
DB_PORT=3000
DB_USER=root
DB_PASSWORD=yourpassword
DB_NAME=testdb
📌 파일 확장자 숨김 해제 방법 (Windows)
.env.txt로 저장되면 서버에서 환경변수로 인식하지 못하므로, 파일 확장자명을 숨기지 않도록 설정을 바꿔야 합니다.
🔧 설정 방법
- 파일 탐색기 열기 (Win + E)
- 상단 메뉴에서 [보기] → [표시] → [파일 확장명] 체크하기
- 이렇게 하면 .txt, .js, .json 등의 확장자가 보입니다
- .env.txt로 되어 있다면, 이름 바꾸기 → .env로 수정
❗Git이 연결되어 있다면, .env 파일은 절대 Git에 커밋되면 안 됩니다!
- .gitignore에 반드시 추가하세요: (server 폴더 안)
.env
- 필요하다면 아래처럼 더 추가할 수도 있어요:
node_modules/
dist/
.env
🔒 .env 파일을 커밋하지 않는 이유는?
- 중요한 정보(API 키, DB 비밀번호 등)가 들어있기 때문입니다
- GitHub 등의 공개 저장소에 올라가면 보안에 매우 큰 문제가 됩니다
✔️ 2. 서버 코드에서 dotenv(환경변수) 적용
server.js 가장 위에 아래 코드를 추가하세요:
require('dotenv').config();
이후 하드코딩된 설정값들을 아래처럼 교체합니다:
const port = process.env.DB_PORT || 3000;
const connection = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
});
🎉 완료되면
- 코드에 노출되던 DB 정보, 포트 등 민감한 값들이 깔끔하게 분리되어 보안성 증가
- 설정이 바뀔 때마다 .env 파일만 바꿔서 운영/개발 환경 전환이 쉬워집니다
- Git에는 안전하게 커밋할 수 있습니다
⚠️ 주의 사항
- .env에는 절대 비밀번호, API Key 등 민감한 정보만! 로직 넣지 마세요.
- GitHub에 커밋되지 않도록 반드시 .gitignore에 .env를 추가하세요.
- 운영 서버에서는 .env.production, 로컬에서는 .env.development처럼 파일을 분리해서 사용할 수 있습니다.
🔔 환경변수 활용 팁
- .env.example 파일을 만들어 예시를 문서화하세요:
DB_HOST=localhost
DB_PORT=3000
DB_USER=root
DB_PASSWORD=000000
DB_NAME=testdb
협업 시 .env는 공유하지 말고 .env.example만 공유하세요
참고 사이트
https://computer-science-student.tistory.com/723
[Node.js] 환경 변수(env) 관리하기
[Node.js] 환경 변수(env) 관리하기 로컬에서 개발할 때와 서버에 배포할 때 DB 연결, 포트 설정 등 관련된 부분을 매번 수정해서 배포하는 것은 쉽지 않다. 또한 유출되면 안되는 secret key를 public으로
computer-science-student.tistory.com
'개발공부기록 > Cafe24 서버 호스팅' 카테고리의 다른 글
| [ Cafe24 서버 호스팅 ] #10: Let's Encrypt로 Node.js 서버 HTTPS 적용하기 (CentOS + 자동 갱신 포함) (0) | 2025.05.12 |
|---|---|
| [ Cafe24 서버 호스팅 ] #9: 도메인 구매 및 연동하기 (Cafe24) (0) | 2025.05.12 |
| [ Cafe24 서버 호스팅 ] #7: MariaDB 연동 (기본 DB 생성 및 연결 테스트) (0) | 2025.05.12 |
| [ Cafe24 서버 호스팅 ] #6: Express API 서버 Cafe24에 배포 및 연동 테스트 (0) | 2025.05.09 |
| [ Cafe24 서버 호스팅 ] #5: Angular - Node.js 기본 API 연동 & CRUD 예제 소스 (0) | 2025.05.08 |