← AI Engineer
코딩 에이전트 · 제품 철학

모델은 지수로 크는데 제품은 못 따라간다 — 클로드 코드를 일부러 헐겁게 두는 이유

클로드 코드(Claude Code)를 만든 보리스가 제품을 일부러 최소한으로 두는 이유를 밝힘. 프로그래밍 언어는 서로 닮아 가며 멈췄는데 UX와 모델은 계속 올라간다는 것이 그 근거고, 앤트로픽이 모델 회사라 모델을 날것으로 만지게 하려 한다는 것과 「올바른 UX를 아직 모른다」는 자백이 나란히 나옴. 한 제품에 붙는 길 넷(터미널·IDE·깃허브·SDK), 사내 온보딩이 2~3주에서 이틀로 줄었다는 사례, 출력을 볼 수단이 있어야 반복이 도는 이유, 이날 나온 플랜 모드까지 이어짐. 성능·비용 수치는 나오지 않는다.

Boris Cherny Anthropic발표 2025-08-2618분 13초AI Engineer

한줄 코멘트. 기능을 덜 만든 것을 철학으로 말하는 발표처럼 들리는데, 근거로 댄 것은 취향이 아니라 관찰이다. 프로그래밍 언어는 서로 닮아 가며 멈춘 반면 UX는 펀치카드에서 자연어까지 계속 올라왔고, 그래서 지금 UX를 확정해 넣으면 모델이 한 계단 오를 때마다 그 껍데기가 걸리적거린다는 것이다. 다만 「모르니까 안 만든다」는 말은 만들 여력이 있는 회사에서만 통한다. 이 발표에서 제품을 덜어낸 값은 앤트로픽이 아니라 사용자가 각자 채워 넣는다.

1. 왜 제품이 모델을 못 따라가나

발표자는 앤트로픽 기술 스태프이자 클로드 코드를 만든 사람이라고 자기를 소개한다. 요지를 앞에 먼저 놓는다. 모델은 지수로 좋아지는데 제품이 그 속도를 따라가느라 허덕이고 있다는 것이다.

이렇게 코딩을 잘하는 모델에 붙일 제품이 훨씬 많이 나올 수 있는데 지금은 최소한만 만들고 있다고 말한다. 그러면서 클로드 코드는 제품이 어떤 모습이어야 하는지에 대해 일부러 견해를 안 갖는다고 덧붙인다. 이유는 모르기 때문이다.

2. 프로그래밍 UX는 어디까지 왔나

발표의 절반은 역사다. 1930~40년대에는 스위치보드를 만지는 물리적인 일이었고 소프트웨어라는 것이 없었다. 1950년대에 펀치카드가 왔다. 발표자의 할아버지가 소련 초기 프로그래머 중 하나였고, 어머니는 그가 집에 들고 온 펀치카드 더미에 크레용으로 그림을 그리며 자랐다고 한다.

1950년대 후반부터 추상화 단계가 올라간다. 어셈블리, 코볼, 타입 있는 언어, C++로 이어지고 1990년대 초에 언어군이 한꺼번에 터진다. 그런데 지금은 눈을 가늘게 뜨면 다 비슷해 보인다고 말한다. 타입스크립트를 쓰는 느낌이 러스트 같고, 그게 스위프트 같고, 또 고 같다는 것이다. 언어의 추상화는 수렴했다.

UX 쪽은 다르다.

발표자가 꼽은 프로그래밍 UX의 마디

언제무엇무엇이 새로웠나
1950년대IBM 029타자기 같은 기계로 펀치카드에 구멍을 뚫었다
1970년대 언저리Ed첫 텍스트 편집기. 커서도 스크롤백도 *타입어헤드도 없었다. 종이에 찍는 텔레타이프 기계용이었고 지금도 유닉스에 딸려 온다
비슷한 시기빔·이맥스발표자가 큰 진전으로 꼽고 지나간다
1980년스몰토크-80프로그래밍 소프트웨어의 첫 그래픽 화면. 이때 이미 라이브 리로드가 됐는데 요즘 리액트로는 그게 아직 힘들다고 말한다
1991년비주얼 베이식그래픽 방식을 주류로 끌어왔다
—이클립스타입어헤드를 주류로. AI가 아니라 심볼을 색인하고 순위를 매기는 정적 분석이었다. IDE의 첫 큰 서드파티 생태계이기도 하다
—코파일럿한 줄 타입어헤드, 이어서 여러 줄
—데빈코드 대신 자연어를 쓰면 그것이 코드가 된다는 것을 처음 주류로 가져왔다고 본다

연도를 말한 자리만 왼쪽 칸에 적었다. 이클립스·코파일럿·데빈에는 발표가 연도를 대지 않는다.

검증도 같이 옮겨 왔다고 말한다. 손으로 디버깅하고 출력을 눈으로 보던 데서 *퍼징, 취약점 시험, 넷플릭스식 카오스 시험 같은 확률적 검증으로 왔다는 것이다.

