Claude Code 토큰 비용과 프롬프트 캐싱

Claude Code의 토큰 과금 구조를 이해하고 비용을 최적화하는 실용적인 팁을 정리합니다.

Claude Code는 Anthropic의 API를 호출하는 CLI 도구입니다. Enterprise Plan에서는 API 사용량에 따라 과금되므로, 과금 구조를 이해하면 같은 작업을 더 적은 비용으로 할 수 있습니다.

과금의 기본 단위: 토큰

Claude API는 토큰 단위로 과금됩니다. 토큰 종류별로 가격이 다릅니다.

토큰 종류 설명

Input 토큰

모델에게 보내는 모든 텍스트 (시스템 프롬프트, 대화 히스토리, 도구 정의 등)

Output 토큰

모델이 생성한 응답 텍스트

Thinking 토큰

Extended thinking 모드에서 모델이 내부적으로 추론하는 데 쓰는 토큰. Output과 같은 가격으로 과금

모델별 가격표

2026년 3월 기준으로 백만(1M) 토큰당 가격은 다음과 같습니다.

모델 Input Output Cache Write Cache Read

Sonnet 4/4.6

$3

$15

$3.75

$0.30

Opus 4/4.6

$15

$75

$18.75

$1.50

Haiku 4.5

$0.80

$4

$1.00

$0.08

Opus는 Sonnet 대비 모든 항목이 5배입니다. Haiku는 Sonnet의 약 1/4 수준입니다.

Prompt Caching의 효과

Claude API는 stateless입니다. 매 턴마다 시스템 프롬프트, 도구 정의, 이전 대화 히스토리를 모두 다시 보내야 합니다. 여기서 '턴’은 사용자가 한 번 입력하고 Claude가 한 번 답변하는 단위가 아닙니다. Claude Code는 agentic하게 동작하기 때문에, 사용자가 한 번 입력하더라도 Claude가 파일 읽기, 편집, 명령 실행 등 도구를 호출할 때마다 API 호출이 발생합니다. 즉 한 번의 사용자 입력이 여러 턴에 해당할 수 있습니다.

턴이 진행될수록 입력 토큰이 누적되어 증가합니다. 공식으로 표현하면 다음과 같습니다.

턴 n의 입력 토큰:
  input(n) = B + n·T + (O + Th)·(n − 1)

  B  = 시스템 프롬프트 + 도구 정의 (매 턴 고정)
  T  = 턴당 새 사용자 입력 토큰
  O  = 턴당 출력 토큰 (히스토리 누적)
  Th = 턴당 thinking 토큰 (히스토리 누적)

N턴까지의 총 입력 토큰:
  총 입력 = N·B + T·N(N+1)/2 + (O+Th)·N(N−1)/2

N(N+1)/2 는 삼각수 공식입니다. 즉 총 입력 토큰은 턴 수에 대해 이차(quadratic)로 증가합니다. 10턴 대화의 뒷쪽 턴은 앞쪽 턴보다 훨씬 많은 입력 토큰을 소비하며, 대화가 길어질수록 이 격차는 더 벌어집니다.

Prompt Caching은 이 삼각수 효과를 완화하는 핵심 수단입니다. 이전 턴까지의 히스토리는 대부분 캐시에 남아있으므로, 캐시가 적중하면 반복 전송되는 입력 토큰의 비용이 정가의 10%로 줄어듭니다. 캐싱 없이는 뒷쪽 턴의 비용이 급격히 올라가지만, 캐싱이 잘 적중하면 누적 비용 곡선을 크게 낮출 수 있습니다. 캐시가 잘 적중하면 입력 토큰 비용을 90%까지 절약할 수 있습니다.

캐시 유형 설명 가격(Input 대비)

Cache Write

새로운 내용을 캐시에 저장

125%

Cache Read

캐시된 내용을 재사용

10%

Cache Miss

캐시 만료 후 다시 저장

125% (Cache Write와 동일)

