- 대규모 프로덕션 코드베이스에서 최신 언어 모델로 성과를 내기 위한 컨텍스트 엔지니어링 원칙과 실무 워크플로우를 제시하는 글
- 핵심은 Frequent Intentional Compaction으로, 개발 전 과정에서 컨텍스트를 구조화·압축해 에이전트의 판단 품질과 진행 트래젝터리를 안정화함
- 연구→계획→구현의 3단계로 사전 연구 산출물과 계획 문서를 만들고 사람 검토를 고레버리지 지점에 배치해 슬롭(slop) 과 재작업을 줄임
- 실제로 Rust 기반 30만 LOC의 BAML에서 버그 수정과 취소/WASM 지원 등 복잡 과제를 단기간에 달성한 사례를 통해 브라운필드 환경에서도 유효함을 입증함
- 결론적으로 AI 코딩은 장난감이 아니라 정교한 엔지니어링 수공업이며, 팀 차원의 프로세스/문화 전환이 경쟁우위의 관건임
배경: 복잡한 코드베이스에서의 AI 한계와 문제의식
- 대부분의 개발자들은 AI 코딩 도구가 실제 프로덕션 코드베이스에서는 기대만큼 잘 작동하지 않는다는 점을 잘 알고 있음
- AI 코딩 도구가 대형 코드베이스와 복잡 과제에서 생산성을 떨어뜨린다는 연구 결과가 존재함
- Stanford 연구 결과, AI 도구가 추가하는 코드의 상당 부분이 이전에 AI가 생성한 미흡한 코드를 다시 손보는 식으로 반복 작업을 초래함
- AI 코딩 에이전트는 신규 프로젝트나 소규모 변경에는 효과적이지만, 대규모 코드베이스에서는 오히려 개발자 생산성을 낮출 수 있음
- 그래서 현장의 반응은 “지금은 어렵다, 좀 더 똑똑한 모델이 나오면”이라는 신중한 태도를 보이는 경우가 많음
- 하지만 실제 300,000 LOC의 대형 Rust 코드베이스에서 컨텍스트 엔지니어링을 적용해보니, 기존 모델만으로도 생산성과 품질 모두 시장 수준을 넘어설 수 있었음
- 핵심은 빈번한 의도적 축소(frequent intentional compaction) 로, 개발 과정 내내 AI에 주어지는 맥락을 구조화되고 관리된 형태로 만드는 것
- 결국 ‘AI 코딩’이란 기술적 장인정신이 필요한 영역임
사상적 토대: “Specs are the new code”와 생산성 연구
- AI Engineer 2025에서의 두 가지 발표가 사고방식 변화를 이끌었음
-
Sean Grove의 "Specs are the new code" 발표에서 “대화형 프롬프트를 버리고 스펙을 코드로 보존하라”고 얘기함
- 프롬프트를 버리고 산출 코드만 커밋하는 관행은 소스 없이 바이너리만 체크인하는 일에 비유됨
-
스탠포드의 AI가 개발자 생산성에 미치는 영향 연구 는 AI가 단기 산출을 늘려도 품질 저하와 재작업으로 순효과가 감소할 수 있음을 시사함
- 10만 개발자의 커밋 분석 결과, AI 도구가 재작업 증가를 초래해 생산성 이득을 상쇄하는 현상 관찰
- 그린필드에서는 효과적이나 브라운필드와 고난도 작업에서 역효과가 빈번하다는 통찰 제시
원칙: Frequent Intentional Compaction의 개념
- 컨텍스트 윈도우를 항상 40–60% 수준으로 관리하며, 내용 과잉·누락·오정보를 최소화하는 지속 압축 전략을 채택함
- 압축 대상은 파일 검색 로그, 코드 흐름 추적, 수정 내역, 테스트/빌드 로그, 대형 JSON 등의 노이즈임
- 각 단계 산출물을 구조화 아티팩트로 남겨 다음 턴의 입력 품질을 보장함
- 예: 진행 요약, 목표와 접근, 완료 단계, 현재 실패 지점을 기록한 progress 문서 생성
워크플로우: Research → Plan → Implement
-
Research 단계에서 관련 파일·흐름·원인 가설을 조사해 요약 리서치 문서를 산출함
- 필요시 서브에이전트로 신선한 컨텍스트에서 범위 탐색과 요약을 수행함
-
Plan 단계에서 수정 대상 파일, 변경 방식, 검증·테스트 절차를 상세히 서술한 구현 계획을 작성함
- 계획은 코드리뷰보다 고레버리지 검토 지점으로 활용됨
-
Implement 단계에서 계획을 단계적으로 집행하고, 각 단계 검증 후 계획 문서에 상태를 재압축해 누적함
- 복잡 과업은 단계별 합류 시마다 컨텍스트 재정렬을 수행함
안티패턴과 점진적 고도화
-
나이브한 접근은 채팅형 흐름에서 컨텍스트가 오염되어 사과 루프나 탈선으로 이어지는 문제 노출
- 약간 나은 방식은 세션 초기화와 “지시 추가 프롬프트”이나, 근본적 노이즈 제어가 미흡함
-
의도적 압축은 진행 요약(파일)과 커밋 메시지를 사용해 맥락을 재구성하는 더 나은 방식임
- 이상적 압축 산출물 포맷 예시를 제시하며, 정확성/완전성/크기/트래젝터리 최적화를 목표로 설정함
컨텍스트 최적화의 기술적 관점
- LLM은 무상태 함수이므로, 품질은 전적으로 입력 컨텍스트에 의해 좌우됨
- 최악의 상황 순서는 오정보 > 누락 > 노이즈 과다임
- 컨텍스트는 작을수록 유리하므로, 최소 입력으로 최대 정합성을 얻는 압축이 핵심임
- 간단 루프형 에이전트 실행 전략(예: “Ralph” 프로세스) 등 대안적 관점도 언급됨
서브에이전트의 역할: 사람역할 놀이가 아닌 컨텍스트 제어
- 서브에이전트는 찾기/요약/정리를 독립 컨텍스트에서 수행해 주 에이전트의 창을 청결히 유지함
- 이상적 응답은 목표/현황/경로가 구조화된 압축 산출물 형태로 반환됨
- 서브에이전트를 통해 탐색 비용을 국소화하고, 본 작업 컨텍스트의 집중도를 높임
사례 1: BAML 버그 수정 한 번에 통과
- Rust 30만 LOC의 BAML에서 초진입자가 버그 수정 PR을 수시간 내 제출·승인 받은 사례 제시
- 리서치 문서를 여러 번 돌려 품질을 끌어올리고, 최종 계획 기반 구현으로 첫 통과 달성
- 브라운필드 적합성, 슬롭 제거, 정렬 유지 측면 목표 중 다수를 충족함
사례 2: BAML에 취소/WASM 지원 35k LOC
- 두 사람이 7시간에 취소 기능과 WASM 컴파일 지원을 추가하는 대규모 변경 작업을 시연함
- 팀 추정치로 각 3–5일 분량을 리서치/계획/구현 파이프라인으로 단축함
- 일부 PR은 즉시 병합, 일부는 작동 데모 수준으로 개방 유지하며 고난도 과제 해결 가능성을 증명함
한계와 실패로부터의 학습
- Parquet Java에서 Hadoop 의존 제거 시도는 의존 트리 파고들기 미흡으로 실패 사례로 남음
- 결론: 모든 문제가 7시간 프롬프트링으로 풀리지는 않으며, 도메인 전문가의 참여가 필요함
- 사람 검토의 레버리지는 연구>계획>코드 순으로 커지며, 잘못된 연구 한 줄이 수천 줄 오류로 확장될 위험 존재함
팀 정렬을 위한 문서 우선주의
- 코드리뷰의 본질은 정신적 정렬(mental alignment) 유지에 있다는 관점 제시
- 대형 PR 연쇄는 팀의 제품 이해 상실과 불안을 유발하므로, 스펙/계획/리서치로 정렬 비용을 낮춤
- 엔지니어는 2천 줄 코드보다 200줄 계획 문서를 더 자주·정확히 읽을 수 있음
- 낯선 영역 이슈 대응에서도 리서치 프롬프트가 빠른 안내 역할을 수행함
총정리와 비용 구조
- 목표 전부를 충족: 브라운필드 호환, 복잡 문제 해결, 슬롭 최소화, 팀 정렬 유지 달성임
- 운영 비용 관점에서 팀 3명이 Opus 토큰 비용 월 약 $12k 수준으로 운용 중임
- 예외는 존재하나, 전반적으로 작동하는 방법론으로 자리잡았음을 강조함
앞으로의 변화와 제품화
- 코딩 에이전트는 상품화될 것이며, 조직·워크플로우 변혁이 진짜 난제임
- AI가 코드 99%를 작성하는 세계에서 협업 방식 전면 개편이 경쟁력의 분기점임
- 이를 지원하기 위해 CodeLayer라는 “포스트 IDE” 도구를 프라이빗 베타로 공개
- Superhuman for Claude Code를 지향하며 스펙 퍼스트 에이전틱 개발을 가속화함