안녕하세요!
지난 포스팅에서 Vercel로 프로젝트를 배포하는 방법을 알아봤는데요. 배포를 하려다 보면 이런 고민이 생깁니다.
"구글 맵이나 GPT API를 쓰는데, 이 Key를 코드에 적어서 올려도 되나요?"
정답부터 말씀드리면 "절대 안 됩니다."
하지만 배포는 해야 하니 Key를 서버에 등록은 해야겠죠? 오늘은 내 소중한 지갑과 데이터를 지키기 위해, Vercel에서 API Key를 안전하게 다루는 정석적인 방법을 알려드립니다.

🛑 1. 절대 하면 안 되는 행동 (하드코딩)
코드 파일(index.js, page.tsx 등) 안에 API Key를 직접 적는 것을 '하드코딩'이라고 합니다.
// ❌ 위험! 이렇게 작성해서 GitHub에 올리면 큰일 납니다.
const apiKey = "AIzaSyD-1234567890abcdefg";
왜 위험한가요?
GitHub에 코드를 Push하는 순간, 전 세계 해커들의 봇(Bot)이 3초 안에 당신의 Key를 발견하고 탈취합니다. 자고 일어났더니 클라우드 요금이 수백만 원 결제되어 있었다는 괴담의 주인공이 될 수 있습니다.
✅ 2. 해결책: Vercel 환경 변수 (Environment Variables)
Vercel은 비밀스러운 값들을 코드와 분리해서 보관해 주는 디지털 금고 기능을 제공합니다. 바로 환경 변수입니다.
Step 1. Vercel 대시보드에 등록하기
- Vercel 대시보드에서 내 프로젝트를 클릭합니다.
- 상단 탭의 [Settings]로 들어갑니다.
- 좌측 메뉴의 [Environment Variables]를 클릭합니다.
- Key와 Value를 입력하고 [Add]를 누릅니다.
- Key: 변수 이름 (예: GOOGLE_MAPS_KEY)
- Value: 실제 API Key 값 (예: AIzaSyD...)
Step 2. 코드에서 불러오기
이제 코드에서는 실제 Key 값 대신 변수 이름을 사용합니다. GitHub에는 이 코드만 올라가니 안전하죠!
// ✅ 안전! GitHub에는 변수 이름만 올라갑니다.
const apiKey = process.env.GOOGLE_MAPS_KEY;
🧐 3. 잠깐! 키의 용도에 따라 이름이 다릅니다 (중요)
Google API Key는 용도에 따라 설정법이 조금 다릅니다. 특히 Next.js를 쓰신다면 주목하세요!
Case A. 브라우저에서 보여야 하는 키 (예: Google Maps, Firebase)
지도를 띄우려면 브라우저(프론트엔드)가 구글 서버와 통신해야 합니다. 즉, 이 키는 어쩔 수 없이 사용자에게 노출됩니다.
- 변수명 규칙: NEXT_PUBLIC_ 접두사를 꼭 붙여야 합니다.
- 예: NEXT_PUBLIC_GOOGLE_MAPS_API_KEY
- 보안 대책: 아래 **[4번 챕터]**의 구글 콘솔 설정을 반드시 해야 합니다.
Case B. 절대 노출되면 안 되는 키 (예: OpenAI, Google Gemini, Admin SDK)
AI 모델이나 데이터베이스 관리자 키는 서버 내부에서만 써야 합니다.
- 변수명 규칙: 접두사 없이 씁니다.
- 예: GOOGLE_GEMINI_API_KEY
- 이렇게 하면 브라우저에서는 이 값을 읽을 수 없고(undefined), 오직 **서버 사이드(API Routes 등)**에서만 접근 가능해 안전합니다.
🛡️ 4. 마지막 방어선: 구글 클라우드 콘솔 설정
Case A처럼 브라우저에 노출되는 키(NEXT_PUBLIC_...)는 환경 변수로 숨겨도, 개발자 도구(F12)를 열면 누구나 볼 수 있습니다.
"그럼 훔쳐 가서 쓰면 어떡해요?"
그래서 **구글 클라우드 콘솔(Google Cloud Console)**에서 사용처 제한을 걸어야 합니다.
- Google Cloud Console 접속 -> API 및 서비스 -> 사용자 인증 정보 이동.
- 사용 중인 API Key 클릭.
- 애플리케이션 제한사항 설정에서 [웹사이트] 선택.
- 웹사이트 제한 항목에 내 도메인을 등록합니다.
- https://my-project.vercel.app/*
- https://www.custom-domain.com/*
- http://localhost:3000/* (개발용)
이렇게 설정하면 해커가 키를 훔쳐 가도, 여러분의 도메인 외의 사이트에서는 작동하지 않습니다.

📝 3줄 요약
- GitHub에 올리는 코드에는 절대 Key를 적지 마세요.
- Key는 무조건 Vercel Settings > Environment Variables에 등록해서 쓰세요.
- 브라우저에 노출되는 키(Maps 등)는 구글 콘솔 사이트에서 도메인 제한을 꼭 거세요.
보안은 귀찮지만, 사고가 터지면 되돌릴 수 없습니다. 지금 바로 내 프로젝트의 Key 관리가 잘 되어 있는지 확인해 보세요! 🔒
'AI의 활용 가이드 > AI 코딩' 카테고리의 다른 글
| 오디오 파일 100개, 3초 만에 배경음악 넣는 법 (0) | 2025.12.31 |
|---|---|
| 개발자의 필수 교양! 내 코드를 GitHub에 올리는 가장 쉬운 방법 (Git 기초 가이드) 🐱 (0) | 2025.12.05 |
| [Vercel] 프론트엔드 배포, 3분 만에 끝내기! Vercel 완벽 가이드 🚀 (0) | 2025.12.05 |
| Windows에서 Python 3.7과 3.9 버전을 함께 사용하기 (0) | 2025.08.21 |
| 구글 드라이브와 Cloudflare로 내 블로그에 '끊김 없는' 오디오 플레이어 만들기 (무료) (0) | 2025.08.02 |
댓글