CRC 카드
1. 개요
CRC 카드는 소프트웨어 설계 초기 단계에서 주요 행위자와 액션을 식별하기 위해 사용되는 방법이다. 시나리오를 작성하여 명사는 클래스로, 동사는 책임으로, 협력자는 상호 작용할 다른 카드로 정의한다.
CRC 카드
개요
| 유형 | 소프트웨어 개발 기법 |
|---|---|
| 목적 | 객체 지향 설계 지원 |
| 특징 | 팀 협업 촉진 초기 설계 단계 활용 간단하고 유연한 방식 |
구성 요소
| 클래스 (Class) | 시스템 내의 객체 유형 정의 |
|---|---|
| 책임 (Responsibility) | 클래스가 수행해야 하는 작업 |
| 협력자 (Collaborator) | 책임을 수행하기 위해 협력하는 다른 클래스 |
사용 방법
| 카드 작성 | 각 클래스에 대해 클래스 이름, 책임, 협력자를 간략하게 기술 |
|---|---|
| 시나리오 기반 시뮬레이션 | 다양한 시나리오를 통해 클래스 간의 상호 작용을 시뮬레이션하고 설계 검증 |
장점
| 이해 용이성 | 비기술적인 이해관계자도 쉽게 이해할 수 있는 간결한 표현 |
|---|---|
| 협업 강화 | 팀 구성원 간의 의사소통 및 협업 촉진 |
| 유연성 | 설계 초기 단계에서 빠르게 아이디어를 구체화하고 변경 가능 |
| 설계 개선 | 클래스 간의 책임 분배 및 협력 관계를 명확히 하여 설계 개선 |
단점
| 비공식적 | 엄격한 규칙이 없어 설계자의 경험과 직관에 의존 |
|---|---|
| 규모 제한 | 대규모 시스템에는 적합하지 않을 수 있음 |
| 문서화 부족 | 설계 과정이 문서화되지 않아 추후 유지보수에 어려움 발생 가능 |
관련 기법
| 유스 케이스 다이어그램 | 시스템의 기능적 요구 사항을 시각적으로 표현 |
|---|---|
| UML (Unified Modeling Language) | 소프트웨어 시스템을 모델링하기 위한 표준화된 표기법 |
참고 자료
| 관련 서적 | 객체 지향 설계 관련 서적 참고 |
|---|---|
| 온라인 자료 | CRC 카드 관련 온라인 튜토리얼 및 예제 참고 |
📚 더 읽어볼만한 페이지
2. CRC 카드 생성
CRC 카드 생성은 일반적으로 소프트웨어 설계 초기 단계에서 주요 행위자와 액션을 식별하는 시나리오를 작성하는 것으로 시작한다. 시나리오에서 명사는 클래스가 되고, 동사는 책임이 되며, 협력자는 해당 카드가 상호 작용할 다른 카드이다.
2.1. 시나리오 작성
CRC 카드 생성은 일반적으로 주요 행위자와 액션을 식별하는 시나리오를 작성하는 것으로 시작한다. 시나리오에서 명사는 클래스가 되고, 동사는 책임이 되며, 협력자는 해당 카드가 상호 작용할 다른 카드이다.
2.2. 카드 작성
시나리오에서 명사는 클래스가 된다. 동사는 책임이 되며, 협력자는 해당 카드가 상호 작용할 다른 카드를 의미한다.