포스트

Claude Code 창조자 Boris Cherny와의 심층 대화: AI 시대 소프트웨어 엔지니어링의 대전환

Claude Code 창조자 Boris Cherny와의 심층 대화: AI 시대 소프트웨어 엔지니어링의 대전환

출처: The Pragmatic Engineer Podcast (2026년 3월 5일)
진행자: Gergely Orosz
게스트: Boris Cherny — Anthropic Claude Code 창조자 및 Head of Claude Code
원본 영상: https://www.youtube.com/watch?v=julbw1JuAz0


목차

  1. Boris Cherny는 누구인가
  2. Meta에서의 7년: 코드 품질의 과학적 접근
  3. Anthropic 입사 그리고 첫 번째 PR 거절 사건
  4. Claude Code의 탄생: 사이드 프로젝트에서 핵심 제품으로
  5. Boris의 일상적 Claude Code 워크플로우
  6. 병렬 에이전트: 한 명이 팀처럼 일하는 방법
  7. 코드 리뷰의 재발명: AI가 AI를 검토한다
  8. Claude Code의 아키텍처: 단순함이 강점이다
  9. 권한 시스템과 샌드박싱: 안전의 다층 구조
  10. Anthropic의 엔지니어링 문화: 타이틀 없는 조직
  11. Claude Cowork: 10일 만에 탄생한 제품
  12. 관찰 가능성과 프라이버시의 균형
  13. 에이전트 스웜(Agent Swarms): 팀처럼 협력하는 AI들
  14. 인쇄술의 비유: 우리는 지금 어디에 있는가
  15. 뛰어난 엔지니어의 새로운 아키타입
  16. AI 시대에 여전히 중요한 기술과 그렇지 않은 것
  17. 수치로 보는 현재: 업계 동향과 데이터
  18. 추천 도서와 마무리

1. Boris Cherny는 누구인가

Boris Cherny는 Anthropic에서 Claude Code를 창조하고 현재 그 팀을 이끄는 Head of Claude Code이다. 그러나 그가 이 자리에 오르기까지의 여정은 전형적인 ‘스타 엔지니어 커리어’와는 거리가 멀었다. 오히려 그의 이야기는 실용주의와 끝없는 호기심, 그리고 기술을 ‘수단’으로 바라보는 철학을 일관되게 관통한다.

Boris가 처음 HTML을 배운 건 13살 무렵, eBay에서 포켓몬 카드를 팔면서였다. 다른 판매자들의 상품 페이지를 분석하다가 HTML 서식을 사용하면 눈에 띌 수 있다는 걸 발견했고, <blink> 태그를 활용해 카드를 49센트 대신 99센트에 팔 수 있었다. 이것이 그의 첫 번째 “코딩으로 문제 해결” 경험이었다.

두 번째 계기는 중학교 수학 시간이었다. TI-83 그래픽 계산기로 수학 답을 미리 프로그래밍해 두었다가, 문제가 복잡해지면서 계수를 모르는 방정식까지 풀어야 했다. 결국 Basic에서 Assembly로 내려가 프로그램 실행 속도를 최적화했고, 반 전체 친구들에게 시리얼 케이블로 배포했다. 다음 수학 시험에서 반 전체가 A를 받자 선생님이 눈치챘고, “한 번은 봐주겠다”는 말로 일단락됐다.

이처럼 Boris에게 코딩은 항상 ‘도구’였다. 수학 성적을 올리기 위한 도구, 포켓몬 카드를 비싸게 팔기 위한 도구, 그리고 나중에는 더 나은 소프트웨어를 만들기 위한 도구. 그는 대학에서 경제학을 전공했고, 한때 스타트업을 전전하다가 YC 배치에도 참여했다.

TypeScript 최초 O’Reilly 서적의 저자

단순히 Meta의 고위 엔지니어라는 사실 외에도, Boris는 O’Reilly 출판사에서 TypeScript를 주제로 한 최초의 서적 Programming TypeScript를 집필했다. 이 책은 일본어로도 번역됐는데, 일본 소도시 서점에서 자신의 책이 일본어로 꽂혀 있는 것을 발견했을 때의 감동을 그는 지금도 생생히 기억한다. 그리고 아이러니하게도, 그 시점에 그는 Python만 쓰고 있어서 자기가 쓴 책의 TypeScript 내용을 전혀 기억하지 못했다고 한다.


2. Meta에서의 7년: 코드 품질의 과학적 접근

Facebook Groups에서 출발

Meta(당시 Facebook) 입사 이후 Boris는 Facebook Groups 팀에서 시작했다. 그를 채용한 Vlad Klesnikov는 나중에 ReactJS의 전신인 Bolt.js를 만드는 팀과 연관됐고, Boris는 이 시기 초기 JavaScript 생태계의 핵심 인물들과 교류하며 성장했다.

그를 Facebook Groups로 끌어당긴 것은 “사람들을 커뮤니티와 연결한다”는 미션이었다. Boris는 대학 시절 코딩을 아는 친구를 한 명도 못 만날 정도로 고립감을 느꼈고, Reddit의 프로그래밍 커뮤니티를 발견했을 때 비로소 “이 이상한 취미를 공유하는 사람들이 있었다”는 충격을 받았다. 그 연결의 감동이 그를 Facebook Groups 팀으로 이끌었다.

일본에서의 리모트 근무: Instagram 스택의 충격

