AI 입문가이드
API 키란 무엇이며 안전하게 보관하는 방법
AI API 키가 무엇인지, 어디서 발급받는지, 왜 코드와 git에 두면 안 되는지, 첫 호출을 하는 방법과 키가 유출되었을 때 해야 할 일을 설명합니다.

이 페이지의 내용
AI API에 가입하면 가장 먼저 요구하는 것이 키입니다. 이 가이드는 API 키가 무엇인지, 어디서 발급받는지, 어떻게 안전하게 보관하는지, 그리고 키가 있어서는 안 될 곳에 노출되었을 때 어떻게 해야 하는지 설명합니다.
API 키란 무엇인가#
API 키는 요청을 보내는 사람이 누구인지 서비스에 알려주는 긴 문자열입니다. 프로그램을 위한 비밀번호라고 생각하면 됩니다. 스크립트가 모든 요청에 키를 함께 보내면, 서비스는 이를 사용해 계정을 찾고 요청 비용을 잔액에서 차감합니다.
여기서 두 가지가 따라옵니다:
- 키를 가진 사람은 누구든 잔액을 사용할 수 있습니다. 서비스는 당신과 키를 복사한 사람을 구별할 수 없습니다.
- 키는 모델도 아니고 잔액도 아닙니다. 키는 통행증일 뿐입니다. 잔액은 별도로 충전하는 것이며, 같은 키로 계정에서 사용할 수 있는 모든 모델을 이용할 수 있습니다.
요청 비용은 토큰으로 계산됩니다. 토큰이 처음이라면 AI에서 토큰이란 무엇인가?부터 시작하세요.
키를 발급받는 곳#
모든 AI 서비스는 자체 대시보드에서 키를 발급합니다. 예를 들어 DeepSeek의 공식 API는 platform.deepseek.com/api_keys에 API 키 페이지가 있으며, 문서에서는 DEEPSEEK_API_KEY 환경 변수에서 키를 읽습니다(2026년 10월 21일 확인). 일반적인 흐름은 거의 모든 곳에서 동일합니다:
- 계정을 만듭니다.
- 대시보드에서 API 키 페이지를 엽니다.
- 새 키를 만드는 버튼을 누르고 이름을 지정합니다. 예를 들어
my-first-script처럼요. - 키를 즉시 복사합니다. 많은 서비스가 키를 한 번만 보여줍니다.
CheapTokens에서는 계정 생성부터 키 발급까지의 단계가 CheapTokens로 첫 API 요청하기에 나와 있습니다. CheapTokens는 선불 USD 잔액으로 작동합니다. 모든 모델에 하나의 잔액을 사용합니다. 잔액이 비어 있어 요청이 실패하면 "토큰이 부족합니다" 오류를 참고하세요.
키가 절대 있어서는 안 되는 곳#
대부분의 유출은 해킹이 아니라 복사-붙여넣기 실수입니다:
- 코드에 키를 직접 작성하고(
api_key="sk-...") GitHub에 푸시하는 경우; - 스크린샷, 채팅 메시지, 포럼 질문에 키가 포함된 경우;
- 프런트엔드 코드(웹 페이지나 모바일 앱)에 키가 있는 경우: 누구나 열어서 읽을 수 있습니다;
- git에 커밋된
.env파일.
마지막 경우가 가장 흔합니다. 다음 커밋에서 파일을 삭제하더라도 키는 git 기록에 남아 있으므로, 한 번이라도 커밋된 키는 유출된 것으로 취급해야 합니다.
키를 환경 변수에 보관하기#
환경 변수는 코드가 아니라 시스템에 존재하는 이름이 붙은 값입니다. 프로그램이 시작할 때 이 값을 읽으므로 코드를 안전하게 공유할 수 있고 키는 당신의 머신에 남습니다.
Linux 또는 macOS에서는 현재 터미널에 대해 다음과 같이 설정합니다:
export CHEAPTOKENS_API_KEY="YOUR_API_KEY"Windows PowerShell에서는:
$env:CHEAPTOKENS_API_KEY = "YOUR_API_KEY"이 설정은 터미널을 닫을 때까지 유지됩니다. 세션 간에 유지하려면 셸 프로필에 해당 줄을 넣거나, 프로젝트에 .env 파일을 사용하고 첫 커밋 전에 .gitignore에 추가하세요:
# .gitignore
.env그런 다음 코드에서 키를 읽습니다. 코드에 직접 입력하지 마세요:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"], # read from the environment, not written in the code
)변수가 없으면 os.environ[...]이 즉시 오류와 함께 프로그램을 중단합니다. 이는 빈 키로 요청을 보내는 것보다 낫습니다.
첫 호출 해보기#
CheapTokens는 OpenAI Chat Completions 및 Anthropic Messages 형식을 지원하므로 표준 SDK가 작동합니다. 기본 URL과 키만 변경하면 됩니다. 다음은 MiniMaxAI/로 하는 전체 테스트입니다:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[{"role": "user", "content": "Explain what an API key is in two sentences."}],
max_tokens=200,
)
print(response.choices[0].message.content)curl로도 동일하게 할 수 있습니다. 셸이 변수를 치환하므로 키가 명령에 나타나지 않습니다:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "MiniMaxAI/MiniMax-M2.7", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}'이런 짧은 테스트는 저렴합니다. 예를 들어 입력 토큰 1,000개와 출력 토큰 500개인 요청은 현재 가격으로 $0.00013입니다. MiniMax-M2.7은 180K 컨텍스트를 가지며 최대 8,192 토큰의 답변을 제공하므로 첫 실험에 편안한 모델입니다. 답변이 문장 중간에 멈추면 AI 답변이 문장 중간에 멈추는 이유는?를 참고하세요.
모델 id는 다른 서비스가 아니라 CheapTokens 문서에서 복사하세요. 제공자마다 모델 이름이 다릅니다.
키를 안전하게 유지하는 습관#
- 프로젝트마다 하나의 키. 하나가 유출되면 그것만 교체하면 되고 다른 것은 중단되지 않습니다.
- 키에 이름을 붙이세요. 어디에 사용되는지 알 수 있게(
laptop-script,telegram-bot) 하면 교체 후 무엇을 업데이트해야 하는지 알 수 있습니다. - 학습 중에는 잔액을 작게 유지하세요. 선불 잔액을 사용하면 유출된 키로 인한 피해는 잔액에 있는 금액으로 제한되지만, 그래도 당신의 돈입니다.
- 키를 사람이나 AI 어시스턴트와의 채팅에 붙여넣지 마세요. 로그와 스크린샷에서도 제거하세요.
- 브라우저나 모바일 앱에 키를 넣지 마세요. 당신이 제어하는 서버에서 API를 호출하고, 앱은 그 서버와 통신하게 하세요.
키가 유출되었을 때 해야 할 일#
공개 저장소에 키를 푸시했거나, 메시지로 보냈거나, 확실하지 않다면 이미 다른 사람 손에 들어간 것으로 가정하고 행동하세요:
- 먼저 키를 폐기하세요. 키를 만든 페이지를 열고 삭제하거나 비활성화하세요. 다른 무엇보다 먼저 하세요. 정리는 그다음입니다.
- 새 키를 만드세요. 새 이름으로요.
- 사용된 모든 곳에서 교체하세요: 환경 변수,
.env파일, 서버, 앱, 도구. - 잔액과 사용량을 확인하세요. 당신이 하지 않은 요청은 이전 키가 사용되었다는 신호입니다.
- 소스를 정리하세요. 코드에서 키를 제거하고
.env를.gitignore에 추가하세요. 파일을 삭제해도 git 기록에서 키가 제거되지 않으므로, 기록을 다시 쓰는 것보다 1단계가 더 중요합니다.
순서가 중요합니다. 폐기된 키는 오래된 커밋에 남아 있어도 무해합니다.
다음 단계#
- 키로 첫 요청을 해보세요: CheapTokens로 첫 API 요청하기.
- 무엇에 비용을 지불하는지 이해하세요: AI에서 토큰이란 무엇인가?.
- 잔액이 떨어지면 충전하세요: "토큰이 부족합니다" 오류.
시도할 준비가 되셨나요? CheapTokens 키를 발급받아 CHEAPTOKENS_로 설정하고 위 예제를 실행하세요.
모든 모델의 엔드포인트, 모델 id, 제한은 CheapTokens 문서에 있습니다.



