Topic

Communication Diagram

JackerLab 2025. 4. 25. 15:32
728x90
반응형

개요

커뮤니케이션 다이어그램(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 도구이다. 시퀀스 다이어그램이 시간 흐름 중심이라면, 커뮤니케이션 다이어그램은 시스템의 내부 상호작용 구조를 드러내는 데에 적합하다. 복잡한 시스템일수록 그 관계망을 명확하게 정리해주는 시각화 도구로서의 가치가 더욱 높아진다.

728x90
반응형

'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