개발 공부/서버
[서버 기초] 환경변수(.env)는 왜 쓰는 거야?
악마의 개발자
2025. 5. 12. 20:00
반응형
💡 “코드에 DB 비밀번호 적으면 안 되는 이유?”
Node.js나 Python 코드를 보면
환경설정 정보를 이렇게 적는 경우가 많아요.
process.env.DB_PASSWORD
"왜 그냥 코드에 직접 쓰지 않고,
process.env 같은 걸로 불러오는 걸까?" 🤔
오늘은 환경변수(.env)의 개념과 쓰는 이유,
그리고 실무에서 꼭 지켜야 할 보안 팁까지 정리해드릴게요! 😊
🗂️ 환경변수(Environment Variable)란?
환경변수는
운영체제나 애플리케이션 실행 시
외부에서 주입되는 설정값입니다.
📌 예시:
- DB 비밀번호
- API 키
- 포트 번호
- 배포 환경(dev, prod 등)
👉 코드에 직접 쓰지 않고,
환경에 따라 다르게 설정 가능!
📁 .env 파일이란?
.env 파일은
환경변수를 파일로 따로 저장해두는 방식이에요.
DB_USER=root
DB_PASSWORD=secret123
PORT=3000
→ 실행 시 .env 파일을 읽어서
→ process.env.DB_PASSWORD처럼 사용!
⚙️ Node.js에서 dotenv 사용 예시
npm install dotenv
// app.js
require('dotenv').config();
const dbUser = process.env.DB_USER;
const dbPass = process.env.DB_PASSWORD;
✅ 민감 정보는 코드에 직접 쓰지 않고 숨길 수 있음!
✅ Git에 업로드하지 않게 .gitignore로 보호 가능!
❌ 설정파일 vs ✅ 환경변수
구분 | 설정파일(config.js 등) | 환경변수(.env) |
저장 위치 | 코드 내부 | 외부 파일 (.env) |
공개 위험 | Git에 포함될 수 있음 | .gitignore로 숨김 가능 |
환경별 분리 | 직접 관리 필요 | .env.dev, .env.prod 등 구분 가능 |
보안 | 노출 위험 큼 | 상대적으로 안전 |
🔐 보안상 민감한 값(API 키, 비번)은 반드시 환경변수로 분리!
🧩 실무에서 자주 쓰는 환경변수 예시
변수명 | 용도 예시 |
NODE_ENV | 개발/운영 구분 (development, production) |
PORT | 서버 포트 번호 |
DB_HOST, DB_USER, DB_PASSWORD | 데이터베이스 연결 정보 |
JWT_SECRET | JWT 서명 키 |
API_KEY, GOOGLE_CLIENT_ID | 외부 API 인증용 키 |
🛑 실무 보안 체크리스트
✅ .env 파일은 절대 Git에 올리지 않기!
→ .gitignore에 반드시 추가:
.env
✅ 배포 서버에는 .env.production 등 따로 관리
✅ .env 안에는 비밀번호, 키, 토큰 등 민감 정보만 저장
✅ 설정파일엔 process.env.변수명만 사용하기!
🧠 정리 한마디!
구분 | 환경변수 |
쓰는 이유 | 코드 분리, 보안, 환경별 설정 관리 |
사용 방식 | .env 파일 → process.env로 접근 |
관리 도구 | dotenv (Node.js), os.environ (Python) |
실무 중요도 | ⭐⭐⭐⭐⭐ (필수) |
실무에서 환경변수는 기본 중의 기본!
보안, 유지보수, 협업 모두에 중요합니다 😊
📌 다음 예고: 8편 – "JSON과 Form Data, 뭐가 다른 거야?"
- API 요청 보낼 때 application/json vs multipart/form-data
- 각각 언제 쓰고 왜 쓰는지 정리해드립니다!
반응형