Codex 토큰 사용량 줄이기: Graphify, Ponytail, Headroom 적용

정지인·2026년 9월 10일
post-thumbnail

최근 Codex를 사용하면서 가장 신경 쓰였던 부분 중 하나가 토큰 사용량이었다.

특히 규모가 어느 정도 있는 프로젝트에서는 Codex가 여러 파일을 탐색하고, 긴 로그나 코드 내용을 읽고, 다시 많은 코드를 생성하면서 생각보다 많은 토큰을 사용하게 된다.

그러던 중 인스타그램에서 AI 코딩 에이전트의 토큰 사용량을 줄이는 방법을 소개한 게시물을 보게 되었다.

해당 게시물은 Claude를 기준으로 Graphify, Ponytail, Headroom을 활용하는 방법을 소개하고 있었다.

이 글에서는 해당 내용을 참고하되, Claude가 아닌 Codex 환경에 직접 적용해본 과정을 정리한다.

Codex의 토큰 사용량을 줄이기 위해 적용한 도구는 다음 세 가지다.

  • Graphify
  • Ponytail
  • Headroom

세 도구 모두 토큰 절약이라는 공통된 목적이 있지만, 실제로 토큰을 줄이는 지점은 서로 다르다.

이번 글에서는 각 도구가 어떤 역할을 하는지, 그리고 현재 내 Codex 환경에는 어느 정도까지 적용되어 있는지를 정리해보려고 한다.


1. 현재 Codex 환경

현재 설치한 도구와 적용 상태는 다음과 같다.

도구현재 상태적용 범위
Graphify설치 및 Codex 스킬 등록 완료Codex에서 사용 가능
PonytailCodex 플러그인 설치 완료Codex 플러그인으로 활성화
HeadroomCLI 설치 완료필요할 때 수동 실행
Codex CLI기존 바이너리 복구 및 업그레이드0.154.0

현재 설치된 버전은 다음과 같다.

graphify 0.9.57
ponytail@ponytail 4.9.0
headroom 0.37.0
codex-cli 0.154.0

여기서 중요한 점은 설치되어 있다는 것과 실제 Codex 요청에 항상 적용되고 있다는 것은 다르다는 것이다.

현재 기준으로는 다음과 같이 정리할 수 있다.

Graphify  → 필요할 때 사용 가능
Ponytail  → Hook 활성화 후 일반 작업에 적용 가능
Headroom  → 필요할 때 수동 실행

즉, 현재는 Graphify + Ponytail 중심으로 환경을 구성하고, Headroom은 필요할 때 추가해서 사용하는 구조다.


2. Graphify

Graphify란?

Graphify는 코드베이스를 일종의 지식 그래프(Knowledge Graph) 형태로 분석하는 도구다.

일반적으로 AI 코딩 에이전트가 프로젝트를 파악하려면 여러 파일을 직접 열어보면서 구조를 찾아야 한다.

예를 들어 다음과 같은 작업이 반복될 수 있다.

파일 검색
    ↓
관련 파일 열기
    ↓
import 확인
    ↓
다른 파일 열기
    ↓
함수 호출 관계 확인
    ↓
다시 다른 파일 탐색

프로젝트 규모가 커질수록 AI가 읽어야 하는 코드도 많아지고, 자연스럽게 입력 토큰 역시 증가한다.

Graphify는 이 과정을 코드 관계 기반으로 구조화하여 탐색할 수 있도록 한다.


Graphify의 역할

Graphify를 사용하면 다음과 같은 정보를 찾는 데 도움을 받을 수 있다.

  • 코드 및 문서 구조 파악
  • 파일 간 관계 탐색
  • 클래스 및 함수 연결 관계 분석
  • 특정 기능이 구현된 위치 탐색
  • 코드 변경에 따른 영향 범위 파악

즉,

AI가 모든 파일을 직접 읽기 전에 필요한 영역을 먼저 좁히는 역할

이라고 볼 수 있다.

결과적으로 불필요한 파일 읽기를 줄일 수 있기 때문에 입력 토큰 절약에 도움이 된다.


Graphify 사용

프로젝트 루트에서 다음과 같이 사용할 수 있다.

graphify .

프로젝트를 먼저 그래프로 구성한 뒤 Codex에서 코드 구조 분석 등에 활용하는 방식이다.

다만 Graphify가 설치되어 있다고 해서 Codex가 모든 작업마다 자동으로 그래프를 생성하는 것은 아니다.

따라서 현재 사용 방식은 다음과 같다.

큰 프로젝트
↓
Graphify로 구조 분석
↓
필요한 코드 범위 탐색
↓
Codex 작업

특히 코드베이스 규모가 클수록 효과를 기대할 수 있다.


3. Ponytail

