📄 .env가 뭔지부터 — 메모장 비유로 이해하기
6편에서 Supabase를, 7편에서 OpenAI API를 연결하려면 API 키가 필요합니다. 그 API 키를 어디에, 어떻게 보관해야 하는지가 이 편의 전부입니다.
코드에는 "메모장에서 가져와"라고만 쓰고,
실제 비밀 정보는 메모장(= .env)에만 보관합니다.
// 이 파일이 GitHub에 올라가면
// API 키도 같이 공개됩니다
// 실제 키는 .env 파일에만 있음
// .env는 GitHub에 올라가지 않음
"코드 안에 써도 되는 거 아닌가요? 거기다 API 키 쓰면 편한데요."
편합니다. 하지만 GitHub에 push하는 순간 그 키는 인터넷에 공개됩니다.
OpenAI 같은 서비스는 API 사용량에 따라 비용이 청구됩니다.
타인이 내 키를 쓰면 그 비용이 내 카드에 청구됩니다! 그래서 정말 중요합니다.
처음 한 번 .env 습관을 만들면 이후로는 자연스럽게 됩니다. 이 편이 6·7편보다 먼저인 이유입니다.
실제로는 딱 두 가지 습관만 만들면 대부분의 문제를 예방할 수 있습니다.
① .env 파일에 API 키 보관
② .gitignore에 .env 추가
이 글은 그 두 가지 습관을 만드는 과정입니다. 어렵지 않습니다.
🚨 API 키를 코드에 직접 쓰면 생기는 일
📝 .env 파일 만들고 API 키 넣기
.env 파일은 특별한 형식의 파일이 아닙니다. 텍스트 파일인데 이름이 .env인 것뿐입니다.
🚫 .gitignore 설정 — GitHub 차단 필수
.env 파일을 만들었다면 반드시 .gitignore에 추가해야 합니다. 이걸 빠뜨리면 git push 시 .env도 함께 GitHub에 올라갑니다.
.env 파일은 GitHub에 없으므로 직접 전달해야 합니다. 카카오톡보다는 1:1 메시지나 비밀 메모 앱을 사용하세요. 이메일도 평문 전송이므로 권장하지 않습니다.
💻 코드에서 .env 값 읽어오기
.env 파일을 만들었다면 코드에서 그 값을 읽어오는 방법을 알아야 합니다. Node.js에서는 두 가지 방법이 있습니다.
그래서 dotenv라는 작은 도구를 추가해서 "비밀 메모장을 읽어오는 기능"을 연결합니다.
딱 한 줄(npm install dotenv)로 설치하고, 코드 첫 줄에 한 줄만 추가하면 됩니다.
AI에게 "dotenv로 .env 읽도록 수정해줘"라고 요청하면 나머지는 AI가 다 해줍니다.
✅ .env가 제대로 연결됐는지 확인하기 — 성공 체험
설정이 끝났다면 실제로 값이 읽히는지 확인해봅니다. 이 순간이 ".env가 작동하는구나"를 처음 체감하는 순간입니다.
# 터미널에서 실행 node server.js
# ❌ 이렇게 나오면 연결 안 된 것 키 확인: undefined
# ✅ 이렇게 나오면 연결 성공 키 확인: sk-proj-여기에실제키가보임...
이 줄이 남아 있으면 서버 실행 시마다 API 키가 터미널에 출력됩니다.
"내 server.js에서 .env 파일의 OPENAI_API_KEY를 읽어서 사용하도록 코드를 수정해줘. dotenv 패키지 사용해줘."
▲ Vercel 배포 환경에 적용하기
3편에서 Vercel 배포를 완성했습니다. .env 파일은 .gitignore로 차단되어 GitHub에 없습니다. 그러므로 Vercel도 그 값을 알 수 없습니다. 따로 입력해야 합니다.
Vercel에서 Settings → Environment Variables 업데이트 후 반드시 재배포(git push)를 해야 새 값이 적용됩니다. 저장만 하고 재배포를 안 하면 이전 값이 계속 사용됩니다.
📌 핵심 요약
- 📄.env 파일은 API 키를 코드 밖에 따로 보관하는 비밀 메모장입니다. 코드에는 "메모장에서 가져와(process.env.키이름)"라고만 쓰고 실제 값은 .env에만 있습니다.
- 🚨API 키를 코드에 직접 쓰고 GitHub에 push하면 수 분 안에 봇이 발견합니다. OpenAI 키라면 타인이 내 계정으로 사용하고 비용이 내 카드에 청구됩니다.
- 🚫.gitignore 파일에 .env를 반드시 추가해야 합니다. git status로 .env가 목록에 없는지 확인한 후 push하세요.
- 💻Node.js에서 .env 값을 읽으려면 dotenv 패키지를 설치하고 코드 상단에 require('dotenv').config()를 추가합니다. AI에게 요청하면 자동으로 설정해줍니다.
- ▲Vercel 배포 환경에서는 .env가 없으므로 Vercel 대시보드 → Settings → Environment Variables에서 직접 입력해야 합니다. 입력 후 재배포 필수.
- ➡️이제 6편 Supabase와 7편 OpenAI API를 연결할 준비가 됐습니다. 두 편 모두 .env에 API 키를 보관하는 이 방식을 사용합니다.
❓ 자주 묻는 질문
.env 파일이 뭔가요? 왜 필요한가요?
API 키가 GitHub에 올라가면 어떤 일이 생기나요?
.env 파일을 만들었는데 .gitignore에 추가하는 방법을 모르겠어요
Vercel에 배포할 때 .env 파일의 내용은 어떻게 적용하나요?
API 키 보안 준비 완료 — 이제 진짜 AI 기능을 붙입니다 🤖
.env 습관이 생겼습니다.
이제 실제 외부 서비스를 안전하게 연결할 수 있습니다.
6편에서는 Supabase로 데이터베이스를 연결합니다.
"DB가 뭔지 몰라도 데이터를 저장하는 경험"이 생깁니다.


댓글 쓰기