캐시 히트율을 높이기 위해서 다음을 의식해야 합니다.

  • 5분 안에 다음 턴 진행: 입력을 보내고 나서 다음 턴까지 5분 이내로 유지하면 캐시가 살아있습니다.

  • 세션 중간에 모델을 전환하지 않기: 모델을 바꾸면 캐시가 완전히 초기화됩니다. 하나의 대화 세션에서는 가능하면 하나의 모델을 유지합니다.

  • 가급적 대화 중 CLAUDE.md를 수정하지 않기: CLAUDE.md는 시스템 프롬프트의 일부로 매 턴 전송됩니다. 대화 중에 이 파일을 수정하면 시스템 프롬프트의 prefix가 달라져 기존의 모든 캐시가 무효화됩니다. 특히 턴이 많이 진행된 세션에서는 삼각수 효과로 쌓인 대량의 히스토리 토큰이 전부 Cache Write(125%)로 재과금되어 비용 타격이 큽니다. 수정이 필요하다면 새 세션에서 시작하는 것이 비용 면에서 유리합니다.

직접 시뮬레이션해보기

위의 내용을 바탕으로 자신의 사용 패턴에 맞는 비용을 직접 계산해볼 수 있는 시뮬레이터를 Claude Code로 만들었습니다. 세션 내의 턴 수, 토큰량, 캐시 히트율 등을 조절하면서 모델별 비용 차이와 누적 비용 곡선을 확인할 수 있습니다.

Ubuntu에서의 OEM 커널 설치

Ubuntu OEM 커널과 HWE 커널과의 차이와 Ubuntu 공식 ISO 이미지에서 OEM 커널이 선택되는 원리를 정리합니다.

Ubuntu 공식 홈페이지에서 ISO를 받아 같은 방법으로 설치했음에도 설치 시점에 따라서 Lenovo ThinkPad에는 OEM 커널이, Dell XPS에는 HWE 커널이 설치되는 경우를 경험했습니다. 이 글에서는 두 커널의 차이와 자동 선택되는 원리 등을 정리합니다. 현상의 분석과 이 글의 작성에는 Claude Code의 도움을 받았습니다.

Ubuntu 설치 시점에 따른 경험 차이

저는 Lenovo와 Dell 2개의 모델에 Ubuntu를 설치해서 사용하고 있습니다. 2024년 11월에 Dell XPS 13 9350 모델에 Ubuntu 24.04를 설치했을 때는 웹캠이 제대로 동작하지 않았습니다. 2025년 8월경 Lenovo ThinkPad X1 Carbon Gen 13에 Ubuntu 24.04를 설치했을 때는 웹캠이 바로 잡혔습니다. 이 둘의 차이는 당시 Dell에서는 HWE 커널이 설치된 반면, Lenovo에서는 OEM 커널이 설치되었기 때문입니다.

2026년 2월 현재에는 2개의 모델이 모두 Ubuntu 공식 인증기기로 등록되어 있어서 OEM 커널이 설치될 것으로 예상됩니다.

OEM 커널 vs HWE 커널

Ubuntu 24.04 LTS에서 최신 하드웨어 지원을 위해 제공하는 커널은 크게 두 가지입니다.

항목 OEM 커널 HWE 커널

패키지명 예

linux-oem-24.04d

linux-generic-hwe-24.04

커널 접미사 예

6.17.0-1011-oem

6.17.0-14-generic

대상

특정 OEM 파트너 기기 (Lenovo, Dell 등)

일반 사용자 전체

포함 패치

해당 기기 전용 드라이버·패치 (카메라, 지문인식, 열 관리 등)

범용 최신 하드웨어 지원

관리 주체

Canonical OEM 팀 + OEM 파트너

Canonical / Ubuntu 커뮤니티

업데이트 경로

OEM 파트너 저장소 (oem.archive.ubuntu.com)

기본 Ubuntu 저장소

HWE(Hardware Enablement) 커널은 LTS 버전에서 새 하드웨어를 지원하기 위해 최신 업스트림 커널을 백포팅한 것입니다. OEM 커널은 여기에 더해 특정 기기에서만 필요한 패치가 추가로 적용됩니다. 즉, OEM 커널은 하드웨어 제조사와 Canonical이 협력하여, 해당 기기에서 "설치 후 바로 동작(out-of-the-box)"하는 경험을 제공하기 위한 것입니다.