Ponytail이란?

Ponytail은 AI 코딩 에이전트가 불필요하게 많은 코드를 작성하거나 과도하게 설계하는 것을 줄이는 역할을 하는 플러그인이다.

AI에게 기능 구현을 요청하다 보면 간단한 수정인데도 다음과 같은 일이 발생하는 경우가 있다.

새로운 라이브러리 추가

불필요한 클래스 생성

필요 이상의 추상화

기존 코드로 해결할 수 있는데 새로운 구조 생성

간단한 수정인데 지나치게 큰 Diff 생성

이런 결과는 코드 복잡도뿐만 아니라 출력 토큰도 증가시킨다.

Ponytail은 이런 상황에서 가능한 한 가장 작은 변경을 우선하도록 유도한다.


Ponytail의 역할

주요 목적은 다음과 같다.

  • 불필요한 코드 생성 감소
  • 과한 추상화 방지
  • 새로운 라이브러리 추가 최소화
  • 기존 코드 재사용 우선
  • 작은 Diff 유도
  • 설명 및 구현 간결화

Graphify가 Codex가 읽는 코드를 줄이는 도구라면,

Ponytail은 Codex가 작성하는 코드를 줄이는 역할에 가깝다.

즉,

출력 토큰과 실제 코드 변경량을 줄이는 도구

라고 볼 수 있다.


Ponytail 적용

현재 Codex 플러그인 설치 자체는 완료된 상태다.

다만 lifecycle hook을 사용하는 경우 Codex에서 해당 Hook을 신뢰하도록 설정해야 한다.

Codex를 재시작한 뒤 새로운 세션에서 다음 명령을 사용한다.

/hooks

이후 Ponytail과 관련된 lifecycle hook을 확인하고 활성화하면 된다.

설정 이후에는 일반적인 Codex 작업에도 영향을 줄 수 있다.

Ponytail의 동작 강도 역시 변경할 수 있다.

/ponytail lite
/ponytail full
/ponytail ultra
/ponytail off

일반적으로는 full을 기준으로 사용할 수 있다.


4. Headroom

Headroom이란?

Headroom은 Codex와 LLM 사이에서 긴 입력 데이터를 압축하는 프록시 계층에 가깝다.

코딩 에이전트를 사용하다 보면 모델이 코드뿐만 아니라 다양한 데이터를 전달받는다.

예를 들어 다음과 같다.

긴 로그

JSON 응답

CLI 실행 결과

검색 결과

대형 파일

반복되는 Tool Output

이런 데이터는 그대로 모델 Context에 포함되면서 많은 입력 토큰을 차지할 수 있다.

Headroom은 해당 내용을 압축하거나 필요한 정보만 남겨 모델에 전달하는 방식으로 입력량을 줄인다.


Headroom의 역할

주요 역할은 다음과 같다.

  • Tool Output 압축
  • 긴 로그 압축
  • JSON 데이터 압축
  • 대형 파일 Context 축소
  • 반복 데이터 제거
  • 필요 시 원본 데이터를 다시 조회할 수 있는 구조 제공

특히 JSON이나 반복적인 로그처럼 구조가 일정한 데이터에서 효과를 기대할 수 있다.

Graphify와 비교하면 차이가 명확하다.

Graphify
→ 애초에 무엇을 읽을지 줄임

Headroom
→ 읽은 내용을 LLM에 전달할 때 줄임

둘 다 입력 토큰을 줄이지만 접근 방식이 다르다.


현재 Headroom 적용 상태

Headroom CLI 설치 자체는 완료되어 있다.

하지만 현재 Codex에 상시 적용되어 있는 상태는 아니다.

Headroom을 Codex의 영구 Provider처럼 사용해보려고 했지만, 로컬 Proxy Service가 안정적으로 유지되지 않는 문제가 있었다.

Codex 자체 설정에 영향을 주는 것을 방지하기 위해 해당 설정은 원복했다.

따라서 현재는 필요한 작업에서만 다음과 같이 실행한다.

headroom wrap codex

이 명령으로 실행한 Codex CLI 세션에서 Headroom을 적용하는 방식이다.

현재 상태를 정리하면 다음과 같다.

Headroom 설치 완료

        ↓

평소 Codex에는 미적용

        ↓

대량 로그 / 긴 파일 / JSON 작업

        ↓

headroom wrap codex

        ↓

해당 Codex 세션에만 적용

5. Graphify + Headroom + Ponytail은 어떻게 같이 동작할까?

처음에는 세 도구 모두 결국 "토큰을 줄이는 도구"라서 역할이 겹치는 것처럼 느껴졌다.

하지만 실제로는 각각 다른 단계에서 동작한다.

전체 흐름을 단순화하면 다음과 같다.

