개요
커뮤니케이션 다이어그램(Communication Diagram)은 UML(Unified Modeling Language) 행위 다이어그램의 일종으로, 시스템 내 객체들이 서로 어떤 방식으로 상호작용하며 메시지를 교환하는지를 구조적으로 보여주는 다이어그램이다. 시퀀스 다이어그램과 유사하게 메시지 흐름을 표현하지만, 시간 순서보다 구조와 상호 연결 관계에 중점을 둔다. 이 글에서는 커뮤니케이션 다이어그램의 개념, 구성, 작성 방법, 시퀀스 다이어그램과의 차이점, 실무 활용 사례를 정리한다.
1. 개념 및 정의
커뮤니케이션 다이어그램은 객체 간의 협력 구조와 메시지 흐름을 네트워크 형태로 표현하는 도식이다. 각 객체(또는 클래스)는 노드로, 메시지는 객체 간의 연결선을 따라 번호가 부여된 텍스트 형태로 표현되며, 시스템 기능을 수행하는 과정에서 어떤 객체가 누구에게 어떤 메시지를 얼마나 어떤 순서로 보내는지를 시각화한다.
2. 구성 요소
구성 요소 | 설명 | 예시 |
객체(Object) | 메시지를 주고받는 주체 | Controller, User, DB 등 |
연결선(Link) | 객체 간 상호작용 관계 | 선으로 연결되어 있음 |
메시지(Message) | 메시지 내용과 호출 순서 포함 | 1: login(), 2: validate() |
메시지 번호 | 흐름 순서를 나타냄 | 1, 1.1, 1.2 등 중첩 구조 지원 |
번호 기반 순서가 핵심이며, 구조와 흐름을 동시에 보여준다.
3. 작성 방법 및 특징
항목 | 설명 | 예시 |
시나리오 기반 | 특정 유스케이스 흐름 중심 작성 | 사용자 로그인 프로세스 등 |
메시지 번호 부여 | 실행 순서를 번호로 표현 | 1: 요청 → 2: 검증 → 3: 응답 |
객체 위치 자유 | 시간 흐름보다 구조가 중심 | 객체 간 연결 구조 강조 |
중첩 번호 사용 | 내부 호출 흐름 표현 가능 | 1 → 1.1 → 1.2 등 |
논리적 협력 구조 시각화에 매우 유리하다.
4. Sequence Diagram과의 차이점
항목 | 시퀀스 다이어그램 | 커뮤니케이션 다이어그램 |
중심 요소 | 시간 순서 | 객체 간 구조/관계 |
표현 방식 | 수직적 시간 흐름 | 네트워크형 메시지 교환 |
메시지 순서 표현 | 위→아래 | 번호 순서 (1, 2, 3...) |
객체 간 구조 시각화 | 상대적으로 약함 | 강함 (링크 강조) |
복잡한 객체 연결 구조 표현에는 커뮤니케이션 다이어그램이 적합하다.
5. 활용 사례
분야 | 적용 예시 | 효과 |
객체지향 설계 | 클래스 간 협력 흐름 도식화 | 책임 분산 및 인터페이스 정의에 유리 |
API 흐름 정리 | 호출 관계 명세 | 각 컴포넌트 간 인터랙션 이해 용이 |
테스트 시나리오 설계 | 호출 순서 기반 시뮬레이션 | 테스트 케이스 흐름 정리 |
리팩토링 문서화 | 클래스 재구성 후 구조 시각화 | 코드 정리 및 커뮤니케이션 용이 |
초기 설계뿐 아니라 분석 및 유지보수 단계에도 유용하다.
6. 작성 도구 및 팁
도구 | 특징 | 비고 |
draw.io | 빠르고 직관적인 작성 | 다양한 UML 템플릿 제공 |
Lucidchart | 실시간 협업 가능 | 메시지 번호 자동 정렬 지원 |
PlantUML | 코드 기반 UML 작성 | GitHub 문서 자동화 가능 |
StarUML | UML 중심 설계 도구 | 시퀀스와 비교하여 활용 가능 |
작성 팁:
- 메시지 순서 번호를 빠짐없이 명시할 것
- 객체 간 링크를 구조적으로 정리할 것
- 시나리오 흐름을 간결하게 유지할 것
7. 결론
커뮤니케이션 다이어그램은 객체 간 협력 구조와 메시지 흐름을 한눈에 파악할 수 있는 강력한 UML 도구이다. 시퀀스 다이어그램이 시간 흐름 중심이라면, 커뮤니케이션 다이어그램은 시스템의 내부 상호작용 구조를 드러내는 데에 적합하다. 복잡한 시스템일수록 그 관계망을 명확하게 정리해주는 시각화 도구로서의 가치가 더욱 높아진다.
'Topic' 카테고리의 다른 글
Interaction Diagram (0) | 2025.04.25 |
---|---|
Timing Diagram (0) | 2025.04.25 |
Sequence Diagram (0) | 2025.04.25 |
RPA (Robotic Process Automation) (1) | 2025.04.25 |
RDA (Robotic Desktop Automation) (2) | 2025.04.25 |