Intel Meteor Lake / Lunar Lake CPU를 탑재한 기기들은 HWE 커널에서 완전히 지원되지 않은 하드웨어가 있었습니다. 대표적인 예가 내장 카메라(MIPI/IPU7)와 일부 지문인식 센서입니다.

OEM 커널이 자동으로 선택되는 원리

Ubuntu 인스톨러(Subiquity)는 설치 중에 ubuntu-drivers 도구를 호출하여 현재 하드웨어를 감지합니다. 이때 DMI(System Management BIOS) 정보를 읽어 Canonical OEM 파트너 목록과 대조합니다.

예를 들어 Lenovo ThinkPad X1 Carbon Gen 13의 경우, 아래와 같은 메타패키지가 매칭됩니다.

Package: oem-sutton-dacia-meta
Modaliases: meta(dmi:*bvnLENOVO:bvrN4B*:pvrThinkPad*)
Depends: linux-oem-24.04c, oem-sutton-meta
Ubuntu-Oem-Kernel-Flavour: oem
Description: hardware support for Lenovo ThinkPad X1 2-in-1 G10, X1 Carbon G13

Modaliases 필드의 패턴(dmi:*bvnLENOVO:bvrN4B*:pvrThinkPad*)이 현재 기기의 DMI 정보와 일치하면, 해당 메타패키지와 함께 OEM 커널이 자동으로 설치됩니다.

설치 흐름을 정리하면 다음과 같습니다.

Ubuntu 설치 중
└─ ubuntu-drivers 가 DMI 정보 확인
   └─ OEM 메타패키지 패턴 매칭
      └─ oem-sutton-dacia-meta 설치
         └─ linux-oem-24.04d 의존성으로 OEM 커널 설치
            └─ → 부팅 커널: 6.17.0-1011-oem

어떤 커널이 설치될지는 하드웨어가 Canonical OEM 파트너 목록에 등록되어 있느냐에 달려 있습니다.

다음과 같이 Intel Ultra 7 258V CPU를 쓰는 기기라도 차이가 생길 수 있습니다.

기기 OEM 메타패키지 설치되는 커널

Lenovo ThinkPad X1 Carbon G13

oem-sutton-dacia-meta

linux-oem-24.04d (OEM 커널)

Dell XPS 13 9350

oem-somerville-tyrogue-meta

linux-oem-24.04d (OEM 커널)

OEM 파트너 목록에 없는 기기

없음

linux-generic-hwe-24.04 (HWE 커널)

그래서 설치 시기와 모델에 따라 어느 커널이 설치 될지가 달랐던 것입니다. 우분투 공식 인증기기라면 OEM 커널이 설치시에 바로 감지되어 설치될 가능성이 높습니다.

아래 명령을 참고로 알아두시면 기기에 대한 정보를 파악하는데 도움이 됩니다.

  • ubuntu-drivers list-oem : 기기에 감지된 OEM 메타패키지

  • sudo dmidecode -s system-product-name : 기기의 정확한 모델명

OEM 커널을 수동으로 설치/제거

현재 어떤 커널이 설치되어 있는지는 다음 명령으로 확인할 수 있습니다.

설치된 커널과 OEM 메타패키지 확인
# 현재 부팅된 커널
uname -r

# 설치된 커널 패키지 목록
dpkg -l | grep linux-image | grep '^ii'

# ubuntu-drivers가 감지하는 OEM 메타패키지 확인
ubuntu-drivers list-oem

우분투 초기 설치 시점에 HWE 커널이 자동 선택되었지만, OEM 커널로 전환을 하고 싶다면 아래와 같이 수동으로 설치할 수 있습니다.

OEM 커널 수동 설치
# 설치 가능한 OEM 메타패키지 목록 검색
apt search linux-oem-24.04

# OEM 커널 수동 설치 (24.04 기준)
sudo apt install linux-oem-24.04d

앞으로 업데이트에도 HWE 커널이 설치되지 않도록 하려면, HWE 커널의 메타 패키지를 제거하면 됩니다.

