본문 바로가기
[IT] 이야기/[AI] 이야기

AI 토큰 비용 아끼는 방법 5가지, Claude Code·ChatGPT API 절약 팁

by 헤이나우
반응형

AI 토큰 비용은 질문을 짧게 쓰는 것만으로 크게 줄어들지 않는다. 저렴한 모델 선택, 대화 문맥 정리, 출력 길이 제한, 프롬프트 캐싱, Claude Code 스킬 최적화를 함께 적용해야 실제 청구 금액을 낮출 수 있다.

비용 절감 효과가 큰 순서

방법절감 효과적용 난이도잘 맞는 작업

작업별로 모델 나누기 매우 큼 쉬움 분류, 요약, 코드 수정
오래된 대화 문맥 제거 쉬움 Claude Code 장시간 작업
답변 길이 제한하기 쉬움 글쓰기, JSON 생성, 분석
프롬프트 캐싱 활용 반복 작업에서 매우 큼 보통 공통 지침, 긴 문서, 자동화
스킬·MCP·지침 경량화 누적 효과 큼 보통 Claude Code, 에이전트 작업

토큰 비용은 보통 입력 토큰과 출력 토큰으로 나뉜다. 여기에 웹 검색, 파일 검색, 코드 실행 같은 도구 호출 비용이 별도로 붙을 수 있다. 특히 출력 토큰은 입력 토큰보다 단가가 높은 모델이 많기 때문에, 필요 이상으로 긴 답변을 생성하지 않도록 관리하는 것이 중요하다. (OpenAI Developers)

1. 모든 작업에 가장 비싼 모델을 쓰지 않는다

가장 효과가 큰 방법은 작업 난이도에 따라 모델을 나누는 것이다.

오탈자 교정, 텍스트 분류, 키워드 추출, 일정한 형식의 JSON 생성처럼 정답 범위가 명확한 작업은 소형 모델로도 충분한 경우가 많다. 반대로 복잡한 설계 판단, 여러 파일에 걸친 디버깅, 중요한 코드 리뷰는 상위 모델이 더 적합하다.

OpenAI도 먼저 필요한 정확도를 확보한 뒤, 그 정확도를 유지할 수 있는 가장 저렴하고 빠른 모델을 찾는 방식을 권장한다. (OpenAI Developers)

실전 모델 분배 예시

  • 단순 분류·태그 생성: 저가형 또는 소형 모델
  • 문서 요약·형식 변환: 중간급 모델
  • 코드 구조 분석·복잡한 추론: 상위 모델
  • 최종 검수: 필요한 경우에만 상위 모델
  • 반복 처리: 소형 모델로 먼저 돌리고 실패한 건만 상위 모델로 재처리

Claude Code에서는 대부분의 일반 코딩 작업에 Sonnet 계열을 사용하고, 복잡한 아키텍처 결정이나 다단계 추론이 필요한 순간에만 Opus 계열로 바꾸는 방식이 권장된다. 단순한 서브에이전트 작업에는 더 가벼운 모델을 지정할 수도 있다. (Claude Platform Docs)

비용을 줄이겠다고 처음부터 가장 저렴한 모델만 고집할 필요는 없다. 성능이 부족해 같은 요청을 여러 번 다시 보내면 오히려 총토큰이 늘어날 수 있다.

2. 오래된 대화를 계속 끌고 가지 않는다

Claude Code나 ChatGPT API의 대화가 길어질수록 이전 메시지, 코드, 도구 실행 결과가 다음 요청의 문맥에 포함될 수 있다. 처음에는 짧았던 요청도 세션이 길어지면 매번 수만 토큰을 다시 처리하는 상황이 생긴다.

Claude Code 공식 문서는 서로 관련 없는 작업으로 전환할 때 /clear를 사용해 새 문맥에서 시작하라고 안내한다. 현재 세션을 다시 찾아야 한다면 먼저 /rename으로 이름을 붙이고, 나중에 /resume으로 불러올 수 있다. (Claude Platform Docs)

Claude Code에서 자주 쓸 명령어

/usage

현재 토큰 사용량을 확인한다.

/context

어떤 항목이 문맥 공간을 차지하는지 확인한다.

/compact

기존 대화를 요약해 문맥 크기를 줄인다.

/compact 테스트 결과와 변경한 파일을 중심으로 보존

요약 과정에서 반드시 남겨야 할 내용을 지정한다.

/clear

관련 없는 새 작업을 시작할 때 기존 문맥을 비운다.

Claude Code는 문맥 한도에 가까워지면 자동으로 이전 대화를 압축하지만, 자동 압축이 시작될 때까지 무작정 긴 세션을 유지하는 것보다 작업 단위로 직접 정리하는 편이 비용 관리에 유리하다. (Claude Platform Docs)

3. 출력 형식과 최대 분량을 먼저 제한한다

프롬프트를 지나치게 짧게 만드는 것보다 답변이 어디까지 나오면 되는지 명확하게 정하는 편이 효과적이다.

