개발 공부/서버

[서버 기초] 환경변수(.env)는 왜 쓰는 거야?

악마의 개발자 2025. 5. 12. 20:00
반응형

환경변수(.env)


💡 코드에 DB 비밀번호 적으면 되는 이유?”

Node.jsPython 코드를 보면
환경설정 정보를 이렇게 적는 경우가 많아요.

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편 – "JSONForm Data, 뭐가 다른 거야?"

  • API 요청 보낼 application/json vs multipart/form-data
  • 각각 언제 쓰고 쓰는지 정리해드립니다!
반응형