The Pragmatic Programmer 5회차 - 부러지지 않게 휘어지기
5장은 유연성을 말한다. 하지만 유연성은 막연히 추상화를 많이 넣는다는 뜻이 아니다. 변화가 들어오는 방향을 예상하고 결합을 줄이는 기술이다.
이 글은 The Pragmatic Programmer을 8회로 나눠 읽는 시리즈의 5회차다. 범위는 Chapter 5 · Bend, or Break다.
포착 -> 증류 -> 연결 -> 표현 4단계 깔때기로 읽는다. 핵심 원칙은 그대로 둔다. 책 노트는 창고, 인사이트 카드는 화폐.
L0 · 서지 & 진입
- 한 문장 핵심: 휘어지는 시스템은 모든 것을 예측한 시스템이 아니라, 바뀔 수 있는 지점을 숨기지 않은 시스템이다.
- 이 책을 든 이유 / 기대한 질문: AI가 코드를 빠르게 만들수록, 개발자가 지켜야 할 사고 습관과 운영 기준을 더 분명히 하고 싶었다.
- 읽기 전 가설: 이 책은 오래된 조언 모음일 것이라고 예상했다. 하지만 읽을수록 최신 도구보다 오래 가는 개발자의 운영 체계를 말하고 있었다.
- 저자 한 줄 컨텍스트: Andrew Hunt와 David Thomas는 소프트웨어 장인정신, 자동화, 실용주의 개발 문화에 큰 영향을 준 Pragmatic Bookshelf의 공동 창립자다.
- 이번 회차 범위: Decoupling and the Law of Demeter, Metaprogramming, Temporal Coupling, It’s Just a View, Blackboards
- 이번 회차 질문: 변화가 올 때 시스템은 왜 어떤 곳에서 부러지고 어떤 곳에서 휘어지는가?
L1 · 포착함
원문 전체를 재현하지 않고, 각 장의 주장과 예시를 내 언어로 압축한다. 필요한 표현은 짧은 문구 수준으로만 사용한다.
- 이번 장은
Chapter 5 · Bend, or Break를 통해 개발자의 태도와 작업 방식을 묻는다. - 핵심은 “변화가 올 때 시스템은 왜 어떤 곳에서 부러지고 어떤 곳에서 휘어지는가?”라는 질문으로 압축된다.
- 기억할 영어 표현:
decoupling·metaprogramming·blackboard - 내 블로그/PKM/에이전트 작업과 연결하면, 이 장은 “개인의 요령”보다 “반복 가능한 하니스”에 가깝다.
L2 · 챕터 지도
| 범위 | 내가 붙인 이름 | 핵심 질문 |
|---|---|---|
| Chapter 5 · Bend, or Break | 부러지지 않게 휘어지기 | 변화가 올 때 시스템은 왜 어떤 곳에서 부러지고 어떤 곳에서 휘어지는가? |
Law of Demeter는 객체가 너무 많은 내부 사정을 알지 않게 만든다. 메타프로그래밍은 정책을 코드 바깥으로 옮겨 변화 비용을 낮춘다. 시간 결합은 순서에 묶인 시스템의 위험을 드러낸다. 뷰와 블랙보드는 같은 사실을 여러 관점에서 다루는 방법이다.
L3 · 인사이트 카드 색인
- Pragmatic Programmer - I5.1 결합도는 코드의 인간관계다
- Pragmatic Programmer - I5.2 설정은 작은 메타프로그래밍이다
- Pragmatic Programmer - I5.3 블랙보드는 에이전트 협업의 오래된 원형이다
1. 결합도는 코드의 인간관계다
서로 너무 많이 알면 작은 변화에도 피곤해진다. 좋은 모듈은 협력하지만 사생활을 캐묻지 않는다.
2. 설정은 작은 메타프로그래밍이다
운영 정책과 실행 규칙을 코드에 박아두지 않으면, 배포 없이 바꿀 수 있는 선택지가 생긴다.
3. 블랙보드는 에이전트 협업의 오래된 원형이다
여러 도구와 에이전트가 하나의 공유 작업판을 보고 각자 기여하는 구조는 오늘날의 multi-agent workflow와 닮았다.
L4 · 생산 보드
- 연쇄 호출이 긴 코드를 찾아 경계를 줄인다.
- 환경별로 바뀌는 값을 코드에서 설정으로 이동한다.
- 여러 단계가 공유하는 상태를 명시적 작업판으로 만든다.
프롬프트 템플릿
1 | 다음 개발 작업을 The Pragmatic Programmer의 관점으로 점검하라. |
L5 · 연결 & 복습
이 회차는 Clean Code의 가독성, Refactoring의 구조 개선, 그리고 지금 내 블로그의 LLM Wiki 실험과 연결된다. 차이는 분명하다. 이 책은 특정 기법보다 개발자가 어떤 기준으로 선택하고, 고치고, 설명할 것인가를 묻는다.
- 다른 책/아이디어와의 연결: Refactoring, Clean Code, LLM Wiki, Harness Engineering
- 미해결 질문: AI가 코드 대부분을 생성할 때, 실용주의 개발자의 책임은 어디로 이동하는가?
- 복습 일정: 1주 □ / 1개월 □ / 3개월 □
- 한 문장 최종 정리: 휘어지는 시스템은 모든 것을 예측한 시스템이 아니라, 바뀔 수 있는 지점을 숨기지 않은 시스템이다.
댓글
GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.