2021년, 아내가 일본 농촌 지역 나라(奈良)에서 일자리 제안을 받았다. Boris는 “원격 근무 가능하니 괜찮다”고 했다가, 나라가 ‘일본 시골’이라는 사실을 뒤늦게 알았다. 12시간 시차에도 불구하고 Instagram 팀에 합류해 원격으로 근무했다.

이때 그가 겪은 문화 충격은 Facebook과 Instagram의 기술 스택 차이였다. Facebook의 Hack 언어, HHVM 런타임, GraphQL, Relay, React로 이루어진 스택은 “세계 최고의 웹 서빙 스택”이었다. 반면 Instagram은 타입 체커도, Click to Definition도 제대로 동작하지 않는 Python/Django 기반이었다. Boris는 이 스택에서 효과적으로 일할 수 없다는 사실을 빠르게 깨닫고, 직접 Dev Infra 개선 작업에 뛰어들었다. Python에서 Facebook 모노레포로 마이그레이션, REST에서 GraphQL로 마이그레이션 등의 대규모 프로젝트를 이끌었다.

코드 품질의 생산성 기여도 측정

Meta에서 Boris가 마지막으로 맡은 역할은 Instagram, Facebook, WhatsApp, Messenger, Reality Labs 등 Meta 전사의 코드 품질을 담당하는 것이었다. 여기서 그는 “Better Engineering”이라는 프로그램을 운영했다. 이 프로그램은 Zuckerberg가 2016~2018년경 “모든 엔지니어가 근무 시간의 20%를 기술 부채 해결에 써야 한다”고 선언한 것에서 비롯됐다.

Boris 팀은 코드 품질이 엔지니어링 생산성에 미치는 영향을 인과 추론(causal inference) 방법론으로 측정했다. 결론적으로, 코드 품질은 엔지니어링 생산성에 두 자릿수 퍼센트(double digit percent) 기여하는 것으로 나타났다. 정리되지 않은 코드베이스에서 새 기능을 만들 때 “프레임워크 X, Y, Z 중 뭘 써야 하지?”라는 결정 비용이 엔지니어뿐 아니라 AI 모델에게도 부담이 된다는 통찰도 이 경험에서 나왔다.


3. Anthropic 입사 그리고 첫 번째 PR 거절 사건

왜 Anthropic을 선택했나

Meta 이후 Boris는 여러 AI 연구소와 접촉했다. Anthropic을 선택한 이유는 단순했다. 첫째, 미션이었다. 그는 SF 소설 마니아로, AI가 잘못되면 얼마나 끔찍한 결과가 생길 수 있는지 책을 통해 충분히 상상했고, 그것을 막으려는 진지한 사람들이 있는 곳에 합류하고 싶었다. 둘째, 문화였다. Anthropic 직원들과 첫 점심에서 본인이 읽은 Greg Egan의 어느 하드SF 소설 이야기를 꺼냈더니, 테이블의 모두가 그 책을 읽었고 더 심도 있는 추천 도서 토론이 벌어졌다. 비슷한 사람들이 모인 곳이라는 직감이 왔다.

손으로 쓴 코드 때문에 거절당한 첫 PR

Anthropic에 입사하자마자 Boris는 첫 PR(Pull Request)을 손으로 작성했다. 당시 그는 그것이 코드를 작성하는 방법이라고 생각했기 때문이다. 그런데 그의 온보딩 담당자인 Adam Wolf가 PR을 거절하며 말했다. “이 ‘Clyde’라는 걸 써봐.” Clyde는 Claude Code의 전신으로, Python으로 작성된 연구용 코드였다. 시작에 40초가 걸렸고, 에이전틱 기능도 없었으며, 플래그를 정확히 맞춰 조심스럽게 프롬프트해야만 동작했다.

그럼에도 불구하고 반나절을 투자해 사용법을 익힌 Boris는 경이로움을 경험했다. “동작하는 PR이 한 번에 나왔다.” 이것이 그의 첫 번째 Anthropic 내부에서의 ‘AI 감탄’ 순간이었다. 그는 탭 자동 완성이나 라인 단위 보완은 써봤지만, AI가 동작하는 PR 전체를 생성한다는 건 상상도 못했다.


4. Claude Code의 탄생: 사이드 프로젝트에서 핵심 제품으로

“layer under the layer를 이해하라”는 원칙

Boris는 Anthropic에 합류한 뒤 잠시 강화학습(RL) 팀에서 직접 모델 레이어를 경험했다. 그는 이것이 시간 낭비가 아니라 필수적인 이해라고 믿는다. 예전에는 “JavaScript를 쓴다면 JavaScript VM을 이해하라”였다면, 지금은 “AI 코드를 쓴다면 모델을 이해하라”로 바뀌었을 뿐이다.

Bash 도구 하나로 시작된 실험

Boris는 어느 날 Anthropic 공개 API를 처음 사용해보고 싶었다. UI를 만들기 싫었던 그는 터미널 기반의 채팅 앱을 빠르게 만들었다. 초기에는 그냥 채팅봇이었다. 그런데 그 무렵 tool use 기능이 막 출시됐고, Boris는 궁금해서 bash 도구 하나를 모델에 붙여봤다.

그러고는 단순한 테스트로 “지금 나 어떤 음악 듣고 있어?”라고 물었다. 모델은 즉시 AppleScript를 작성해 음악 플레이어를 실행하고 현재 재생 중인 곡을 쿼리해 대답했다. Sonnet 3.5가 한 번에 성공시켰다. 이것이 그의 두 번째 ‘AI 감탄’ 순간이었다.

