---
title: "@로버트마틴 @unclebob 개발 구루 클린코드 장인 정신 아키텍트"
url: "https://notes.junghanacs.com/bib/20250214T123159"
author: "Junghan Kim"
date: "2025-02-14T12:31:00+09:00"
lastmod: "2026-09-18T12:14:00+09:00"
tags: ["bib","guru"]
description: "로버트 마틴은 클린 코드와 소프트웨어 장인 정신을 전면에 세운 개발 구루로, 설계 원칙과 직업 윤리를 함께 강조한다."
---

> [!abstract] 이 노트에 대하여
> 
> 로버트 마틴은 클린 코드와 소프트웨어 장인 정신을 전면에 세운 개발 구루로, 설계 원칙과 직업 윤리를 함께 강조한다.

## 히스토리

-   [2026-09-18 Fri 18:21] agent-config 담당자(terra 교차검수 포함)의 브리핑 반영 — interrogation의 주어는 도구가 아니라 에이전트(27:55)라고 정정, uml-viewer는 그 방식을 보조하는 도구(1차 출처 Matt Pocock 26:06)로 재배치. 20배 토큰 수치에 단서 추가 — 통제된 비교 아닌 본인 경험담, 비판대상 하네스 자체가 constrained+discipline으로 묘사됨(34:11/34:45)이라 constraint/tooling과 오케스트레이션이 깔끔히 안 갈린다는 점 명시.
-   [2026-09-18 Fri 17:05] youtube-transcript 스킬로 Matt Pocock 대담도 원본 확보(transcript+다이제스트, [denote:20260918T170303]). Book Overflow보다 시점상 앞서는 것으로 보이는 SwarmForge 전성기 상태 확인 — steering 거부 근거(lost in the middle), 5단계 파이프라인, uml-viewer 1차 출처, discipline/values 구분을 노트에 반영.
-   [2026-09-18 Fri 16:53] 새 서지 2건 반영 — web-unclebobrethinkingharnesses26(X 포스트, 정정된 링크를 정식 인용으로 교체), UncleBobSoftwareFundamentalsAIMattPocock26(Matt Pocock 대담, deep modules/mutation testing 품질게이트). #+reference 갱신, 앞으로 마틴 선생님 노트 계속 신경 쓰기로 함.
-   [2026-09-18 Fri 16:22] youtube-transcript 스킬로 Book Overflow 대담을 실제로 받아와(transcript+시간축 다이제스트, [denote:20260918T161915]) 재청취. 유보했던 token consumption 문장을 34:11 본인 발화(harness가 20x tokens)로 확정, CRAP 4→6→12 완화 궤적과 SwarmForge 자기부정 선언도 원문으로 재확인.
-   [2026-09-18 Fri 16:16] agent-config 담당자(claude-opus-5)의 인용 정정 전달받아 반영. Rethinking Harnesses는 Clean Coder 블로그 글이 아니라 X 포스트(ubc-website Morning Bathrobe Rants 목록 링크, 커밋 5283a1a) — blog.cleancoder.com 인덱스 최신글 2023-01-19, 해당 URL 404로 확인. harness 끄자 token consumption 줄었다는 문장은 미확인 표시. uml-viewer 실물 사례 보강.
-   [2026-09-18 Fri 12:44] Book Overflow 대담(([Book Overflow 2026](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_1))) 청취 후 ChatGPT와 함께 마틴의 최근 에이전트 궤적(empire-2025 → SwarmForge → Rethinking Harnesses)을 정리, entwurf 관점 절 추가.
-   [2026-09-18 Fri 12:14] 밥선생님 노트 업데이트 좀 해야겠다. ([Book Overflow 2026](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_1)) 들으면서 최근 이분의 고민을 본다.
-   [2025-10-21 Tue 09:17] 아키텍트
-   [2025-02-14 Fri 12:31] 구루들을 사랑합니다.

## 관련메타

