20

LLM API는 어떻게 작동하는가

Day 3: API 활용 & 토큰 이해

학습 목표

REST API를 통한 LLM 호출 흐름을 이해한다 OpenAI API의 요청/응답 구조를 파악한다 API 키 관리의 보안 원칙을 이해한다

LLM API 호출 흐름


전체 흐름

[클라이언트]                              [OpenAI 서버]
    │                                         │
    │  1. HTTP POST 요청                     │
    │  ─────────────────────────────────→     │
    │  {                                      │
    │    model: "gpt-4o-mini",               │
    │    messages: [...],                     │
    │    temperature: 0.3                     │
    │  }                                      │
    │                                         │
    │  2. LLM이 추론 수행                    │
    │                                    ← ─ ─│
    │  {                                      │
    │    choices: [{                           │
    │      message: { content: "답변..." }    │
    │    }],                                  │
    │    usage: {                              │
    │      prompt_tokens: 150,                │
    │      completion_tokens: 300,            │
    │      total_tokens: 450                  │
    │    }                                    │
    │  }                                      │

API 키 보안 관리

절대 하면 안 되는 것:

# 나쁜 예 1: 코드에 직접 입력
client = OpenAI(api_key="sk-abc123...")  # 절대 금지!

# 나쁜 예 2: Git에 .env 커밋
# .gitignore에 .env가 없으면 API 키가 GitHub에 노출

올바른 방법:

# 좋은 예: .env 파일 + dotenv
# .env 파일 (Git에 절대 커밋하지 않음)
# OPENAI_API_KEY=sk-abc123...

from dotenv import load_dotenv
import os

load_dotenv()
client = OpenAI()  # 자동으로 OPENAI_API_KEY 환경변수 사용
# .gitignore에 반드시 추가
echo ".env" >> .gitignore
echo ".env.local" >> .gitignore

API 키 유출 사고 실제 사례

[실제 사고]
한 회사가 GitHub public 저장소에 .env를 커밋했다.
봇이 5분 만에 키를 탈취.
하룻밤 사이에 $5,000 청구.
(GPT-4를 이용한 대량 생성)

[예방법]
1. .gitignore에 .env 추가 (프로젝트 생성 즉시)
2. .env.example 파일로 형식만 공유
3. API 사용량 제한 설정 (OpenAI 대시보드)
4. 키 주기적 교체

OpenAI vs Anthropic API 비교

항목OpenAIAnthropic
모델명gpt-4o, gpt-4o-miniclaude-sonnet-4-6, claude-haiku-4-5-20251001
라이브러리openaianthropic
메시지 구조messages 배열messages 배열 + system 분리
스트리밍stream=Truestream=True
가격대중간약간 높음
강점범용, 빠른 응답긴 컨텍스트, 정확한 지시 따르기
AI로 학습하기 — 꿀팁
LLM API 요청/응답 구조 이해 검증AI 학습 팁

REST API로 LLM을 호출하는 흐름에서 흔히 오해하는 부분(role 순서, temperature 범위, max_tokens 위치 등)을 AI에게 확인하세요.

LLM API 호출에 대한 저의 이해를 검증해주세요. 제가 작성한 Python 코드입니다: messages=[{'role':'user','content':'불량 원인 분석해줘'},{'role':'system','content':'당신은 품질 엔지니어입니다'}], temperature=2.5, max_tokens=100000. 이 코드에서 (1) API 스펙 위반 또는 비효율적인 부분, (2) 각 문제가 실제 제조 AI 응답 품질에 미치는 영향, (3) 올바르게 수정된 코드를 제시해주세요.
이 팁이 도움이 됐나요?