이 경험에서 핵심 통찰이 나왔다. “모델은 도구를 사용하고 싶어 한다. 도구를 주면 스스로 방법을 찾는다.” 당시 AI 코딩 접근법의 패러다임은 “모델을 박스에 넣고, 그 박스가 담당할 함수를 정의하고, 나머지는 일반 코드로 처리하는” 방식이었다. Boris는 이것이 틀렸다고 생각했다. 모델 자체가 독립적인 에이전트여야 하고, 도구와 환경을 주면 스스로 목표를 달성해야 한다는 것이었다.

내부 채택과 출시 논쟁

Claude Code는 순식간에 Anthropic 엔지니어들 사이에서 퍼졌다. 내부 채택 차트는 수직으로 상승했다. 이 단계에서 Anthropic 내부에서 논쟁이 벌어졌다. “이걸 외부에 공개할 것인가, 아니면 내부 생산성 도구로만 쓸 것인가?”

최종 결정은 출시였다. 이유는 안전 연구였다. 에이전틱 AI의 실제 안전성을 이해하려면 현실 세계에서 사용자들이 어떻게 쓰는지 관찰해야 했다. 실험실에서 ‘페트리 접시’에 넣어 합성적으로 연구하는 것과, 실제 야생(in the wild)에서 관찰하는 것은 학습량이 다르다. 이 결정 덕분에 Claude Code는 지금까지 모델을 훨씬 안전하게 만드는 데 기여했다.

Dario가 “이게 이렇게 빨리 퍼진 건 억지로 쓰게 한 거야?”라고 물었을 때, Boris의 대답은 단호했다. “사람들이 발로 투표했어요.” 강제한 적이 없다. 그냥 출시하고, 사용자 피드백을 들었고, 개선했을 뿐이다.

성장의 변곡점: Opus 4와 Sonnet 4 출시 시점

처음 출시된 Claude Code는 사실 하룻밤 사이의 히트작이 아니었다. 초기에는 느린 이륙(slow take-off)이었다. 진짜 폭발적 성장은 Opus 4와 Sonnet 4가 출시된 2025년 5월에 왔다. 그때부터 성장이 지수 함수적으로 변했다.


5. Boris의 일상적 Claude Code 워크플로우

Boris의 개인 워크플로우는 “놀랍도록 단순(surprisingly vanilla)”하다는 게 업계의 평가다. 복잡한 커스터마이징 없이도 Claude Code 기본 기능만으로 엄청난 생산성을 낸다.

5개의 병렬 터미널 탭

Boris는 일반적으로 5개의 터미널 탭을 열어두고, 각각 저장소의 별도 체크아웃(checkout) 디렉토리를 사용한다. 이렇게 하면 5개의 Claude Code 세션이 서로 방해받지 않고 병렬로 실행된다.

최근에는 Claude Desktop 앱의 내장 Git Worktrees 지원을 활용하는 비중이 늘었다. Worktrees는 하나의 저장소 클론으로부터 여러 작업 디렉토리를 만드는 Git 기능인데, 명령줄에서 직접 조작하기 번거로웠다. Claude Desktop이 이를 네이티브로 지원하면서 귀찮음이 줄었다.

플랜 모드에서 시작

거의 모든 작업을 플랜 모드(Plan Mode)에서 시작한다. 이것은 Claude Code에서 Shift+Tab을 두 번 누르면 진입하는 모드로, Claude가 즉시 코드를 수정하지 않고 계획만 세우는 모드다.

Boris의 원칙은 명확하다. “목표가 PR을 작성하는 거라면, 플랜 모드에서 Claude와 주고받으며 계획이 마음에 들 때까지 조율한다. 그 후 자동 편집 모드(auto-accept edits)로 전환하면 Claude가 대부분 한 번에 구현한다. 좋은 계획이 정말 중요하다.” Opus 4.6부터는 좋은 계획만 있으면 구현을 거의 항상 원샷(one-shot)으로 완료한다.

CLAUDE.md: 누적되는 팀 지식

각 팀은 저장소에 CLAUDE.md 파일을 관리한다. 이 파일에는 실수 패턴, 스타일 컨벤션, 디자인 가이드라인, PR 템플릿 등이 축적된다. Boris의 팀 CLAUDE.md는 현재 약 2,500 토큰 분량이다. Boris는 동료가 PR을 올리면 @.claude 태그를 달아 배운 점을 CLAUDE.md에 추가하는 형태로 팀 지식을 계속 쌓는다.

iOS 앱으로 아침을 시작하는 습관

놀랍게도 Boris는 매일 아침 iPhone으로 몇 개의 에이전트를 시작한다. Claude iOS 앱의 Code 탭이 데스크탑과 동일한 Claude Code 기능을 제공하며, 클라우드에서 실행된다. 6개월 전에는 상상도 못했던 일이지만, 지금은 자신의 코드 중 약 3분의 1을 폰으로 시작한다고 추정한다.

검증 루프가 가장 중요하다

Boris가 가장 강조하는 것은 피드백 루프를 통한 자기 검증이다. Claude에게 단순히 코드를 작성하게 하는 게 아니라, 그 코드를 검증할 수 있는 방법을 함께 제공한다. 테스트 스위트 실행, 브라우저에서 UI 열기, bash 커맨드 실행 등이다. 이 검증 루프를 갖추면 코드 품질이 “2-3배 향상된다”고 말한다.

