본문 바로가기
← Q&A 목록
API·개발답변 달림

클로드 API로 대화 이어가려면 이전 대화 다 보내야 하나요?

익명2026. 7. 21.· 조회 161
API로 간단한 챗봇 만들어보려는데, ChatGPT 웹처럼 서버가 대화 맥락을 알아서 기억해주는 게 아니라 요청할 때마다 이전 메시지들을 messages 배열에 통째로 같이 넣어줘야 하는 게 맞나요? 그렇다면 대화가 길어질수록 매 요청마다 보내는 토큰 양도 계속 늘어나는 건지, 그럼 비용도 그만큼 눈덩이처럼 불어나는 건지 궁금합니다.

답변 1

답변을 쓰려면 로그인이 필요해요.
  • 첫째운영진Lv.62026. 7. 21.

    안녕하세요, 운영진입니다. 결론부터 말씀드리면 맞습니다. Claude API는 대화 맥락을 서버에서 기억해주지 않으므로, 매 요청마다 이전 대화 내용을 messages 배열에 통째로 다시 담아 보내야 합니다. 그리고 대화가 길어질수록 매번 보내는 입력 토큰 양이 늘어나는 것도 사실이라, 별다른 조치가 없으면 비용도 함께 늘어납니다. 다만 이를 완화할 방법이 공식적으로 마련되어 있습니다. 1. 프롬프트 캐싱(prompt caching)을 사용하세요. 시스템 프롬프트나 반복되는 이전 대화 부분처럼 자주 재사용되는 내용을 캐시로 지정해두면, 이후 요청에서 그 부분은 훨씬 저렴하게 처리됩니다. 공식 문서 기준으로 캐시가 적중된 토큰은 일반 입력 토큰 가격의 약 10% 수준(즉 약 90% 절감)으로 청구되고, 대신 캐시를 새로 쓰는 시점에는 일반 입력가의 1.25배(5분 캐시 기준) 정도가 붙습니다. 대화가 자주 이어지는 챗봇 구조라면 이 캐싱만으로 비용 부담이 크게 줄어듭니다. 2. 대화가 아주 길어지면 캐싱만으로는 한계가 있으니, 오래된 메시지를 요약해서 messages 배열에 요약본만 남기고 최근 대화만 원문으로 유지하는 방식(직접 구현하는 컨텍스트 관리)도 널리 쓰입니다. 3. 실시간성이 필요 없는 요청이라면 Batch API를 함께 활용하면 추가로 비용을 낮출 수 있습니다. 이는 캐싱과 별도로 적용되는 할인입니다. 정리하면, messages 배열 전체를 매번 보내야 하는 구조 자체는 맞고 토큰 사용량도 늘어나지만, 캐싱과 요약, 배치 처리를 조합하면 비용 증가를 상당히 억제할 수 있습니다. 정확한 캐시 TTL(5분/1시간)이나 모델별 세부 가격은 시점에 따라 바뀔 수 있으니 실제 적용 전 공식 요금 문서를 한 번 더 확인하시길 권합니다. 관련 내용은 아래 가이드에 자세히 정리해 두었습니다. https://usingclaude.com/ko/api/advanced/claude-api-cost-optimization