AI 코딩 도구, 컨텍스트 창을 얼마나 효율적으로 사용하나?
저자는 4가지 AI 코딩 도구의 컨텍스트 창 사용량을 분석하기 위해 Context Lens를 개발함
각 도구는 동일한 버그 수정 작업을 수행했지만, 컨텍스트 창 사용 방식은 크게 달랐음
Opus는 git history를 활용하여 최소한의 컨텍스트를 사용, Gemini는 과도한 컨텍스트 사용
Context Lens를 통해 AI 코딩 도구의 토큰 사용량 및 효율성을 시각적으로 분석 가능
AI 코딩 도구의 컨텍스트 창 사용량 비교
저자는 Context Lens를 사용하여 4가지 AI 코딩 도구(Opus, Sonnet, Codex, Gemini)의 컨텍스트 창 사용량을 분석했다. 각 도구는 동일한 Express.js 버그 수정 작업을 수행했지만, 토큰 사용량(Token Usage)과 정보 접근 방식(Information Access Approach)에서 큰 차이를 보였다. 특히, Gemini는 1M의 컨텍스트 창을 가지고 있음에도 불구하고, 과도한 양의 데이터를 컨텍스트에 포함시켜 비효율적인 모습을 보였다.
Opus, Sonnet, Codex, Gemini의 전략 분석
Opus는 git history를 활용하여 최소한의 코드만 읽고 버그를 수정하는 '외과 의사(Surgeon)'와 같은 접근 방식을 보였다. 반면, Sonnet은 테스트 파일과 소스 코드를 모두 읽는 '꼼꼼한 주니어 엔지니어(Thorough Junior Engineer)'와 같은 방식을 취했다. Codex는 '유닉스 해커(Unix Hacker)'처럼 `rg`와 `sed`를 사용하여 필요한 정보만 추출했고, Gemini는 전체 파일과 git history를 컨텍스트에 포함하는 '대식가(Glutton)'와 같은 모습을 보였다.
Gemini의 과도한 컨텍스트 사용과 트레이드오프
Gemini는 1M의 큰 컨텍스트 창을 가지고 있지만, 과도한 데이터(Excessive Data)를 포함하여 비효율적인 모습을 보였다. 특히, git log -p를 통해 얻은 118.5K 토큰(Tokens)의 데이터를 컨텍스트에 포함시키는 것은 비용(Cost) 측면에서 큰 낭비로 이어진다. 이는 Gemini가 TDD(Test-Driven Development)를 자체적으로 수행하는 과정에서 발생하며, 컨텍스트 관리가 제대로 이루어지지 않는다는 점을 시사한다.
Context Lens를 활용한 AI 코딩 도구 분석의 중요성
Context Lens는 AI 코딩 도구의 컨텍스트 창 사용량(Context Window Usage)을 시각적으로 분석하여, 각 도구의 효율성(Efficiency)과 아키텍처적 특징(Architectural Characteristics)을 파악할 수 있게 해준다. 이를 통해 개발자는 AI 코딩 도구의 토큰 사용량(Token Usage)을 최적화하고, 비용 절감(Cost Reduction) 및 성능 향상(Performance Improvement)을 위한 전략을 수립할 수 있다. 또한, Context Lens는 AI 코딩 도구의 설계(Design) 및 구현(Implementation) 방식을 이해하는 데 도움을 준다.