블로그로 돌아가기

AI 입문가이드

API 키란 무엇이며 안전하게 보관하는 방법

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

작성자: CheapTokens Team 게시됨 업데이트됨읽는 시간 5분

표지: AI 계정의 비밀번호로서 환경 변수에 보관된 API 키
이 페이지의 내용
  1. API 키란 무엇인가
  2. 키를 발급받는 곳
  3. 키가 절대 있어서는 안 되는 곳
  4. 키를 환경 변수에 보관하기
  5. 첫 호출 해보기
  6. 키를 안전하게 유지하는 습관
  7. 키가 유출되었을 때 해야 할 일
  8. 다음 단계

AI API에 가입하면 가장 먼저 요구하는 것이 키입니다. 이 가이드는 API 키가 무엇인지, 어디서 발급받는지, 어떻게 안전하게 보관하는지, 그리고 키가 있어서는 안 될 곳에 노출되었을 때 어떻게 해야 하는지 설명합니다.

API 키란 무엇인가#

API 키는 요청을 보내는 사람이 누구인지 서비스에 알려주는 긴 문자열입니다. 프로그램을 위한 비밀번호라고 생각하면 됩니다. 스크립트가 모든 요청에 키를 함께 보내면, 서비스는 이를 사용해 계정을 찾고 요청 비용을 잔액에서 차감합니다.

여기서 두 가지가 따라옵니다:

  • 키를 가진 사람은 누구든 잔액을 사용할 수 있습니다. 서비스는 당신과 키를 복사한 사람을 구별할 수 없습니다.
  • 키는 모델도 아니고 잔액도 아닙니다. 키는 통행증일 뿐입니다. 잔액은 별도로 충전하는 것이며, 같은 키로 계정에서 사용할 수 있는 모든 모델을 이용할 수 있습니다.

요청 비용은 토큰으로 계산됩니다. 토큰이 처음이라면 AI에서 토큰이란 무엇인가?부터 시작하세요.

키를 발급받는 곳#

모든 AI 서비스는 자체 대시보드에서 키를 발급합니다. 예를 들어 DeepSeek의 공식 API는 platform.deepseek.com/api_keys에 API 키 페이지가 있으며, 문서에서는 DEEPSEEK_API_KEY 환경 변수에서 키를 읽습니다(2026년 10월 21일 확인). 일반적인 흐름은 거의 모든 곳에서 동일합니다:

  1. 계정을 만듭니다.
  2. 대시보드에서 API 키 페이지를 엽니다.
  3. 새 키를 만드는 버튼을 누르고 이름을 지정합니다. 예를 들어 my-first-script처럼요.
  4. 키를 즉시 복사합니다. 많은 서비스가 키를 한 번만 보여줍니다.

CheapTokens에서는 계정 생성부터 키 발급까지의 단계가 CheapTokens로 첫 API 요청하기에 나와 있습니다. CheapTokens는 선불 USD 잔액으로 작동합니다. 모든 모델에 하나의 잔액을 사용합니다. 잔액이 비어 있어 요청이 실패하면 "토큰이 부족합니다" 오류를 참고하세요.

키가 절대 있어서는 안 되는 곳#

대부분의 유출은 해킹이 아니라 복사-붙여넣기 실수입니다:

  • 코드에 키를 직접 작성하고(api_key="sk-...") GitHub에 푸시하는 경우;
  • 스크린샷, 채팅 메시지, 포럼 질문에 키가 포함된 경우;
  • 프런트엔드 코드(웹 페이지나 모바일 앱)에 키가 있는 경우: 누구나 열어서 읽을 수 있습니다;
  • git에 커밋된 .env 파일.

마지막 경우가 가장 흔합니다. 다음 커밋에서 파일을 삭제하더라도 키는 git 기록에 남아 있으므로, 한 번이라도 커밋된 키는 유출된 것으로 취급해야 합니다.

키를 환경 변수에 보관하기#

환경 변수는 코드가 아니라 시스템에 존재하는 이름이 붙은 값입니다. 프로그램이 시작할 때 이 값을 읽으므로 코드를 안전하게 공유할 수 있고 키는 당신의 머신에 남습니다.

Linux 또는 macOS에서는 현재 터미널에 대해 다음과 같이 설정합니다:

bash
export CHEAPTOKENS_API_KEY="YOUR_API_KEY"

Windows PowerShell에서는:

powershell
$env:CHEAPTOKENS_API_KEY = "YOUR_API_KEY"

이 설정은 터미널을 닫을 때까지 유지됩니다. 세션 간에 유지하려면 셸 프로필에 해당 줄을 넣거나, 프로젝트에 .env 파일을 사용하고 첫 커밋 전에 .gitignore에 추가하세요:

text
# .gitignore
.env

그런 다음 코드에서 키를 읽습니다. 코드에 직접 입력하지 마세요:

python
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/MiniMax-M2.7로 하는 전체 테스트입니다:

python
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로도 동일하게 할 수 있습니다. 셸이 변수를 치환하므로 키가 명령에 나타나지 않습니다:

bash
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를 호출하고, 앱은 그 서버와 통신하게 하세요.

키가 유출되었을 때 해야 할 일#

공개 저장소에 키를 푸시했거나, 메시지로 보냈거나, 확실하지 않다면 이미 다른 사람 손에 들어간 것으로 가정하고 행동하세요:

  1. 먼저 키를 폐기하세요. 키를 만든 페이지를 열고 삭제하거나 비활성화하세요. 다른 무엇보다 먼저 하세요. 정리는 그다음입니다.
  2. 새 키를 만드세요. 새 이름으로요.
  3. 사용된 모든 곳에서 교체하세요: 환경 변수, .env 파일, 서버, 앱, 도구.
  4. 잔액과 사용량을 확인하세요. 당신이 하지 않은 요청은 이전 키가 사용되었다는 신호입니다.
  5. 소스를 정리하세요. 코드에서 키를 제거하고 .env를 .gitignore에 추가하세요. 파일을 삭제해도 git 기록에서 키가 제거되지 않으므로, 기록을 다시 쓰는 것보다 1단계가 더 중요합니다.

순서가 중요합니다. 폐기된 키는 오래된 커밋에 남아 있어도 무해합니다.

다음 단계#

시도할 준비가 되셨나요? CheapTokens 키를 발급받아 CHEAPTOKENS_API_KEY로 설정하고 위 예제를 실행하세요.

모든 모델의 엔드포인트, 모델 id, 제한은 CheapTokens 문서에 있습니다.