여기서 발표자가 뽑는 결론이 하나다. 언어는 평평해졌고 모델과 UX는 아직 지수 위에 있다.

3. 그래서 왜 헐겁게 두나

클로드 코드의 출발점은 터미널이고, 그 위에서 모델에 가능한 한 낮은 수준으로 닿게 하되 일은 되게 만드는 것이라고 말한다. 화려한 화면을 주지 않고 발판을 세워 앞을 막지 않는다.

이유를 둘로 나눈다. 하나는 앤트로픽이 모델 회사라 사람들이 모델 자체를 겪기를 바란다는 것이다. 다른 하나는 올바른 UX가 무엇인지 자기들도 모른다는 것이다. 그래서 단순하게 시작한다고 말한다.

벽에 액자로 걸어 둔 교훈도 꺼낸다. 더 일반적인 모델이 늘 이긴다는 것이다. 모델의 능력이 지수로 오르고 모델 둘레의 것도 함께 오르는데, 그 둘레에서도 더 일반적인 쪽이 보통 이긴다고 말한다. 자막은 이 교훈의 이름을 「the better lesson」으로 뭉갰다.

4. 한 제품에 붙는 길이 넷

한 제품, 쓰는 길 넷

클로드 코드 하나쓰는 길이 넷이다
터미널iTerm2·WSL·SSH·tmux 어디서나 돈다
IDE 안차이가 터미널 줄이 아니라 IDE 화면에 뜬다
깃허브슬래시 명령으로 앱을 깔고 저장소를 고른다
SDKclaude -p 를 유닉스 도구처럼 파이프에 끼운다
발표자가 「제품은 하나」라고 못 박은 자리다. 넷 다 같은 모델에 붙는 길이고 화면만 다르다. 깃허브 쪽은 사용자 컴퓨트에서 돌고 데이터가 앤트로픽으로 가지 않는다고 말한다.

터미널은 어디서나 돈다. 아이텀2, WSL, SSH와 tmux 세션, VS 코드나 커서의 터미널까지 가리지 않는다.

IDE에서 띄우면 조금 더 한다. 차이가 터미널 줄로 흐르는 대신 IDE 화면에 크게 뜨고 진단도 가져온다. 그러면서 커서나 윈드서프만큼 다듬어지지 않았다고 스스로 말한다. 두 제품을 매일 쓴다고도 덧붙인다.

깃허브는 발표 몇 주 전에 열렸다. 클로드를 켜고 슬래시 명령으로 앱을 깔고 저장소를 고르면 된다. 사용자 컴퓨트에서 돌고 데이터가 앤트로픽으로 가지 않는다고 말한다.

가장 끝까지 간 길이 *SDK다. 터미널 앱도 IDE 연동도 깃허브도 쓰지 않고 직접 붙이는 방식이다. 발표자는 사고 분류에 쓴다고 한다. GCP 로그를 claude -p 에 파이프로 밀어 넣고 결과를 jq로 훑는다. 유닉스 도구처럼 쓰는 것인데, 이 쓰임은 아직 아무도 제대로 못 찾았다고 말한다.

5. 무엇을 시켰을 때 잘 되나

가장 쉬운 입구는 코드베이스에 묻는 일이다. 앤트로픽은 입사 첫날 모든 엔지니어에게 클로드 코드를 가르치고, 이것으로 온보딩이 2~3주에서 이틀쯤으로 줄었다고 말한다. 발표자 본인은 월요일 스탠드업 전에 지난주에 무엇을 내보냈는지 묻고, 클로드가 깃 커밋을 훑어 답한다.

둘째는 도구를 가르치는 일이다. 예전 IDE는 플러그인을 만들어야 했다. 이맥스는 리스프 방언으로, 이클립스나 VS 코드는 확장으로 붙였다. 지금은 배시 도구와 *MCP 도구를 그냥 준다. 발표자가 자주 쓰는 방법은 CLI의 도움말을 읽게 하고 배운 것을 CLAUDE.md에 적어 두게 하는 것이다. 다리를 놓을 일이 없다고 말한다.

셋째가 순서다. 코드를 쓰기 전에 훑어보고 계획을 세워 사람에게 확인받게 한다. 확장된 사고는 맥락에 이미 무언가 들어와 있을 때 잘 듣는다고 말한다. 먼저 도구로 끌어오고 그다음에 생각하게 한다. 처음부터 생각부터 시키면 토큰만 쓴다.

넷째가 *TDD다. 사람이 하기는 어려운데 모델이 하니 잘 된다고 말한다. 시험을 먼저 쓰게 하되 아직 통과하지 않는다는 것을 분명히 알리고 돌리지 말라고 못 박는다. 시험을 쓰고 커밋하고, 그다음에 코드를 쓰고 커밋한다.