Claude Code 자체도 내부 수정 시 자기 자신을 bash 서브프로세스로 실행해 동작을 확인한다. Opus 4.5부터는 누가 시키지 않아도 자발적으로 이런 자기 검증을 하기 시작했다.


6. 병렬 에이전트: 한 명이 팀처럼 일하는 방법

초보자에게는 Learn 모드, 숙련자에게는 병렬 모드

Claude Code에 처음 입문하는 사람이나 새 코드베이스를 파악할 때는 /config에서 explanatory 출력 스타일을 선택하면 Claude가 각 단계를 설명하며 작업한다. 이 모드는 온보딩과 이해에 탁월하다.

반면 코드베이스를 이미 잘 아는 숙련자에게는 속도가 우선이다. Boris의 워크플로우는 5개 탭에서 동시에 작업을 시작하고, 각 탭이 알림을 보내면 확인하는 방식이다. 집중 모드(Focus Mode)를 켜고 알림을 끄거나, 반대로 시스템 알림을 켜두고 완료를 기다리는 두 가지 방식을 상황에 맞게 사용한다.

하루에 20~30개의 PR

Boris는 하루에 20~30개의 PR을 제출한다. 그 규모는 제각각이다. 한 줄짜리도 있고, 수천 줄짜리도 있다. 이전 세대의 고생산성 엔지니어들이 대부분 코드 마이그레이션 같은 반복적 작업으로 수를 채웠다면, 지금 Boris의 PR들은 내용 면에서 완전히 다양하다. 코드 마이그레이션은 Claude에게 맡기고, 직접 관여할 필요가 없다.

/commit-push-pr 슬래시 명령어

Boris는 매일 수십 번 사용하는 /commit-push-pr 같은 슬래시 명령어를 저장소에 체크인해 팀 전체가 공유한다. git 명령, 커밋 메시지 작성, PR 생성 등의 반복 작업을 에이전트가 자율적으로 처리한다. 이런 자동화가 쌓여 “복리처럼 생산성이 증가한다”는 게 그의 표현이다.


7. 코드 리뷰의 재발명: AI가 AI를 검토한다

과거의 접근: 스프레드시트로 패턴 수집

Boris는 Instagram 시절 가장 많은 코드를 작성했을 뿐 아니라 가장 많은 코드 리뷰를 하는 엔지니어이기도 했다. 시차 덕분에 회의가 없었기 때문에 가능한 일이었다.

그의 방식은 독특했다. 리뷰 중 문제점을 발견할 때마다 스프레드시트에 기록했다. 함수의 파라미터 이름이 나쁘다거나, 잘못된 React 패턴이라거나. 특정 항목이 3~4회 이상 반복되면 직접 lint 규칙으로 자동화했다. 즉, 리뷰어로서의 자기 역할을 스스로 자동화했다.

현재의 접근: Claude가 모든 PR을 리뷰

이제 Anthropic의 모든 PR은 Claude Code에 의해 1차 코드 리뷰를 받는다. Claude Agent SDK를 CI 파이프라인에 통합해 자동으로 실행된다. 이 1차 리뷰는 버그의 약 80%를 잡아낸다고 Boris는 추정한다. Claude는 일부 문제를 자동으로 수정하고, 불확실한 것은 인간에게 넘긴다. 그리고 항상 엔지니어 한 명이 2차 리뷰를 하고, 최종 프로덕션 배포 전 인간의 승인을 거친다.

비결정론적 AI 리뷰의 한계와 보완

LLM은 비결정론적(non-deterministic)이다. 같은 코드를 보더라도 매번 다른 피드백을 낼 수 있다. Boris는 이 한계를 여러 방식으로 보완한다.

첫째는 타입 체커, 린터, 빌드 실행 같은 결정론적 도구를 병행 사용한다. 둘째는 “Best of N” 방식으로, 여러 에이전트가 병렬로 같은 리뷰를 수행하고 거짓 양성(false positive)을 제거하는 중복 제거(deduping) 에이전트를 추가로 실행한다. 놀랍게도 이 “Best of N”을 구현하는 방법은 간단하다. “3개의 에이전트를 시작해서 이걸 해줘”라고 Claude에게 말하는 것이 전부다.

셋째로, 누군가의 PR에 lint로 잡을 수 있는 패턴이 보이면, Boris는 PR 코멘트에서 @claude를 태그해 “이것에 대한 lint 규칙 작성해줘”라고 요청한다. Claude Code에서 /setup-github를 설정하면 GitHub 앱이 설치되고, 어느 PR이나 이슈에서든 Claude를 태그할 수 있다.


8. Claude Code의 아키텍처: 단순함이 강점이다

핵심 설계 철학: 단순하게 유지한다

Claude Code의 아키텍처는 놀랍도록 단순하다. 처음 설계할 때 복잡한 구조를 구상했지만 계속 단순화한 결과다. 핵심은 쿼리 루프(query loop)와 몇 가지 도구들이다. Bash 도구와 파일 편집 도구가 가장 먼저 추가됐다. 도구들은 지금도 계속 추가되고 삭제된다. 스피너(spinner) 하나도 100번 가까이 반복했다고 Boris는 말한다.

