CRC Card — 카드 한 장으로 객체지향 설계
CRC Card — 카드 한 장으로 객체지향 설계
1. 요약
CRC (Class-Responsibility-Collaboration) 카드는 1989년 Kent Beck과 Ward Cunningham이 Tektronix에서 일하던 시절에 발명한 4×6 인덱스 카드 기반 객체지향 설계 도구 다. OOPSLA '89 에서 A Laboratory for Teaching Object-Oriented Thinking 논문으로 발표됐다. 단순함이 미덕 인 객체지향 설계 도구의 대표.
2. 배경 (이전 도구의 한계)
UML 등장 전 (1989) OO 설계 도구는 너무 무거웠다 — Booch notation 의 구름 모양은 그리기 어렵고, OMT는 클래스마다 박스 안에 속성·메서드 다 적어야 했다. Beck·Cunningham 의 통찰: 그냥 인덱스 카드 한 장에 클래스 하나, 책임 몇 개, 협력자 몇 개 적으면 되지 않을까? — 물리적 카드를 손으로 옮기며 그룹으로 토의 하는 워크숍에 최적.
원래 HyperCard 디지털 스택 으로 시작했지만 물리 카드 가 더 인기를 얻었다.
3. 핵심 개념·표기법
4×6 인덱스 카드 한 장에:
┌─────────────────────────────────────┐
│ ClassName (좌측 상단, 밑줄) │
├──────────────────┬──────────────────┤
│ Responsibilities │ Collaborators │
│ - 책임 1 │ - 협력자 A │
│ - 책임 2 │ - 협력자 B │
│ - 책임 3 │ │
└──────────────────┴──────────────────┘
핵심 원칙:
- 카드는 작아야 한다 (4×6 인치) — 책임이 7개 넘으면 클래스 분리
- 토론은 카드를 손으로 옮기며 (역할 연기, role-playing)
- Collaborators 가 많으면 결합도가 높다 — 즉시 보임
4. 언어·OS 매핑 (★ 강의 핵심)
| 시대 | 언어 | CRC 활용 |
|---|---|---|
| 1989~95 | Smalltalk, C++ | OOPSLA + 교육 표준 |
| 1995~2000s | Java, C# | XP 의 핵심 워크숍 도구 |
| 2000s~ | 모든 OO | Agile + Scrum 팀 워크숍 |
| 2020s | AI 에이전트 | Agent CRC = AgentName + Responsibility + Collaborator (다른 에이전트) |
★ AI 에이전트 시대에 역할 (Role) + 책임 (Responsibility) + 협력 에이전트 (Collaborator) 패턴은 정확히 CRC 카드 구조. 멀티에이전트 시스템 설계는 본질적으로 객체지향 설계와 같다 의 증거.
5. 현대까지의 영향
- Extreme Programming (XP) — Beck 자신이 만든 XP의 핵심 워크숍
- Domain-Driven Design (2003) — Aggregate · Bounded Context 의 카드화
- Event Storming (Brandolini 2013) — Post-it 기반 협업 (CRC 의 진화)
- Agile 회고 (Retrospective) — 카드 기반 그룹 토의의 표준
- AI 에이전트 워크숍 — 각 에이전트가 무엇을 책임지고 누구와 협력하는가 를 카드로 정리
6. 주요 인물·사건
| 연도 | 사건 |
|---|---|
| 1980s | Beck + Cunningham, Tektronix 에서 Smalltalk 작업 |
| 1989 | OOPSLA '89 — A Laboratory for Teaching Object-Oriented Thinking |
| 1990s | 대학 OO 강의 표준 도구 |
| 1999 | Beck의 XP 발표 — CRC 카드를 핵심 워크숍 도구로 |
| 2013 | Event Storming (Post-it 기반 진화) |
| 2024~ | AI 에이전트 설계 워크숍에서 부활 |
7. 강의 활용
"카드 한 장이 UML 클래스 다이어그램보다 강력하다" 는 통찰. 단순한 도구가 토론을 만든다 — Beck·Cunningham 이 35년 전에 박은 패턴이 AI 에이전트 시대에도 유효. 본 강의의 Plan-First 워크숍 도 사실상 CRC 카드의 디지털 부활 — Agent Name + Inputs/Outputs/Tasks + Collaborator Agents 를 한 화면에 정리.
출처
- A Laboratory For Teaching Object-Oriented Thinking — OOPSLA 89 (Beck & Cunningham)
- Class-responsibility-collaboration card — Wikipedia
- What are CRC Cards? — Agile Alliance
- Methodologies and Practices — CRC White Paper
그룹 시리즈
→ synthesis/group-se_g3 (시대 그룹 종합 카드)