비용이 늘어나기 쉬운 요청

이 코드를 자세히 분석하고 문제를 전부 설명해 줘.

이 요청에는 설명 범위와 출력 형식이 없다. 모델이 코드 요약, 오류 원인, 개선안, 예시 코드, 추가 조언까지 길게 생성할 가능성이 있다.

비용을 관리하기 쉬운 요청

실행 오류의 직접 원인만 찾아줘.

출력 형식:
1. 원인 3개 이내
2. 수정할 파일과 줄
3. 최소 수정 코드
4. 전체 설명은 500자 이내

문제가 없는 부분은 설명하지 마.

API를 사용한다면 프롬프트 지시만 믿지 말고 max_output_tokens 같은 출력 제한값도 함께 설정하는 편이 안전하다.

또한 추론 모델은 답변으로 보이는 텍스트 외에 내부 추론 토큰을 사용할 수 있다. 간단한 작업은 추론 강도를 낮추고, 복잡한 문제에서만 높은 추론 설정을 사용하는 방식이 비용 절감에 도움이 된다. OpenAI는 저비용 작업에 더 작은 모델을 사용하거나 추론 강도를 조절할 수 있도록 안내하고 있다. (OpenAI Developers)

바로 쓸 수 있는 절약형 프롬프트

필요한 결과만 출력해 줘.

- 설명: 5문장 이내
- 코드: 변경된 부분만
- 예시는 1개만
- 같은 내용 반복 금지
- 배경 설명 생략
- 확실하지 않은 내용은 추측하지 말고 표시

다만 너무 낮은 출력 한도를 지정하면 답변이 중간에 끊겨 재요청이 필요할 수 있다. 한 번에 완성될 정도의 여유는 남겨야 한다.

반응형

4. 반복되는 긴 지침은 프롬프트 캐싱을 활용한다

매번 같은 시스템 프롬프트, 작업 규칙, 코드 스타일, 제품 설명서, 예시 문서를 보내는 서비스라면 프롬프트 캐싱의 효과가 크다.

OpenAI의 프롬프트 캐싱은 일정 조건을 만족하는 요청에서 반복되는 프롬프트 접두사를 재사용해 비용과 응답 시간을 낮춘다. 캐시 적중률을 높이려면 변하지 않는 공통 지침과 예시는 앞에 배치하고, 사용자 질문이나 날짜처럼 매번 달라지는 내용은 뒤에 배치해야 한다. (OpenAI Developers)

캐싱에 불리한 구조

사용자 이름: 김OO
오늘 날짜: 2026-07-30
오늘의 질문: ...

[매번 같은 5,000토큰 분량의 업무 지침]

앞부분이 요청마다 달라지면 뒤에 있는 공통 지침까지 동일한 접두사로 인식되지 않을 수 있다.

캐싱에 유리한 구조

[매번 같은 업무 지침]
[고정된 출력 형식]
[공통 예시]

사용자 이름: 김OO
오늘 날짜: 2026-07-30
오늘의 질문: ...

OpenAI API에서는 최근 모델에서 프롬프트 캐싱을 지원하며, 지원 조건과 쓰기·읽기 과금 방식은 모델 세대에 따라 다를 수 있다. 사용량 응답의 캐시 관련 토큰 항목을 확인해 실제 절감 여부를 측정해야 한다. (OpenAI Developers)

Anthropic API도 반복되는 시스템 지침, 긴 문맥, 다수의 예시, 장시간 대화에 프롬프트 캐싱을 사용할 수 있다. 자동 캐싱이나 명시적 캐시 지점을 설정할 수 있으며, 기본 캐시 수명과 별도의 장기 캐시 옵션이 제공된다. (Claude Platform Docs)

중요한 점은 캐싱이 입력 토큰 자체를 없애는 기능은 아니라는 것이다. 반복 요청에서 같은 앞부분을 다시 처리하는 비용을 낮추는 기능에 가깝다. 한 번만 사용하는 프롬프트라면 캐시 쓰기 비용 때문에 절감 효과가 없거나 오히려 불리할 수 있다.

5. Claude Code 스킬과 MCP를 가볍게 만든다

Claude Code의 스킬은 자주 사용하는 작업 절차와 지침을 파일로 저장해 반복 활용하는 기능이다. 잘 만든 스킬은 불필요한 설명과 재질문을 줄여 전체 사용량을 낮출 수 있다.

하지만 스킬을 설치한다고 토큰 단가가 내려가는 것은 아니다. 스킬 내용이 지나치게 길거나 관련 없는 지침까지 항상 불러오면 오히려 문맥이 커질 수 있다.

토큰을 아끼는 스킬 작성 원칙

  • 하나의 스킬에는 하나의 작업만 넣는다.
  • 긴 배경 설명보다 실행 조건과 절차를 짧게 적는다.
  • 모든 프로젝트에 필요하지 않은 지침은 전역 설정에 넣지 않는다.
  • 예시는 꼭 필요한 1~2개만 남긴다.
  • 대용량 문서는 항상 로드하지 말고 필요할 때만 참조한다.
  • 모델이 이미 알고 있는 일반적인 설명은 반복하지 않는다.
  • 결과물 형식과 완료 조건을 명확히 적는다.