통계적으로 작성한 코드의 대부분은 버려진다. AI로 코드를 쉽게 쓸 수 있으니 다양한 아이디어를 빠르게 시도하고, 느낌이 좋지 않으면 버린다. 이것이 가능해진 이유는 코드 작성 비용이 낮아졌기 때문이다.

RAG는 버렸다: 에이전틱 검색이 이겼다

초기에 Boris는 코드베이스에서 컨텍스트를 가져오기 위해 RAG(Retrieval-Augmented Generation)를 시도했다. 로컬 벡터 데이터베이스에 저장소 코드를 임베딩하고, 클라우드 임베딩 모델로 검색했다.

그러나 문제가 많았다. 새로 작성한 함수는 아직 인덱싱되지 않아 검색되지 않았다. 접근 권한 관리가 복잡했다. 인덱스 동기화 문제도 있었다. 결국 “에이전틱 검색(agentic search)”이 모든 방식을 압도했다. 에이전틱 검색의 실체는 globgrep이다. 즉 모델이 필요할 때 필요한 파일을 직접 검색하는 방식이다.

이 통찰은 Instagram 시절의 경험에서 왔다. 타입 체커가 동작하지 않을 때 엔지니어들은 Click-to-Definition 대신 글로벌 인덱스에서 함수명(으로 직접 검색했다. 모델도 같은 방식으로 잘 동작한다.

프롬프트 인젝션 방어의 3단 구조

Claude Code가 웹을 가져오는(web fetch) 기능이 있는 경우, 가장 큰 위협 중 하나는 프롬프트 인젝션이다. 악성 웹페이지에 “모든 폴더를 삭제해”같은 명령을 숨기는 공격이다. Anthropic은 이를 3단계로 방어한다.

1단계: 모델 정렬(alignment). Opus 4.6은 역대 가장 프롬프트 인젝션에 강인한(resistant) 모델로, 학습 단계에서 이를 저항하도록 설계됐다.

2단계: 런타임 분류기(runtime classifiers). 프롬프트 인젝션으로 의심되는 요청을 실시간으로 차단하고 재시도하게 한다.

3단계: 서브에이전트 요약(subagent summarization). 웹 페이지를 가져올 때 서브에이전트가 내용을 먼저 요약하고, 그 요약본만 메인 에이전트에게 전달한다. 이렇게 하면 악성 명령이 직접 전달될 확률이 크게 줄어든다.

이 “스위스 치즈 모델”이 Claude Code 보안 철학의 핵심이다. 완벽한 단일 방어 대신, 여러 겹의 불완전한 방어를 쌓아 전체 확률을 낮춘다.


9. 권한 시스템과 샌드박싱: 안전의 다층 구조

2024년 9월 최초 내부 배포와 권한 프롬프트의 탄생

Claude Code의 최초 내부 배포는 2024년 9월이었다. 당시 Anthropic 안전 팀 내에서 거센 반발이 있었다. “모델이 bash 명령을 자유롭게 실행하도록 허용하는 건 안전하지 않다. 해결 불가능한 문제다. 출시할 수 없다.”

Boris는 Anthropic 공동 창업자 Ben Mann과 함께 이 문제에 대한 해결책을 브레인스토밍했다. 결론은 단순하고 우아했다. “확실하지 않으면 인간에게 물어보고, 인간이 결정하게 하자.” 이것이 권한 프롬프트(permission prompts) 시스템의 탄생이다. 명령 실행 전에 “한 번만 허용”, “이 세션에서 허용”, “항상 허용” 중 하나를 선택하게 하는 방식이다.

Unix 유틸리티도 안전하지 않다

Boris가 강조하는 흥미로운 사실이 있다. find 명령어나 sed 같은 표준 Unix 유틸리티도 실제로는 위험할 수 있다. find-exec 플래그로 임의의 코드를 실행할 수 있다. sed에도 시스템 수준의 플래그가 있다. 표면상 “읽기 전용”처럼 보이는 도구도 데이터를 외부로 전송하거나 다른 위험한 동작을 할 수 있다. 그래서 Claude Code는 기본적으로 매우 보수적인 권한 정책을 취한다.

오픈소스 샌드박싱

Anthropic은 Claude Code의 샌드박싱 컴포넌트를 오픈소스로 공개했다. 사용자 정의 허용 목록(allow list)과 차단 목록(block list)을 설정할 수 있으며, Claude Code는 이 목록의 안전성도 자체적으로 검사한다.


10. Anthropic의 엔지니어링 문화: 타이틀 없는 조직

“Member of Technical Staff” — 모두 같은 타이틀

Anthropic에서는 엔지니어, PM, 디자이너, 데이터 과학자 모두의 타이틀이 “Member of Technical Staff”이다. Boris는 이 선택을 “미래를 미리 구현한 것”이라고 본다.

타이틀이 없으면 Slack에서 처음 보는 사람에게 연락할 때 “소프트웨어 엔지니어니까 코드 관련 질문만 해야지”라는 선입견이 사라진다. 모든 사람이 무엇이든 한다는 것이 기본 전제가 된다. Boris는 이것이 “사람들 사이의 관계를 역전(invert)시키는 낙관주의”라고 표현한다.

PRD 없는 프로덕트 개발

Anthropic Claude Code 팀은 PRD(Product Requirements Document)를 거의 작성하지 않는다. 대신 프로토타입을 직접 만들어 보여준다. Boris는 Claude Cowork의 ToDo 리스트 UI 하나를 위해 하루 반 동안 15 ~ 20개의 프로토타입을 만들었다. 예전 방식이었다면 같은 수의 프로토타입에 1~2주가 걸렸을 것이다.

Claude Code 팀의 문화는 “작성하지 않고 보여준다(don’t write, show)”. 뭔가를 제안하려면 문서보다 동작하는 프로토타입을 먼저 만든다.

엔지니어뿐 아니라 모두가 코드를 쓴다

Boris가 어느 날 사무실에서 데이터 과학자가 Claude Code로 SQL 쿼리를 실행하고 터미널에서 ASCII 시각화를 보고 있는 것을 발견했다. 다음 주에 데이터 과학자 팀 전체가 Claude Code를 쓰고 있었다. 현재 Claude Code 팀에서는 엔지니어링 매니저, 디자이너, 데이터 과학자, 재무 담당자 등 모두가 코드를 작성한다.


11. Claude Cowork: 10일 만에 탄생한 제품

비엔지니어들의 잠재 수요 포착

Anthropic이 Claude Cowork를 만든 계기는 비엔지니어들이 이미 Claude Code를 쓰고 있다는 신호를 포착했기 때문이다. 자신의 토마토 식물에 웹캠을 달고 Claude Code로 매일 모니터링하는 사람, 손상된 하드드라이브에서 결혼 사진을 복구하는 사람, Anthropic 영업팀과 재무팀 직원들. 이들은 모두 엔지니어 도구를 위해 설계되지 않은 Claude Code를 억지로 사용하고 있었다.

제품 세계에서 이것은 강력한 신호다. 자신을 위한 제품이 아닌데도 사용하기 위해 불편함을 감수하는 사람들이 있다면, 그들을 위한 제품을 만들어야 할 때다.

10일 개발 과정

Cowork는 소규모 팀이 약 10일 만에 완성했다. 전부 Claude Code로 만들었다. Mac OS에서 먼저 출시하고, 윈도우 지원은 이후 추가했다(에피소드 공개 시점에는 윈도우도 지원 예정이었다).

기술 구성

기반 기술은 Claude Desktop 앱과 동일하다. Electron과 TypeScript 기반이다. Claude Code 팀의 Felix는 초기 Electron 개발자 중 한 명이기도 하다. 제품 로직 자체는 비교적 단순하다. Claude Desktop 앱에서 Cowork 탭, Code 탭, Chat 탭으로 나뉜 구조를 공유하기 때문에 기반 로직을 재사용했다.

대부분의 복잡성은 안전 시스템에 있다. 비기술 사용자가 실수로 가족 사진을 삭제하는 상황을 막기 위한 분류기, 가상 머신 내 실행, OS 레벨 보호 장치, 프롬프트 인젝션 방어, 그리고 Chrome 익스텐션과의 권한 모델 통합이 복잡한 부분이다.

Chrome 익스텐션과의 시너지

Cowork의 진정한 가치는 Chrome 익스텐션과 결합할 때 나온다. 비기술 사용자의 도구는 CLI가 아니라 브라우저이기 때문이다. Boris는 매주 팀 스프레드시트를 확인하고 상태 미기입 엔지니어에게 Slack 메시지를 보내는 작업을 Cowork에게 맡긴다. Cowork는 Chrome에서 스프레드시트 탭과 Slack 탭을 열고, 자동으로 메시지를 보낸다. 대부분의 이름은 자동완성이 되지만, 한 명만 자동완성이 안 된다는 사소한 이슈가 있다고 한다.


12. 관찰 가능성과 프라이버시의 균형

Anthropic은 기업 고객을 주요 타깃으로 하기 때문에 프라이버시와 보안이 최우선이다. 버그 리포트가 들어와도 Boris는 사용자의 로그를 직접 열어볼 수 없다. 모든 로깅은 프라이버시를 보존하는 방식으로만 이루어진다.

관찰 가능성 도구는 일부 상용 벤더와 일부 자체 구현을 혼합한다. 기능 플래그와 롤아웃 관리도 사용한다. Cowork 출시 이후 가장 놀라운 피드백은 “사람들이 얼마나 사랑하는가”였다. Claude Code가 처음에 느린 이륙이었던 것과 달리, Cowork는 즉각적인 히트작이었다.


13. 에이전트 스웜(Agent Swarms): 팀처럼 협력하는 AI들

비상관 컨텍스트 윈도우의 원리

에이전트 팀(Agent Teams)의 핵심 개념은 “비상관 컨텍스트 윈도우(uncorrelated context windows)”다. 여러 에이전트가 각자 독립적인 컨텍스트에서 시작하면, 서로의 편향이나 오류가 전파되지 않는다. 이것이 단순히 토큰을 더 쏟아붓는 것보다 나은 결과를 내는 이유다. 독립된 컨텍스트들이 집합적으로 더 나은 솔루션을 찾는다는 의미에서 이는 테스트 타임 컴퓨트(test-time compute)의 한 형태다.

이미 Claude Code에서 에이전트(sub-agent)를 사용하면 자식 에이전트의 컨텍스트는 부모 컨텍스트를 모른다. 반면 슬래시 명령어나 스킬은 부모 컨텍스트를 공유한다.

플러그인 전체를 스웜으로 개발한 사례

Anthropic의 플러그인 기능 전체가 에이전트 스웜으로 만들어졌다. 팀원인 Daisy는 한 주말 동안 초기 스웜 버전으로 다음과 같은 작업을 시켰다.

  1. 플러그인 스펙을 스스로 만들어라
  2. Asana 보드를 만들고 태스크를 분해하라
  3. 각 에이전트가 각 태스크를 구현하라

컨테이너를 설정하고 Dangerous Mode로 Claude를 실행한 후 주말 내내 돌렸다. 수백 개의 에이전트가 생성되고, 100개의 Asana 태스크가 만들어지고, 구현이 완료됐다. 실제로 배포된 플러그인 기능은 이 주말 스프린트의 결과물이 기반이 됐다.

에이전트 팀이 빛나는 상황

단일 Claude가 어려움을 겪는 복잡한 작업에서 팀(스웜)이 효과를 발휘한다. Boris 팀은 Opus 4.6과 에이전트 팀을 결합해 내부 평가에서 현저히 향상된 결과를 확인했다. 다만 토큰을 대량 소비하기 때문에 모든 작업에 쓰는 것은 비효율적이다. 그래서 기본적으로 opt-in 방식의 리서치 프리뷰로 공개됐다.


14. 인쇄술의 비유: 우리는 지금 어디에 있는가

이 에피소드에서 가장 많이 인용되는 부분은 Boris의 인쇄술(printing press) 비유다.

1400년대 유럽의 필경사

1400년대 유럽에서 읽고 쓸 줄 아는 사람은 인구의 1% 미만이었다. 필경사(scribes)는 수년간의 훈련과 왕족의 후원을 받아야 했다. 왕이나 귀족 중에도 문맹이 많았고, 이들은 필경사를 고용해 자신의 의사를 대신 기록하게 했다.

그런데 구텐베르크의 인쇄술이 등장하자, 50년 만에 인쇄 비용은 100배 하락하고 출판물 수량은 10,000배 증가했다. 문맹률은 수 세기에 걸쳐 천천히 70%까지 하락했다. 그리고 중요한 것은, 필경사가 사라진 자리에 작가(writers)와 저자(authors)라는 완전히 새로운 직종이 생겼다는 점이다. 문학 시장 자체가 폭발적으로 확장됐기 때문이다.

소프트웨어 엔지니어 = 오늘날의 필경사?

Boris는 소프트웨어 엔지니어가 현대의 필경사라는 비유를 제시한다. 코드를 쓸 줄 아는 사람은 여전히 소수 특권층이다. 사업주들은 원하는 것을 가지고 있지만 직접 만들 수 없어 엔지니어를 고용한다. 필경사를 고용하던 문맹 왕처럼.

이 비유가 암시하는 것은 두 가지다. 첫째, 코딩이 더 많은 사람에게 접근 가능해지면 시장 자체가 폭발적으로 확장된다. 둘째, 필경사가 작가로 진화했듯, 소프트웨어 엔지니어도 무언가로 진화할 것이다. 그것이 무엇인지는 지금으로서는 예측 불가능하다.

Andrej Karpathy의 고백과 일반적 감정

Andrej Karpathy(전 OpenAI 연구자)가 “지금처럼 프로그래머로서 뒤처지는 느낌을 받은 적이 없다”고 포스팅했을 때, Boris는 공감과 당혹감을 함께 표했다. 모델이 이전 모델에서 통했던 접근법을 망가뜨리고, 이전에 안 되던 것이 새 모델에서 되기도 한다. “항상 초보자 마인드셋으로 돌아가야 한다”는 것이 그의 결론이다.

흥미로운 점은 Boris 자신도 메모리 누수를 디버깅할 때 예전 방식으로 시작했다가 Claude가 그것을 한 번에 원샷으로 해결하는 모습을 보고 충격을 받았다는 것이다. 자신이 만든 도구의 능력에 스스로 놀라는 역설적인 상황이다.


15. 뛰어난 엔지니어의 새로운 아키타입

Boris는 Anthropic에서 함께 일하는 사람들이 자신의 커리어 전체에서 만난 가장 뛰어난 엔지니어들이라고 말한다. 그들 사이에서 몇 가지 아키타입이 보인다.

프로토타이퍼(Prototyper): 아이디어를 0에서 0.5로 빠르게 만드는 사람. 기술이 가능한지 탐색하고 아이디어를 현실로 처음 만들어낸다.

제품 시장 적합성 탐색자(PMF Hunter): 0에서 1까지 또는 0.5에서 1까지 가져가는 사람. 무엇을 만들어야 하는지를 알아내는 능력이 핵심이다.

경계를 넘는 하이브리드(Cross-discipline hybrid): 엔지니어링과 프로덕트, 인프라 엔지니어링과 제품 엔지니어링, 디자인과 엔지니어링 등을 넘나드는 사람. 이런 유형이 점점 더 많아지고 있다.


16. AI 시대에 여전히 중요한 기술과 그렇지 않은 것

사라져도 괜찮은 기술들

Boris는 특정 언어나 프레임워크에 대한 강한 의견을 고집하는 것은 이제 덜 중요해졌다고 말한다. AI 모델은 어떤 언어와 프레임워크도 사용할 수 있고, 마음에 들지 않으면 다시 쓰게 할 수 있다. 끝없는 언어 논쟁과 프레임워크 선호도 논쟁은 의미를 잃고 있다.

또한 매우 좁은 전문성만 가진 스페셜리스트 역할도 변화에 직면할 것이다. 단, 이것이 깊은 이해가 불필요하다는 의미는 아니다. 오히려 반대다.

더 중요해진 기술들

가설 기반의 방법론적 사고: 제품 설계에서도, 디버깅에서도, “무엇을 가설로 설정하고 어떻게 검증할 것인가”라는 사고방식은 AI 시대에도 핵심이다.

수영 레인을 넘는 호기심: 엔지니어링을 하면서도 비즈니스를 이해하고, 디자인을 이해하고, 사용자를 이해하는 사람이 정말 좋은 제품을 만들 수 있다.

빠른 컨텍스트 전환 능력: Boris의 표현으로 “ADHD의 해(Year of ADHD)”. 깊은 집중(deep work)의 중요성이 줄어들고, 여러 에이전트 사이를 빠르게 오가며 맥락을 전환하는 능력이 중요해졌다.

적응력: 새 모델이 나올 때마다 이전 접근법을 버리고 새로운 방법을 시도하는 유연성. 과거에 “한 번 해봤는데 안 됐어”가 이제는 “3개월마다 다시 시도해 봐”가 됐다.

초보자 마음(Beginner’s Mind): 지적 겸손함. 이전의 좋았던 아이디어가 새 모델에서 나쁜 아이디어가 되고, 과거에 나쁜 아이디어가 좋은 아이디어가 된다. 선입견 없이 접근하는 태도가 경쟁력이다.


17. 수치로 보는 현재: 업계 동향과 데이터

2026년 초 기준으로 공개된 수치들은 AI 코딩의 현실을 구체적으로 보여준다.

Boris Cherny 개인의 경우 2개월 이상 단 한 줄의 코드도 직접 작성하지 않았다. Anthropic 전사 기준으로 코드의 70~90%가 AI로 생성되며, Claude Code 자체 코드베이스는 약 90%가 Claude Code로 작성된다.

Anthropic에서 Claude Code 런칭 1년 후: Boris의 코드는 2025년 11월부터 100% AI 작성(수동 편집 제로), 공개 GitHub 커밋의 4%가 Claude Code로 작성됐으며 2026년 말에는 20%에 달할 것으로 예측된다. 엔지니어 1인당 엔지니어링 생산성은 200% 증가했다.

반면 더 넓은 업계에서는 속도가 다르다. Microsoft CEO 사티아 나델라는 2025년 4월 Microsoft에서 AI가 코드의 약 30%를 생성하고 있다고 밝혔다. Salesforce도 비슷한 수치를 제시했다. Science 저널에 발표된 연구에 따르면 미국의 GitHub Python 함수 중 약 29%가 AI로 작성된 것으로 나타났다.

Boris는 “2026년 말에는 ‘소프트웨어 엔지니어’라는 타이틀이 사라지기 시작하고 ‘빌더(builder)’로 대체될 것”이라고 전망했다.

Claude Code는 빠른 속도로 ARR 10억 달러에 근접했다는 업계 평가가 있다.


18. 추천 도서와 마무리

Boris가 이 에피소드에서 추천한 책들은 그의 사고방식을 잘 보여준다.

류츠신(Liu Cixin)의 단편 소설집: 『삼체』의 저자이지만, Boris는 단편 소설들이 더 깊이 있다고 말한다. SF에 처음 입문하는 사람에게도 좋다.

Accelerando (찰스 스트로스 저): AI 시대에 가장 어울리는 SF 소설로 강력 추천했다. 기술적 특이점(singularity) 이전부터 목성 궤도를 도는 바닷가재 의식 집합체까지 이어지는 이 소설이 “지금 이 순간의 가속화된 변화의 감각”을 가장 잘 포착했다고 말한다.

Functional Programming in Scala: 기술서로는 이 책을 강력 추천했다. 언어 선택이 중요하지 않아진 시대에도, 함수형 프로그래밍의 타입 시스템 사고방식은 코드를 더 잘 설계하는 법을 가르쳐 준다고 강조했다. 연습 문제를 전부 세 번씩 풀었다고 한다.


마무리 소감: 변화의 속도와 낙관의 근거

이 에피소드가 남기는 핵심 메시지는 두 가지다.

하나는 낙관주의다. 필경사가 사라진 자리에 작가와 저자가 생긴 것처럼, 코드를 손으로 쓰는 엔지니어가 줄어드는 자리에 무언가 새로운 것이 생길 것이다. 그것이 정확히 무엇인지는 지금 아무도 예측할 수 없다. 인쇄술 시대의 누구도 마이크로폰이 생길 거라고 예측하지 못했듯이.

다른 하나는 겸손함의 강요다. 매 분기 새 모델이 나오고, 이전에 안 됐던 것이 되고 이전에 됐던 것이 최선이 아니게 된다. 이 변화의 속도에서 유일하게 안전한 태도는 “나는 틀릴 수 있다. 그러므로 빠르게 시도하고 배우겠다”는 것이다.

Boris Cherny 자신도 자기가 만든 도구의 능력에 매일 놀라고 있다. 그것이 어쩌면 우리가 지금 살고 있는 시대의 가장 정직한 묘사일 것이다.


작성 일자: 2026-03-07
원본 팟캐스트: The Pragmatic Engineer Podcast, 2026년 3월 5일
게스트: Boris Cherny (Head of Claude Code, Anthropic)

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.