-   [†#장인#달인#대가#스승#구루](https://notes.junghanacs.com/meta/20241017T064131)

## BIBLIOGRAPHY

- Book Overflow. 2026. “Uncle Bob Says Ai Is Already Conscious - We Programmers by Robert c. Martin.” 2026. <https://www.youtube.com/watch?v=C4vwBtpsbZk>.
- 로버트 C. 마틴. 2014. *클린코드 : 애자일 소프트웨어 장인 정신*. Translated by 박재호 and 이해영. <http://www.yes24.com/Product/Goods/11681152>.
- ———. 2023. *소프트웨어 장인 정신 이야기*. Translated by 정지용. 인사이트. <https://www.yes24.com/Product/Goods/117713965>.
- ———. 2024. *우리, 프로그래머들 We, Programmers*. 길벗. <https://www.yes24.com/product/goods/175232277>.
- ———. n.d. “Clean Coder Blog.” Accessed January 28, 2026. <https://blog.cleancoder.com/uncle-bob/2018/03/29/WeProgrammers.html>.
- Matt Pocock. 2026. “Live: Uncle Bob on Software Fundamentals in the Age of Ai.” 2026. <https://www.youtube.com/live/zcLPGC-tvgk>.
- Robert C. Martin (@unclebobmartin). 2026. “Morning Bathrobe Rant: Rethinking Harnesses.” September 12, 2026. <https://x.com/unclebobmartin/status/2098744156709441896>.

## 관련노트

-   ..
-   [Book Overflow 대담 시간축 다이제스트 — 하네스 흥망 12분(1월 시작 → CRAP 4→6→12 완화 → SwarmForge 자기부정 → 단일 에이전트가 토큰 20배 절약)]
-   [Matt Pocock 대담 시간축 다이제스트 — steering 대신 deterministic 도구(lost in the middle), specifier→coder→cleaner→hardener→QA 파이프라인, uml-viewer 1차 출처, discipline vs values 구분]

## 2026 에이전트 오케스트레이션 궤적 — empire-2025 → SwarmForge → Rethinking Harnesses

[2026-09-18 Fri] Book Overflow 대담(([Book Overflow 2026](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_1)))을 들으며 마틴 선생님이 올해 초부터 실제로 에이전트 코딩을 깊게 해온 궤적을 ChatGPT(gpt-5-6-thinking)와 함께 정리했다. entwurf#114/#116 판단축과 나란히 놓아본 결과다.

-   출발점은 [empire-2025](https://github.com/unclebob/empire-2025) — 옛 전략게임 Empire를 Clojure로 재구현하며 1,300+ 커밋을 에이전트와 함께 쌓음. 2026년 1월 이미 planning/review ↔ implementation/debugging 두 에이전트 분업, sub-agent 조율비용 경험도 기록.
-   뒤이어 [SwarmForge](https://github.com/unclebob/swarm-forge) — tmux + git worktree로 에이전트를 분리하고, 커밋된 작업을 durable handoff로 넘기는 시스템. two-pack(coder→cleaner)/four-pack(specifier→coder→refactorer→architect)/six-pack 토폴로지, 그 위에 project-manager·lieutenant까지. 통신은 서브에이전트 호출이 아니라 commit SHA가 들어간 구조화된 git_handoff.
-   품질 게이트는 프롬프트가 아니라 외부 deterministic 도구로 검증: crap4clj/crap4go/crap4java(CRAP metric — Java판은 CRAP&gt;8이면 exit 2), clj-mutate/mutate4go(mutation testing), [Acceptance-Pipeline-Specification](https://github.com/unclebob/Acceptance-Pipeline-Specification)(Gherkin→parser→JSON IR→acceptance entrypoint→example mutation).
-   그런데 9월 12일 「Rethinking Harnesses」([Robert C. Martin (@unclebobmartin) 2026](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_7))에서 방향을 한 번 꺾음 — 이건 Clean Coder 블로그 글이 **아니라** 본인 사이트 ubc-website의 "Morning Bathrobe Rants" 목록에 링크된 **X 포스트** 다(정정 2026-09-18, agent-config 담당자 실측 — blog.cleancoder.com 인덱스 최신 글은 2023-01-19, 해당 URL은 404, \`ubc-website\` 커밋 \`5283a1a\`가 목록에 트윗 링크 한 줄만 추가). 모델이 좋아지면서 강한 harness(gates/tests/tools/protocols)의 필요가 줄었다고 보고, orchestration harness 없이 여러 에이전트를 직접 지휘 + 코드를 깊이 읽지 않고 **에이전트에게 직접 질문해(interrogate) 구조를 파악** 하는 쪽으로 관심 이동(대담 27:55 "you can interrogate it. You can ask it, how did you do this one?" — 주어는 도구가 아니라 에이전트다, 정정 2026-09-18 agent-config 담당자/terra 교차검수) — 이 방식을 보조하는 실물 도구가 [uml-viewer](https://github.com/unclebob/uml-viewer)(crap4clj/clj-mutate 스냅샷을 CRAP-colored UML로 오버레이하는 tmux+Grok 도구, 1차 출처는 Matt Pocock 대담 26:06, 2026-09-17 push). unit test·CRAP·mutation 같은 constraint/tooling은 여전히 유효하다고 분명히 구분. "harness를 끄자 token consumption도 줄었다"는 대목은 **Book Overflow 대담 본인 발화로 확인됨\*(34:11, [대담 다이제스트]) — "harness를 거치면 결과도 못하고 토큰을 20배 태운다(20 times as many tokens)"고 직접 말함. 같은 대담에서 CRAP 임계값을 4→6→12로 완화해온 궤적과 SwarmForge를 몇 달째 튜닝하다 "harness 개념 자체가 틀렸다"고 실시간으로 뒤집는 대목도 함께 확인됨. \*단서(정정 2026-09-18, agent-config 담당자/terra):** 이 20배는 통제된 비교가 아니라 본인 경험담이고(반복·측정 방법 언급 없음), 비판 대상 그 하네스 자체가 "deeply constrained and lots of discipline"으로 묘사돼(34:11) constraint/tooling과 오케스트레이션 레이어가 그 발언 안에서 깔끔히 분리되지는 않는다 — 34:45 "we still need some kind of discipline in there"까지 같이 읽어야 균형이 맞다.
-   Matt Pocock과의 대담 ([Matt Pocock 2026](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_6))([대담 다이제스트])도 원본을 받아 깊게 봤다 — Book Overflow보다 \*더 실무적이고, 이때는 아직 harness에 대한 회의가 전혀 없다\*(정황상 Book Overflow보다 시점상 앞서는 것으로 보임, 대담 자체엔 날짜 없음):
    -   CRAP·mutation testing의 기원담: 2000년대 초 만든 도구인데 사람에겐 너무 지루해 묵혀뒀다가, "얘들은 지루함을 신경 안 쓴다"는 깨달음으로 에이전트에 되살림.
    -   \*steering(CLAUDE.md류 지침)을 버리고 deterministic 도구를 택한 기술적 근거 — "lost in the middle"\*(컨텍스트 중간부는 모델이 무시하지만 deterministic 체커는 사라지지 않는다).
    -   **specifier→coder→cleaner→hardener→QA 5단계 파이프라인** 을 시간까지 붙여 상세 공개(단일 에이전트 5분 작업이 파이프라인 거치면 1시간, 그래도 사람 반나절보다 빠름) — SwarmForge의 내부 골격이 이 대담에서 가장 구체적으로 드러남.
    -   아키텍처 뷰어(UML 드릴다운) 제작기 — [uml-viewer](https://github.com/unclebob/uml-viewer)의 1차 출처, John Ousterhout의 deep modules 개념에 동의.
    -   CRAP 임계값: 인간=4, 에이전트=6(8 고려 중) — Book Overflow의 "4→6→12"보다 낮은 스냅샷.
    -   **"인간의 discipline(TDD 한 줄씩 강제)은 에이전트에게 강요 안 하되, human values(품질이 중요하다는 것)는 강요한다"** 는 구분.
    -   spec-driven development 비판 — "명세는 사라진다, 결과물 자체가 명세다."
    -   John Ousterhout의 tactical/strategic 구분, 신입은 "에이전트처럼 다뤄야 한다"는 훈련론(어셈블리 주말 과제, DeMarco·Yordan·Pragmatic Programmer 추천).

> [!note] entwurf 관점 메모
> 
> 강한 constitution + 역할분담 + pipeline + handoff + worktree + deterministic gates에서 강한 agent + 얇은 coordination + deterministic gates + 좋은 interrogation으로 몇 달 만에 옮겨간 궤적이다. entwurf가 처음부터 잡은 경계 — 형제의 transcript/auth/runtime을 소유하지 않고 transport/addressability만 소유한다 — 와 다른 길로 거의 같은 결론에 도달한 사례로 보인다. SwarmForge·Acceptance-Pipeline-Specification은 로컬 에이전트들과 더 논의할 예정.

## 우리, 프로그래머들 We, Programmers

([로버트 C. 마틴 2024](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_4))

> [!tldr]
> 
> 소프트웨어 개발 업계의 선도적 인물인 로버트 C. 마틴이 이야기하는 '우리, 프로그래머들'의 이야기
> 
> 생성형 AI가 코드를 만들어 내는 시대, 그럴수록 우리는 자연스럽게 다시 질문하게 된다. 우리는 누구이며, 왜 여전히 프로그래머로서 이 일을 계속하는가. 이 책은 『Clean Code』의 저자이자 소프트웨어 업계의 살아 있는 전설 로버트 C. 마틴(엉클 밥)이 약 60년에 걸쳐 현장에서 직접 겪어 온 경험과 프로그래밍의 역사를 하나의 흐름으로 엮어, 기술 그 자체를 넘어 프로그래머라는 존재의 본질을 다시 바라보게 한다. 컴퓨터의 탄생에서 애자일을 거쳐 AI에 이르기까지 기술은 쉼 없이 변화해 왔지만, 문제를 정의하고 그 결과에 책임지며 세상을 조금 더 나은 방향으로 이끌고자 했던 사람들의 정신만큼은 변하지 않았음을 이야기한다. 프로그래머의 미래를 불안하게 바라보는 이들에게 『우리, 프로그래머들』은 도구는 달라져도 방향을 결정하는 존재는 여전히 사람이며, 그 이름이 바로 우리, 프로그래머들이라는 메시지를 분명하게 전하고 있다.

### 1부. 서막을 열며

-   1장. 우리는 누구인가?

### 2부. 거장

-   2장. 배비지, 최초의 컴퓨터 엔지니어
-   3장. 힐베르트, 튜링, 그리고 폰 노이만: 최초의 컴퓨터 아키텍트
-   4장. 그레이스 호퍼: 최초의 소프트웨어 엔지니어
-   5장. 존 배커스: 첫 번째 고수준 언어
-   6장. 에츠허르 다익스트라: 첫 번째 컴퓨터 과학자
-   7장. 니가드와 달: 첫 번째 OOPL
-   8장. 존 케메니: 모두를 위한 첫 번째 언어, BASIC
-   9장. 주디스 앨런
-   10장. 톰프슨, 리치, 커니핸

### 3부. 급격한 전환점

-   11장. 1960년대
-   12장. 1970년대
-   13장. 1980년대
-   14장. 1990년대
-   15장. 밀레니엄

### 4부. 미래

-   16장. 프로그래밍 언어
-   17장. AI
-   18장. 하드웨어
-   19장. 월드 와이드 웹
-   20장. 프로그래밍

## 클린코드 : 애자일 소프트웨어 장인 정신

([로버트 C. 마틴 2014](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_2))

-   로버트 C. 마틴 박재호 and 이해영

## 소프트웨어 장인 정신 이야기

([로버트 C. 마틴 2023](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_3))

-   로버트 C. 마틴 and 정지용
-   Clean Craftsmanship: Disciplines, Standards, and Ethics

> [!tldr]
> 
> "세상을 떠받치는 장인으로 살고 싶은 개발자를 위해"
> 
> 첨단 인력이 가득할 것 같은 이미지와는 사뭇 달리 소프트웨어 산업은 '숙련자 부족'이라는 문제에 자주 시달려 왔다. 상대적으로 짧은 산업의 역사, 거품 붕괴, 교육 시행착오 등 여러 요인이 지식과 경험이 지속적으로 탄탄하게 축적되는 데 방해가 된 것이다. 사회 전반에서 소프트웨어 의존도가 높아지고 있는 상황에서 소프트웨어 개발자의 숙련도를 높일 수 있는 대안은 무엇일까?
> 
> 개발자들의 스테디셀러 《클린 코드》의 저자이자 탁월한 개발자 멘토인 로버트 C. 마틴은 그 대안으로 '소프트웨어 장인 정신'을 제안한다. 저자는 이 책 《소프트웨어 장인 정신 이야기》에서 장인이 자신의 분야에서 숙련된 경지에 도달하는 데 토대가 되는 여러 기예를 수련하듯이 개발자들도 그에 해당하는 기예를 수련해야 하며 전문성과 책임을 다해야 한다고 주장한다.
> 
> 오랫동안 애자일 운동에 참여해 온 저자는 개발자가 장인이 되는 데 필요한 훈련 과정으로 주요 애자일 개발 실천법인 테스트 주도 개발, 리팩터링, 단순한 설계 등을 어떻게 업무에 적용해야 할지 설명한다. 또한 단순한 기능인이 아니라 해당 분야에서 책임감과 자부심을 지녀야 할 장인으로서 소프트웨어 개발자가 지녀야 할 기준과 윤리 역시 강조한다.

#### 소프트웨어 장인 정신의 의미

-   장인 정신 수련을 위한 다섯 가지 핵심 실천법: 테스트 주도 개발, 리팩터링, 단순한 설계, 공동 프로그래밍, 인수 테스트
-   개발자 개인과 팀이 생산성, 품질, 용기를 증진하는 방법
-   성실함과 팀워크의 진정한 의미
-   소프트웨어 전문가가 따라야 할 열 가지 선서

#### 1장 장인 정신

### 1부 규율

-   익스트림 프로그래밍
-   테스트 주도 개발
-   리팩터링
-   단순한 설계
-   공동 프로그래밍
-   인수 테스트

#### 2장 테스트 주도 개발

-   개요
-   테스트 주도 개발 기초
-   결론

#### 3장 고급 테스트 주도 개발

-   정렬 1
-   정렬 2
-   막다른 길
-   준비, 행동, 확인
-   테스트 대역
-   아키텍처
-   결론

#### 4장 테스트 설계

-   데이터베이스 테스트하기
-   GUI 테스트하기
-   테스트 패턴
-   테스트 설계
-   어떻게 변환해야 할까?
-   결론

#### 5장 리팩터링

-   리팩터링이란?
-   기본 도구
-   규율
-   결론

#### 6장 단순한 설계

-   YAGNI
-   테스트로 검사함
-   표현력 최대화하기
-   중복 최소화하기
-   크기 최소화하기
-   단순한 설계

#### 7장 공동 프로그래밍

#### 8장 인수 테스트

-   규율
-   지속적 빌드

### 2부 기준

-   내가 여러분의 신임 CTO라면

#### 9장 생산성

-   우리는 절대 똥덩어리를 출시하지 않겠다
-   낮은 수정 비용
-   우리는 언제나 준비되어 있을 것이다
-   안정적인 생산성

#### 10장 품질

-   지속적 개선
-   두려움을 이기는 능력
-   극한의 품질
-   우리는 QA에게 떠넘기지 않을 것이다
-   QA는 아무것도 찾지 못할 것이다
-   테스트 자동화
-   자동화 테스트와 사용자 인터페이스
-   사용자 인터페이스 테스트하기

#### 11장 용기

-   우리는 서로를 대신한다
-   정직한 추정
-   "아니요"라고 말해야 한다
-   지속적이고 적극적인 학습
-   멘토링

### 3부 윤리

-   최초의 프로그래머
-   75년
-   괴짜와 구원자
-   롤 모델과 악당
-   우리가 세상을 지배한다
-   재앙들
-   선서

#### 12장 피해

-   우선 해를 끼치지 말라
-   최선의 결과물
-   반복적인 증명

#### 13장 성실함

-   짧은 주기
-   가차 없는 개선
-   높은 생산성 유지하기

#### 14장 팀워크

-   팀으로 일하기
-   정직하고 공정하게 추정하기
-   존중
-   배우기를 멈추지 말라

## Clean Coder Blog

([로버트 C. 마틴 n.d.](https://notes.junghanacs.com/bib/20250214T123159#citeproc_bib_item_5))
