콘텐츠로 이동

프로덕션 체크리스트 — 서비스에 필요한 부가 기능

원시 모델 API "호출"과 운영 가능한 AI 서비스는 다릅니다. 모델 응답 외에 아래 부가 기능이 있어야 실제 서비스가 됩니다. 대부분 범용 패턴이라 어떤 스택에도 적용됩니다.

1. 인증 · 키 관리

  • [ ] API 키 발급/회수 흐름 (프로젝트 단위). 개발키·운영키 분리.
  • [ ] 키를 시크릿 매니저/환경변수로만. 코드·프론트엔드·커밋 금지.
  • [ ] 프론트엔드는 자체 백엔드를 프록시로 두고, 키는 서버에만.

2. 한도 · 남용 방지

  • [ ] Rate limit — 키별 분당 요청(RPM)·일일 토큰(TPM). 초과 시 429.
  • [ ] 동시성 제한 — 폭주 시 큐잉·백프레셔.
  • [ ] 입력 크기 제한 — 초대형 프롬프트·문서 거부.

3. 비용 · 사용량

  • [ ] 토큰·요청 계측 (프로젝트·모델·기간별). 비용·지연 가이드.
  • [ ] 비용 추정 — 기능별 예상 토큰·지연 표시.
  • [ ] 작업에 맞는 크기의 모델 선택 (요약·분류는 소형, 복합추론만 대형).

4. 안전 · 프라이버시

  • [ ] 입력/출력 가드레일 — 유해 요청 차단, 안전 모드(off/observe/enforce) 옵션.
  • [ ] PII 마스킹 — 개인정보 탐지·마스킹·보존정책(미보존 기본).
  • [ ] 출력 필터 — 비밀 패턴(sk-, password, 토큰 등) 마스킹·거절.
  • [ ] 인젝션 경계 — 문서/도구 결과를 그대로 신뢰하지 말고 시스템 지시와 분리.

5. 데이터

  • [ ] 입력 보존 정책 — 기본 미보존, 필요 시 보존기간·삭제.
  • [ ] 벡터 스토어 — 소량은 인메모리, 영속·대량은 pgvector/Qdrant.
  • [ ] 악성파일 검사 — 업로드 문서 스캔.

6. 신뢰성

  • [ ] 헬스체크 + 폴백 — 죽은 백엔드 제외, 폴백 모델 체인.
  • [ ] 재시도503/타임아웃에 지수 백오프.
  • [ ] 타임아웃 — 요청·스트림별 상한.

7. 관측 · 감사

  • [ ] 로깅 — 요청·토큰·지연·실패율. 지원 봇은 인용 출처를 로그에 남겨 유출 추적.
  • [ ] 감사 로그 — 누가 무엇을 했는지(운영).
  • [ ] 대시보드 — 기관별·모델별 통계.

8. 배포

  • [ ] 컨테이너화 — docker-compose로 백엔드+의존성 한 번에.
  • [ ] HTTPS 리버스 프록시 — 스트리밍 버퍼링 비활성 주의(트러블슈팅).
  • [ ] 환경 분리 — dev/staging/prod, 시크릿 분리.
  • [ ] 생성/사용자 코드 분리 — 재생성해도 업무 로직 보존.

9. 지원 · 문서

  • [ ] 공개 문서 — 개념·API·예제(이 저장소 같은).
  • [ ] 지원 챗봇공개 FAQ만 코퍼스로(내부 운영 문서 금지). allowlist 기반 인제스트.
  • [ ] 에러 메시지 — 사용자 친화(예: 503 → "일시적으로 붐빔, 잠시 후 재시도").

원칙: 부가 기능은 대부분 범용 인프라 패턴입니다. 내부 구현을 노출할 필요 없이, 위 체크리스트를 각자 스택으로 구현하면 됩니다.