Graphify
탐색 범위 축소
        ↓
Headroom
입력 Context 압축
        ↓
Ponytail
코드 생성 최소화

한 문장씩 정리하면 다음과 같다.

Graphify

무엇을 읽을지 줄인다.

Headroom

읽은 내용을 모델에게 얼마나 전달할지 줄인다.

Ponytail

모델이 얼마나 작성할지 줄인다.

따라서 세 도구는 완전히 같은 역할을 하는 것이 아니라 서로 다른 구간을 최적화한다.


6. 실제로는 언제 사용해야 할까?

모든 작업에서 세 도구를 항상 사용할 필요는 없다고 판단했다.

현재는 작업 성격에 따라 다음과 같이 사용하고 있다.

일반적인 개발 작업

Codex
+
Ponytail

간단한 기능 구현이나 리팩터링에서는 Ponytail을 이용해 불필요한 코드 생성을 줄인다.


규모가 큰 코드베이스 분석

Graphify
↓
Codex
+
Ponytail

먼저 Graphify를 이용해서 프로젝트 구조와 관계를 파악한 뒤 필요한 부분을 중심으로 작업한다.


로그나 데이터 출력이 많은 작업

Graphify
↓
headroom wrap codex
↓
Ponytail

긴 로그나 JSON, Tool Output이 많이 발생할 가능성이 있는 작업에서는 Headroom까지 추가한다.

결국 현재 가장 현실적인 운영 방식은 다음과 같다.

일반 작업
→ Ponytail

큰 코드베이스 분석
→ Graphify + Ponytail

긴 로그 / JSON / 대량 Tool Output
→ Graphify + Headroom + Ponytail

7. 어느 정도 토큰을 줄일 수 있을까?

세 도구 모두 토큰 사용량을 줄이는 데 도움을 줄 수 있지만, 정확한 절감률은 작업 환경에 따라 크게 달라질 수 있다.

프로젝트 크기, Codex가 탐색하는 파일 수, 로그와 Tool Output의 크기, 생성되는 코드량 등에 따라 결과가 달라지기 때문이다.

또한 세 도구의 효과를 단순히 더할 수도 없다.

Graphify
→ 탐색할 Context 자체 감소

Headroom
→ 전달되는 Context 압축

Ponytail
→ 생성되는 코드 및 응답 감소

즉, 각 도구가 서로 다른 영역을 줄이지만 일부 효과가 중첩될 수 있다.

따라서 현재는 특정 절감률을 단정하기보다는 각 도구가 토큰을 사용하는 서로 다른 지점을 최적화한다는 점에 의미를 두고 있다.

추후 동일한 프로젝트와 동일한 작업을 기준으로 직접 토큰 사용량을 비교해볼 예정이다.


8. 현재 최종 구성

현재 내 Codex 환경을 최종적으로 정리하면 다음과 같다.

Graphify
├─ 설치 완료
├─ Codex Skill 등록
└─ 큰 프로젝트 분석 시 사용

Ponytail
├─ Plugin 설치 완료
├─ Hook 활성화 필요
└─ 일반 Codex 작업에 적용

Headroom
├─ CLI 설치 완료
├─ 상시 Proxy 적용 X
└─ headroom wrap codex로 필요 시 사용

Codex CLI
└─ 0.154.0

즉 현재 구성의 핵심은

Graphify로 읽는 범위를 줄이고, Ponytail로 작성하는 범위를 줄이는 것

이다.

그리고 로그나 JSON처럼 입력 데이터 자체가 커지는 작업이 발생하면

headroom wrap codex

로 Headroom을 추가하는 방식이다.


마무리

AI 코딩 에이전트의 토큰을 아끼는 가장 단순한 방법은 모델에게 "짧게 답해줘"라고 요청하는 것일 수도 있다.

하지만 실제 개발 환경에서는 출력뿐만 아니라 Context를 구성하는 과정에서 사용되는 토큰 역시 상당히 크다.

그래서 이번에는 각각 다른 지점을 최적화하는 도구를 조합해봤다.

Graphify
→ Context 탐색 최적화

Headroom
→ Context 전달 최적화

Ponytail
→ 코드 생성 최적화

현재는 Graphify + Ponytail을 중심으로 사용하면서 탐색 범위와 코드 생성량을 줄이는 방향으로 Codex 환경을 구성했다.

로그나 JSON처럼 입력 데이터 자체가 커지는 작업에서는 Headroom을 추가해 사용하는 방식이다.

실제 토큰 절감 효과는 이후 동일한 프로젝트와 동일한 작업 조건에서 직접 비교해볼 예정이다.

기본 Codex

vs

Graphify + Ponytail

vs

Graphify + Ponytail + Headroom

0개의 댓글