보안
API 키(API Key)
API 키는 외부 서비스가 요청자를 식별하고 사용 권한과 사용량을 확인하는 비밀 문자열입니다. 비밀번호처럼 공개하지 않아야 합니다.
쉬운 설명
API 키는 외부 서비스가 요청자를 식별하고 사용 권한과 사용량을 확인하는 비밀 문자열입니다. 비밀번호처럼 공개하지 않아야 합니다.
배경과 쓰임까지 이해하기
조금 더 자세히
API 키(API Key)는 외부 서비스를 내 앱에서 사용할 때 필요한 비밀 문자열입니다. 보통 AI 서비스, 지도 서비스, 결제 서비스, 이메일 발송 서비스처럼 외부 API를 호출하려면 그 서비스가 허가된 사용자인지 확인해야 합니다. 이때 API 키(API Key)를 사용합니다.
예를 들어 OpenAI API 호출, Stripe 결제 연동, Google Maps 표시, Resend 이메일 발송, 외부 데이터 조회 등에 쓰입니다. API 키(API Key)가 노출되면 다른 사람이 내 권한으로 서비스를 사용해 비용이 발생하거나 데이터가 유출될 수 있습니다. 한마디로, API 키(API Key)는 외부 서비스를 사용할 수 있게 해주는 비밀 열쇠입니다.
실제로는 이렇게 만나요
OpenAI API를 호출할 때 코드에 키를 직접 적지 않고 `.env` 파일이나 배포 서비스의 환경변수(Environment Variable)에 넣어 사용합니다.
- 이런 거 할 때 나와요 AI, 결제, 지도, 데이터베이스(Database) 같은 서비스를 붙일 때 API 키(API Key)가 필요합니다. 이 키가 노출되면 비용 발생이나 데이터 유출로 이어질 수 있습니다.
- 이렇게 생겼어요 `sk-...`, `ghp_...`처럼 긴 문자열로 보이고, 보통 `.env`나 서비스 설정 화면에 들어갑니다.
- 나오는 화면 예시 OpenAI, Anthropic, GitHub 같은 서비스의 API Keys 설정 화면이나 Vercel의 Environment Variables 화면
API 키를 프론트엔드 코드에 넣어도 되나요?
비밀 API 키는 넣으면 안 됩니다. 브라우저에 전달된 코드는 사용자가 확인할 수 있으므로, 서버 함수가 키를 보관하고 대신 API를 호출하는 구조로 만들어야 합니다.
헷갈리기 쉬운 점
브라우저로 내려가는 클라이언트 코드에 비밀 API 키(API Key)를 넣으면 사용자가 볼 수 있습니다. 서버 쪽에서 호출하도록 분리해야 합니다.
왜 알아두면 좋을까요?
AI, 결제, 지도, 데이터베이스(Database) 같은 서비스를 붙일 때 API 키(API Key)가 필요합니다. 이 키가 노출되면 비용 발생이나 데이터 유출로 이어질 수 있습니다.
Checklist
실제로 볼 때 확인할 것
- 01
코드에 직접 적지 않는다
- 02
GitHub(깃허브)에 올리지 않는다
- 03
노출되면 즉시 폐기하고 재발급한다