서론
1년 전만 해도 Rails 창시자 David Heinemeier Hansson(DHH)은 손으로 코드를 작성하는 즐거움을 수호하는 유명 개발자 중 한 명이었다.
오늘날 그의 입장은 크게 달라졌다.
Claude Code와 Codex를 더 오래 사용한 후, DHH는 최근 Claude Fable 5를 사용해 Python 라이브러리 TerminalTextEffects를 Rust로 재작성했다. 소스 기사에 따르면 이 프로젝트는 약 1,100만 토큰을 소비했으며, 주로 무인 에이전트 워크플로우로 완료되었다.
결과는 놀랍다: 시작 시간이 87밀리초에서 2밀리초로 줄었고, 렌더링 속도는 약 9.6배 향상되었다.
이번 실험은 더 큰 질문을 던진다. 경험 많은 프로그래머가 대규모 재작성 작업을 AI 에이전트에 맡기고 거의 직접 개입하지 않고도 사용 가능한 결과를 얻을 수 있다면, 5년 후 프로그래머는 정확히 무엇을 해야 하는가?
키보드를 AI에 넘기고 은퇴?
DHH의 입장과 작년 사이의 대비는 명백하다.
2025년 5월, 그는 "프로그래밍은 느낌이어야 한다!" 를 발표하며 AI가 페어 프로그래머에 더 가까워야 한다고 주장했다: API를 확인하고, 질문에 답하고, 특정 문제를 해결하는 데 적합하지만, 코드 작성 자체의 행위를 대체해서는 안 된다는 것이다.
소스 기사는 더 강한 입장을 인용했다: 개발자가 결국 키보드를 완전히 AI에 넘겨야 한다면, DHH는 차라리 은퇴하겠다고 말했다.
Lex Fridman과의 6시간 대화에서 DHH는 AI가 반복적으로 코드를 생성해줄 때 '근육 기억'을 잃는 느낌을 설명했다.
한 가지 예는 Linux 배포판을 구축하는 것이었다. 그는 AI에게 동일한 Bash 조건문을 여러 번 생성하게 했지만, 직접 그 구문을 다루지 않았기 때문에 실제로 배웠다는 느낌이 들지 않는다는 것을 발견했다.
이것은 그에게 더 깊은 문제를 제기했다: AI 보조 프로그래밍이 개발자의 소프트웨어 공학 학습 방식을 점차 약화시키는가?
그러나 소스 기사에 따르면, 2026년 4월까지 그의 입장은 에이전트 우선 워크플로우로 전환되었다.
이제 그는 키보드가 더 이상 주요 상호작용 인터페이스가 아닐 때 소프트웨어 개발이 어떤 모습일지 공개적으로 논의하고 있다.
Claude Fable 5, Python 라이브러리 분해 후 Rust로 재구축
DHH가 선택한 프로젝트는 TerminalTextEffects(TTE), 커맨드라인 애플리케이션과 Python 라이브러리로 모두 사용할 수 있는 터미널 시각 효과 엔진이다.
TTE는 텍스트 이동, 색상, 그라데이션, 애니메이션 및 기타 터미널 시각 효과를 제공한다. 공개 저장소는 이를 터미널 시각 효과 엔진으로 설명하고 CLI와 Python 라이브러리 두 가지 사용법을 문서화하고 있다.
소스 기사에 따르면, DHH는 Claude에게 이 프로젝트를 Rust로 재작성하도록 요청했다.
그 결과 탄생한 Rust 프로젝트는 ttfx라는 이름으로 DHH의 Omarchy 조직 아래에 배치되었다. 기사에 따르면 새 버전은 37가지 효과를 실행할 수 있으며, 약 3MB의 실행 파일로 패키징되어 Python 런타임이 필요 없다.
보고된 실행 시간은 약 3시간 11분이었다.
Rust 구현은 약 21,000줄의 주요 코드를 포함하며, 원래 Python 버전의 규모에 근접한다.
코드베이스.
워크플로우도 전통적인 'AI 자동 완성'과는 크게 다르다.
소스 기사에 따르면, 8개의 에이전트가 독립적인 브랜치에서 병렬로 작업했다. 그들은 각각 코드를 읽고, 구현을 생성하고, 결과를 컴파일하고, 테스트를 실행하고, 실패를 수정한 후 다음 라운드로 진행했다.
이런 의미에서 '한 번에 완료'라는 설명은 AI가 단일 생성으로 모든 것을 만들어냈다는 것을 의미하지 않는다. 오히려 DHH가 작업을 넘겨주고 에이전트가 개발 루프를 스스로 담당하게 했다는 뜻이다.
Codex에도 동일한 작업이 주어졌다
DHH는 Codex로 이 실험을 반복했다.
소스 기사에 따르면, 하나의 프롬프트만으로도 또 다른 강력한 결과를 만들어냈다. 다만 Codex 버전은 약 30% 더 오래 걸렸고, 비용은 약 43달러(약 290위안)였다고 보고되었다.
이 비교는 주목할 만하다. 왜냐하면 'AI 프로그래밍은 신기하거나 형편없거나'라는 단순화된 관념에서 주의를 돌리기 때문이다.
두 개의 서로 다른 프로그래밍 에이전트가 동일한 광범위한 작업을 받고 속도, 비용, 워크플로우 동작에서 차이를 보이면서도 사용 가능한 결과를 생산할 수 있다.
Anthropic 팀도 이 실험에 주목했다.
Claude Code의 창시자 Boris Cherny가 공개적으로 이 결과에 반응했고, Anthropic 연구원 Thariq는 DHH에게 재작성에 얼마나 많은 계획이나 워크플로우 설계를 투자했는지 물었다고 보고되었다.
DHH의 대답은 아마도 가장 놀라운 부분이었을 것이다.
그는 기본적으로 Claude가 계획을 세우도록 한 다음 손을 뗐다고 말했다.
정교하게 설계된 사전 구축 워크플로우도, 수동으로 정의된 긴 마일스톤 목록도, 지속적인 개입 안내도 없었다.
이 접근 방식은 의도적으로 불간섭 태도를 취한 것이었다.
한 번에 완료가 맹목적이라는 뜻은 아니다
여기에는 중요한 구별이 있다.
완전히 자율적인 코딩 작업은 에이전트가 성공의 기준이 무엇인지 판단할 충분한 정보를 가지고 있다는 것에 여전히 의존한다.
소스 기사에 따르면, DHH는 먼저 Claude에게 계획을 세우도록 요청한 다음, 에이전트가 스스로 실행, 테스트, 반복하도록 했다.
이것은 자동 완성 시스템에게 다음 10줄의 코드를 생성하도록 요청하는 것보다 소프트웨어 엔지니어링 프로젝트를 위임하는 것에 더 가깝다.
이러한 에이전트형 개발 스타일은 크게 다음에 의존한다:
- 이해 가능한 구조를 가진 코드 저장소
- 강력한 자동화 테스트 스위트
- 명확한 빌드 및 실행 명령
- 브랜치를 생성하고 변경 사항을 병합하는 능력
- 실패를 검사하고 재시도할 수 있는 에이전트
이러한 기반이 없으면 '한 번에 완료' 자동화는 훨씬 더 신뢰할 수 없게 된다.
더 큰 쇼케이스: Bun의 백만 줄 마이그레이션
TerminalTextEffects는 여전히 상대적으로 작은 프로젝트다.
따라서 소스 기사는 더 큰 사례를 지적한다: Jarred Sumner가 만든 JavaScript 런타임 Bun.
Bun은 역사적으로 Zig를 중심으로 구축되었다. 2026년에 그 코드베이스는 AI 코딩 에이전트를 광범위하게 사용하여 Rust로의 대규모 마이그레이션을 겪었다.
소스 기사는 이 작업을 2주 미만의 기간에 완료된 약 백만 줄의 마이그레이션으로 설명한다.
이후 공개 기록은 Bun의 Rust 재작성이 메인 저장소에 병합되었음을 확인했다. GitHub에서 재작성에 대한 풀 리퀘스트는 2026년 5월 14일에 병합되었으며, 이 마이그레이션은 이전의 Zig 우선 빌드 경로를 Rust 우선 아키텍처로 대체했다.
마이그레이션은 단순한 'AI가 Bun을 재작성했다'보다 더 세밀하다.
Simon Willison이 요약한 Jarred Sumner의 공개 서술은 동적 작업 분해, 시험 실행, 적대적 검토, 반복 검증을 포함하는 복잡한 주체적 워크플로우를 설명한다.
이것은 의미 있는 구별이다.
대규모 AI 보조 소프트웨어 마이그레이션은 여전히 상당한 엔지니어링 아키텍처를 필요로 한다. 차이점은 주변 시스템이 충분히 잘 설계되면 대부분의 구현 작업을 이제 에이전트에 위임할 수 있다는 것이다.
코드의 한계 비용은 0에 수렴하고 있다
소스 기사는 이러한 예시들에서 더 큰 결론을 도출한다.
코딩 에이전트의 능력이 향상됨에 따라 또 다른 구현을 생성하는 한계 비용은 계속 하락한다.
코드 생성은 점점 더 저렴해지고 있다.
몇 분 만에 쇼케이스 사이트를 만들고 리드를 늘리세요
아이디어를 한 문장으로 입력하면 We0 AI가 쇼케이스 사이트, 페이지, CMS를 생성하고 출시 후 고객과 트래픽 확보를 돕습니다.
무료 등록을 위한 하나의 완전한 프로젝트 생성
하나의 완전한 생성 흐름을 시도하고 첫 번째 프로젝트 초안을 빠르게 보는 데 가장 적합합니다.
테스트, 리팩터링, 언어 간 이식, 결함에 대한 반복은 점점 더 에이전트가 병렬로 수행할 수 있다.
이것은 소프트웨어 개발의 비용 구조를 변화시킨다.
문제는 더 이상 단순히:
이 코드를 작성하기 위해 개발자를 얼마나 많이 고용할 수 있을까?
점점 더 이렇게 변하고 있다:
한 명의 개발자가 얼마나 많은 유용한 소프트웨어 작업을 AI 에이전트 그룹에 위임할 수 있을까?
이것이 AI 보조 프로그래밍에서 AI 관리형 소프트웨어 개발로의 전환이다.
차세대 프로그래머는 용 조련사에 더 가까울 수 있다
명백한 두려움은 코드를 직접 작성하거나 읽는 사람이 줄어들면 프로그래머가 사라질 것이라는 것이다.
소스 기사는 이 결론이 너무 단순하다고 주장한다.
'아무도 코드를 손으로 쓰지 않는다'는 것이 '프로그래머가 없다'는 것을 의미하지는 않는다.
작업 내용은 변화할 수 있다.
하루의 대부분을 줄 단위로 기능을 구현하는 대신, 개발자는 더 많은 시간을 다음에 사용할 수 있다:
- 무엇을 구축해야 하는지 정의하기
- 제약 조건과 인터페이스 설정하기
- 테스트 체계 설계하기
- 아키텍처와 트레이드오프 검토하기
- AI가 생성한 코드가 실제로 올바른지 확인하기
- 무엇을 자동화해야 하고 무엇을 자동화하지 말아야 할지 결정하기
이 모델에서 희소한 기술은 더 이상 문법을 입력하는 것이 아니다.
무엇을 구축할 가치가 있는지, 그리고 올바른 행동이 정확히 무엇을 의미하는지 아는 것이다.
AI가 코드를 작성할 때, 무엇이 가치를 갖게 되는가?
구현이 점점 저렴해지면 다른 기술이 더 가치 있게 된다.
제품 판단력
무엇이 해결할 가치가 있는 문제인지 결정할 사람은 여전히 필요하다.
AI
빠르게 열 가지 구현을 생성할 수는 있지만, 그것만으로는 어떤 문제가 비즈니스 가치가 있는지, 어떤 트레이드오프가 중요한지, 어떤 기능을 우선적으로 구축해야 하는지를 알 수 없습니다.
시스템 설계
에이전트는 함수와 클래스를 작성할 수 있지만, 더 큰 시스템에는 여전히 경계, 인터페이스, 데이터 모델, 배포 규칙, 안정성 요구사항이 필요합니다.
테스트
AI가 생성하는 코드가 많아질수록 자동화된 테스트는 더 중요해집니다.
강력한 검증 계층이 없다면 코딩 속도를 높이는 것은 단지 오류가 발생할 가능성이 있는 코드의 양만 늘릴 뿐입니다.
기술 방향
누군가는 에이전트에게 어떤 제약을 따라야 하는지 지시해야 합니다.
여기에는 성능 예산, 호환성 요구사항, 보안 경계, 의존성, 장기 유지보수 목표가 포함됩니다.
즉, 인간의 역할은 추상화 수준이 더 높아집니다.
미래에는 코딩 자체보다는 안내가 더 중요해질 수 있음
원문의 예시는 프로그래밍의 또 다른 정의를 가리킵니다.
개발자는 여전히 코드를 깊이 이해해야 할 수 있지만, 주요 산출물은 더 이상 소스 파일 자체가 아닐 수 있습니다.
산출물은 올바른 소프트웨어가 출현하도록 만드는 요구사항, 제약, 테스트, 판단의 시스템입니다.
이것이 수작업 코딩이 덜 핵심적이 되더라도 경험 많은 엔지니어가 여전히 가치 있을 수 있는 이유입니다.
아키텍처, 장애 모드, 사용자 요구, 시스템 동작을 이해하는 사람들은 자율 코딩 에이전트를 지휘하는 데 더 유리할 것입니다.
자주 묻는 질문
DHH가 정말 AI로 Python 라이브러리를 다시 작성했나요?
원문에 따르면 그렇습니다. Rails 창시자 David Heinemeier Hansson는 Claude Fable 5를 사용하여 매우 손을 많이 대지 않는 멀티 에이전트 워크플로우로 TerminalTextEffects를 Python에서 Rust로 다시 작성했습니다.
TerminalTextEffects란 무엇인가요?
TerminalTextEffects(약칭 TTE)는 터미널 비주얼 효과 엔진으로 Python 라이브러리로도 사용할 수 있습니다. 공개 문서에는 텍스트 이동, 색상, 그라데이션, 애니메이션 및 기타 터미널 비주얼 처리 효과가 설명되어 있습니다.
Rust 재작성이 일반적인 AI 코딩과 어떻게 다른가요?
원문은 여러 에이전트가 독립적인 브랜치에서 작업하고, 코드를 컴파일하고, 테스트를 실행하고, 실패를 수정하고, 결과를 병합하는 과정을 설명합니다. 핵심 차이는 AI가 단순히 코드 조각을 제안하는 것이 아니라 대부분의 개발 루프를 처리했다는 점입니다.
Codex도 재작성을 완료했나요?
원문에 따르면 DHH는 Codex에게도 동일하게 광범위한 작업을 할당했고, 역시 훌륭한 결과를 얻었습니다. 대략 30% 더 오래 걸렸고 비용은 약 43달러였다고 합니다.
Bun도 AI 에이전트로 재작성되었나요?
네. Bun의 대규모 Zig에서 Rust로의 재작성은 많은 AI 에이전트 지원 아래 완료되었으며, 재작성된 Rust 우선 코드는 2026년 5월 메인 저장소에 병합되었습니다.
AI가 대부분의 코드를 작성한다면 프로그래머는 사라질까요?
반드시 그런 것은 아닙니다. 예상되는 변화는 프로그래머가 구현 세부 사항을 입력하는 시간은 줄어들고, 요구사항, 제약, 아키텍처, 테스트, 승인 기준을 정의하는 시간이 늘어나는 것입니다.
AI 코딩 워크플로우에서 가장 중요한 기술은 무엇인가요?
강력한 시스템 설계, 테스트, 디버깅, 제품 판단력, 명확한 제약을 정의하는 능력이 특히 중요해집니다. AI가 생성한 코드를 검토하고 검증하는 방법을 아는 것도 중요합니다.
관련 도구
- Claude Code: Anthropic의 에이전트형 코딩 환경으로, 저장소 단위 소프트웨어 개발 작업에 사용됩니다.
- OpenAI Codex: OpenAI의 코딩 에이전트로, 다단계 소프트웨어 개발 작업에 사용됩니다.
- TerminalTextEffects: 원문에서 논의된 Python 터미널 효과 프로젝트입니다.
- Bun: 2026년에 Zig에서 Rust로의 대규모 재작성을 완료한 JavaScript 런타임입니다.
- Rust: TTE 및 Bun 구현 재작성에 사용된 시스템 프로그래밍 언어입니다.
관련 링크
- TerminalTextEffects GitHub 저장소: TTE의 공식 소스 코드 저장소입니다.
- TerminalTextEffects 문서: 이 프로젝트의 사용 및 개발 문서입니다.
- Bun GitHub 저장소: Bun의 공식 소스 코드 저장소입니다.
- Bun Rust 재작성 풀 리퀘스트: 병합된 Zig에서 Rust로의 마이그레이션 풀 리퀘스트입니다.
- Rust 공식 웹사이트: Rust 언어의 공식 문서와 생태계 리소스입니다.
- Claude Code: Anthropic 프로그래밍 에이전트에 대한 공식 정보입니다.
요약
DHH의 TerminalTextEffects 실험은 AI 프로그래밍 에이전트가 소프트웨어 작업의 단위를 어떻게 변화시키는지 보여주는 유용한 사례입니다. 개발자는 더 이상 AI에게 한 번에 하나의 함수만 작성하도록 요청하지 않고, 점점 더 전체 리팩토링과 마이그레이션 작업을 에이전트 팀에 위임하고 있습니다.
Bun의 재작성은 더 큰 규모에서 같은 방향을 가리킵니다. 저장소, 테스트, 도구, 워크플로우가 충분히 강력할 때, AI는 이제 광범위하고 다단계적인 소프트웨어 엔지니어링 작업에 참여할 수 있습니다.
가장 큰 변화는 AI가 더 많은 코드를 작성한다는 것이 아니라, 프로그래머의 작업이 코드 작성에서 코드가 달성해야 할 목표를 정의하고 그 목표를 실제로 달성했음을 입증하는 것으로 이동한다는 점입니다.