비효율적인 스킬 예시

당신은 세계 최고의 개발자입니다.
항상 신중하고 정확하게 작업해야 합니다.
코드를 작성할 때는 좋은 코드를 작성해야 합니다.
모든 가능성을 충분히 생각하고 자세히 설명합니다.
...

이런 문장은 길지만 실제 작업 조건은 거의 전달하지 못한다.

경량 스킬 예시

# 오류 수정

사용 조건:
- 실행 오류 또는 테스트 실패 수정 요청

절차:
1. 오류가 재현되는 명령을 확인한다.
2. 직접 원인이 있는 파일만 읽는다.
3. 최소 범위로 수정한다.
4. 관련 테스트만 실행한다.

출력:
- 원인 3줄
- 변경 파일
- 테스트 결과
- 남은 위험

금지:
- 관련 없는 리팩터링
- 전체 파일 재작성
- 요청하지 않은 의존성 추가

이처럼 스킬을 짧고 구체적으로 만들면 모델이 해야 할 작업을 빠르게 판단할 수 있고, 불필요한 탐색과 긴 설명도 줄일 수 있다.

MCP 서버도 많이 연결한다고 항상 좋은 것은 아니다. Claude Code 공식 문서에 따르면 사용하지 않는 MCP 서버는 비활성화하고, 가능한 경우 gh, aws, gcloud 같은 CLI 도구를 사용하는 편이 문맥 효율 면에서 유리할 수 있다. /context를 실행하면 MCP와 지침이 차지하는 공간을 확인할 수 있다. (Claude Platform Docs)

서브에이전트와 에이전트 팀도 주의해야 한다. 에이전트가 여러 개 실행되면 각각 별도의 문맥을 사용하므로 토큰 소비량이 대체로 활성 에이전트 수와 작업 시간에 따라 증가한다. 단순 작업에 여러 에이전트를 동시에 붙이는 것은 절약 방법이 아니다. (Claude Platform Docs)

실제로 비용이 새는 대표적인 패턴

다음 항목이 여러 개 겹치면 모델 가격보다 사용 방식이 비용에 더 큰 영향을 줄 수 있다.

  • 한 대화에서 서로 다른 작업을 계속 수행한다.
  • 프로젝트 전체 파일을 매번 읽게 한다.
  • 오류 하나를 고치는데 전체 코드 리뷰를 요청한다.
  • 결과물 분량을 지정하지 않는다.
  • 모든 요청에 가장 비싼 모델을 사용한다.
  • 같은 긴 지침을 매번 조금씩 다르게 보낸다.
  • 필요하지 않은 MCP 서버와 스킬을 계속 활성화한다.
  • 서브에이전트를 과도하게 병렬 실행한다.
  • 웹 검색과 코드 실행을 습관적으로 켠다.
  • 실패한 요청을 수정하지 않고 그대로 반복한다.

바로 적용할 절약 설정

Claude Code를 사용한다면 다음 순서로 점검하면 된다.

  1. /usage로 현재 사용량을 확인한다.
  2. /context로 문맥을 차지하는 항목을 찾는다.
  3. 관련 없는 작업으로 넘어갈 때 /clear를 사용한다.
  4. 대부분의 작업은 중간급 모델로 처리한다.
  5. 복잡한 판단이 필요할 때만 상위 모델로 전환한다.
  6. 사용하지 않는 MCP 서버를 끈다.
  7. 스킬과 CLAUDE.md에서 중복 지침을 삭제한다.
  8. 결과물 분량과 수정 범위를 요청에 명시한다.

API를 사용한다면 다음 항목을 함께 적용한다.

모델 라우팅
+ 최대 출력 토큰 제한
+ 추론 강도 조절
+ 정적 프롬프트 앞쪽 배치
+ 프롬프트 캐싱
+ 사용량 로그 기록

사용량 로그에는 모델명, 입력 토큰, 캐시 입력 토큰, 출력 토큰, 도구 호출 횟수와 요청별 비용을 남기는 편이 좋다. 그래야 어떤 기능에서 비용이 새는지 찾을 수 있다.

짧은 마무리

토큰 비용을 가장 빠르게 줄이는 방법은 프롬프트를 무조건 짧게 쓰는 것이 아니다. 작업에 맞는 모델을 고르고, 오래된 문맥을 비우며, 출력 범위를 제한하는 것이 먼저다.

반복 작업이 많다면 프롬프트 캐싱을 적용하고, Claude Code에서는 스킬·MCP·서브에이전트가 차지하는 문맥까지 점검해야 한다. 스킬도 길게 만드는 것보다 필요한 작업 절차만 짧고 구체적으로 담는 편이 효율적이다.

 

Claude Opus 5 vs GPT-5.6 Sol 토큰 비용·코딩 벤치마크 비교

반응형

댓글