HWE 커널 제거
sudo apt remove linux-headers-generic-hwe-24.04

또는 HWE 커널의 메타 패키지를 보류(hold) 상태로 설정할 수 있습니다.

HWE 커널 보류 설정
sudo apt-mark hold linux-headers-generic-hwe-24.04

반대로 OEM 커널 없이 HWE 커널만 사용하고 싶다면, OEM 메타패키지를 제거하면 됩니다. 단, 해당 하드웨어에서 필요한 드라이버가 빠질 수 있으므로 주의가 필요합니다.

Ubuntu 24.04 설치

새 컴퓨터를 받아서 설치한 프로그램들을 정리해봅니다.

  • Ubuntu는 영문판으로 설치

    • Desktop, Download 같은 디렉토리가 영문으로 나오는 것이 편리해서

한글 설정

sudo apt install ibus-hangul

Settings 에서

  • Regision & Language 에서 Manage Installed Lanauges 에 'Korean' 추가

  • Keyboard > Input SourcesKorean(Hangul) 추가하고 "…​" 눌러서 Preference 선택

    • Hangul toggle keyShift + Space 지정

하드웨어 설정

키보드 설정

일부 키보드의 경우 F1~F12가 잘 인식되지 않은 경우도 있음. 해당 장비가 애플 키보드 타입으로 인식되고 자동 모드가 Fn가 기본적으로 눌러져있는 것으로 인식되기 때문. hid_apple 모듈의 fnmode 변수 설정으로 이 문제를 해결할 수 있음.

  • 현재 모드 확인 : lsmod | grep hid_ (디폴트는 자동 모드인 3)

  • 보통 2로 모드 설정을 하면 잘 되고, 그래도 안되면 disable인 3으로

  • 일시적으로 설정 값이 변경하여 테스트 : echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode

키보드 펑션키 모드 변경이 재부팅 후에도 적용되도록
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u

참고자료

웹 캠 설정

Intel Ultra 7 258v CPU를 쓰는 Dell XPS 13 plus 9350에서는 웹캠을 위한 드라이버 설치를 따로 해줘야했음. 같은 CPU를 쓰는 Lenovo Thinkpad X1 Carbon G13는 기본 설치만으로 잘 되었음.

Dell XPS 13 plus 9350에서 웹캠이 안 잡힐 때 참고한 자료

CLI 도구

Terminator

여러 창을 띄우기에 편한 터미널 프로그램

sudo apt install terminator

curl

sudo apt install curl

ifconfig

sudo apt install net-tools

ssh 설정

sudo vi /etc/ssh/ssh_config 하여 아래를 마지막에 추가

HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1

git / gitk

sudo apt-get install git gitk

oh-myzsh

sudo apt install zsh
curl -L http://install.ohmyz.sh | sh

terminator의 Preference > Profile > Command 에서

  • Run a custom command instead of my shell 체크

  • Custom commands : zsh

scm_breeze

zsh에서 실행할 때의 기준

git clone https://github.com/scmbreeze/scm_breeze.git ~/.scm_breeze
~/.scm_breeze/install.sh
source "${ZDOTDIR:-$HOME}/.zshrc
bash
source ~/.bashrc
exit

개발 환경

여러 JDK를 설치하고 관리하는 방법은 SDKMAN + direnv를 추천 ( https://blog.benelog.net/installing-jdk.html 참조)

SDKMAN

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

direnv

  • sudo apt install direnv 설치

  • ~/.bashrc~/.zshrceval "$(direnv hook bash)" 추가

IntelliJ

sudo apt install fuse

Node.js

nvm 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
~/.bash_profile, ~/.zshrc, ~/.profile, ~/.bashrc 등에 추가
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

정보 관리 프로그램

크롬

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

Obsidian

snap으로 설치하면 한글 문제가 있음. Appimage로 설치

Pinta

snap install pinta

VidCutter

snap install vidcutter

ShotCut

snap install shotcut --classic

기타 참고

이전 버전에서 참고한 자료

NGINX 설치 후 자동으로 시작 안하게

sudo update-rc.d -f nginx disable