반복이 도는 조건

시킨다무엇을 만들지 말로 준다
출력을 본다유닛·통합 시험, iOS 시뮬레이터나 퍼피티어 스크린샷
고쳐 다시 한다첫 시도는 그런대로, 두세 번째가 쓸 만해진다
볼 수단이 없으면 이 고리가 안 돈다
발표자가 결과가 갈리는 자리로 든 것이다. 모델을 바꾸는 이야기가 아니라 출력을 볼 수단을 붙이는 이야기다. 3D 프린터를 로봇에 가르칠 때 카메라로 출력을 보게 한 사례를 든다.

TDD는 더 넓은 규칙의 한 경우라고 말한다. 붙잡고 반복할 목표가 있으면 결과가 훨씬 좋아진다는 것이다. 유닛 시험, 통합 시험, iOS 시뮬레이터 스크린샷, 퍼피티어 스크린샷 어느 쪽이든 출력을 볼 수단이면 된다. 로봇에게 3D 프린터를 가르칠 때도 카메라를 달아 출력을 보게 했다고 한다. 첫 시도는 그런대로고 두세 번째가 쓸 만해진다.

이날 플랜 모드가 나왔다. shift+tab을 누르면 시킨 일을 바로 하지 않고 계획을 세워 승인을 기다린다. 세 번째 방식을 손쉽게 만든 것이다.

마지막은 맥락을 더 주는 일이다. CLAUDE.md를 저장소 뿌리에 두고 하위 폴더나 홈 폴더에도 둘 수 있다. 특별한 폴더에 마크다운을 넣어 두면 슬래시 메뉴에 뜬다. 우물 정 자를 치면 기억해 두라고 시킬 수 있고 어느 메모리 파일에 넣을지 물어 온다. 이 대목에서 발표자는 아직 거칠다고 말한다. 첫 판이지만 처음으로 작동하는 판이라는 것이다.

질문 하나가 슬랙으로 들어왔다. 클로드 코드에 점점 더 맡기게 되고 한 번에 열 개가 십 분씩 돌면 이 도구를 어떻게 쓰느냐는 것이다. 답은 파워 유저들이 하는 방식이다. 터미널 탭을 여럿 열고 저장소를 여러 벌 받거나 같은 저장소를 *워크트리로 갈라 병렬로 돌린다. 깃허브 액션을 쓰면 더 쉽다. 대개 클로드들 사이를 맞출 일이 없고, 맞추기 싫으면 마크다운 파일에 쓰게 하라고 답한다.

6. 발표가 밝히지 않은 것

성능·비용·지연·정확도 수치가 없다. 모델이 지수로 좋아진다는 것이 발표의 뼈대인데 무엇을 얼마나 잰 이야기인지는 나오지 않는다. 나온 숫자는 온보딩이 2~3주에서 이틀로 줄었다는 것 하나인데, 그 이틀을 무엇으로 쟀는지도 밝히지 않는다.

기준선과 견준 자리는 하나뿐이고 방향이 반대다. 커서·윈드서프만큼 다듬어지지 않았다고 스스로 말하는 대목이다. 그 대신 무엇을 얻었는지는 「모델을 날것으로 겪게 한다」는 말로만 있고 잰 값이 없다.

「모른다」가 발표에서 세 번 나온다. 올바른 UX를 모르고, 유닉스 도구로 쓰는 법을 아무도 못 찾았고, 메모리는 아직 거칠다는 대목이다. 스스로 밝힌 한계라는 점에서 값이 있지만, 그래서 언제까지 모른 채로 둘 것인지, 무엇을 보면 알게 되는지는 나오지 않는다.

병렬로 돌릴 때의 조율도 「대개 필요 없다」에서 멈춘다. 필요한 경우가 어떤 경우인지, 마크다운 파일로 주고받다가 서로 부딪히면 어떻게 되는지는 다루지 않는다.

유효기간은 발표자가 직접 밝힌 셈이다. 프로 요금제 지원이 「어제부터」이고 플랜 모드가 「오늘」이다. 제품 이야기는 그만큼 빨리 낡는다.

용어

*타입어헤드
치는 도중에 뒤에 올 이름을 골라 보여 주는 기능. 영어로 type ahead
*퍼징
아무 값이나 잔뜩 넣어 보며 프로그램이 깨지는 자리를 찾는 시험. 영어로 fuzzing
*SDK
남이 만든 기능을 자기 프로그램 안에서 부르도록 묶어 둔 꾸러미
*MCP
모델이 바깥 도구와 데이터에 붙는 길을 정해 둔 규약. 영어로 model context protocol
*TDD
시험을 먼저 쓰고 그 시험을 통과하도록 코드를 쓰는 방식. 영어로 test-driven development
*워크트리
같은 저장소를 여러 폴더로 갈라 각각 다른 가지를 놓고 일하는 깃 기능