🧭 커뮤니케이션 다이어그램 (Communication Diagram, 通信圖)
**커뮤니케이션 다이어그램(通信圖)**은
시스템 내의 객체(Object) 들이 서로 메시지(Message) 를 주고받으며
어떻게 협력(協力) 하는지를 표현하는 UML 행위 다이어그램이다.
즉, “누가 누구와 어떤 메시지를 주고받으며 상호작용하는가”를
객체 간의 연결 관계 중심으로 시각화한 모델이다.
1. 개념 설명
커뮤니케이션 다이어그램은
객체 간의 메시지 흐름(Flow) 을 표현한다는 점에서
순차 다이어그램(Sequence Diagram) 과 매우 유사하다.
하지만 초점이 다르다.
순차 다이어그램이 시간의 흐름(Time Order) 에 집중한다면,
커뮤니케이션 다이어그램은 객체 간의 구조적 연결(Structural Link) 에 집중한다.
즉, “시간 순서보다 누가 누구와 연결되어 있는가”에 더 초점을 둔 도식이다.
그래서 예전에는 이 다이어그램을 협력 다이어그램(Collaboration Diagram) 이라고도 불렀다.
(현재 UML 2.x 버전부터는 “Communication Diagram”이라는 용어를 공식 사용한다.)
2. 커뮤니케이션 다이어그램의 목적
- 시스템 내 객체들의 협력 관계(Interaction Structure) 를 명확히 표현한다.
- 순차 다이어그램보다 객체 간 연결(링크 구조) 을 쉽게 파악할 수 있다.
- 객체 간의 메시지 흐름과 호출 순서를 함께 확인할 수 있다.
- 시스템의 실행 흐름을 구조 중심으로 단순화한다.
즉, 커뮤니케이션 다이어그램은 **“객체 간 대화 구조도”**라고 보면 된다.
3. 커뮤니케이션 다이어그램의 주요 구성 요소
① 객체(Object, 對象)
시스템 내에서 메시지를 주고받는 주체이다.
보통 사각형(□)으로 표시되며, 이름은 객체명 : 클래스명 형식으로 쓴다.
예: user : Member, order : OrderService
② 링크(Link, 連結線)
객체 간의 관계를 나타내는 선이다.
이 링크를 통해 메시지가 전달된다.
즉, “누가 누구와 연결되어 있는가”를 보여주는 연결선이다.
③ 메시지(Message, 傳達)
객체 간의 상호작용을 의미한다.
각 메시지는 숫자를 붙여 순서(Order) 를 나타내며,
화살표(→)로 방향을 표시한다.
예: 1: login(), 1.1: validateUser()
④ 메시지 순서 번호(Message Sequence Number)
메시지의 실행 순서를 표시하기 위해
숫자(1, 2, 3…) 또는 계층형(1.1, 1.2, 2.1 등)으로 번호를 붙인다.
이 순서 번호 덕분에 커뮤니케이션 다이어그램에서도
“시간 흐름”을 어느 정도 표현할 수 있다.
4. 커뮤니케이션 다이어그램의 표현 구조
1️⃣ 객체들을 사각형으로 배치하고,
2️⃣ 객체 간의 관계(링크)를 선으로 연결하며,
3️⃣ 각 선 위에 메시지를 번호 순서로 적는다.
즉,
객체들 사이의 네트워크 구조(Network-like Structure) 안에서
“메시지가 흘러가는 경로와 순서”를 표현하는 것이다.
6. 예시로 보는 커뮤니케이션 다이어그램
시나리오: 로그인 기능
1️⃣ User 객체가 LoginController에 login() 메시지를 보낸다.
2️⃣ LoginController가 UserService에 validateUser() 메시지를 보낸다.
3️⃣ UserService가 DB 객체에 selectUser() 메시지를 보낸다.
4️⃣ DB가 결과를 반환하고, 순서에 따라 응답 메시지가 위로 전달된다.
이 흐름을 객체들이 원형으로 연결된 네트워크 구조로 표현하면,
그게 바로 커뮤니케이션 다이어그램이다.
7. 커뮤니케이션 다이어그램의 특징
- 시스템 내 객체 간 협력 관계를 중심으로 표현한다.
- 순차 다이어그램과 동일한 의미 구조를 가진다.
- 메시지 순서 번호를 통해 실행 순서를 표시한다.
- 생명선(Lifeline), 활성 구간(Activation) 등의 요소는 생략된다.
- 객체 간 연결 관계 구조를 시각적으로 이해하기 쉽다.
8. 정처기 실기 정의 문장
“커뮤니케이션 다이어그램은 시스템 내 객체들이 메시지를 주고받으며
협력하는 관계를 표현하는 UML 행위 다이어그램으로,
객체 간의 연결 관계(Link)를 중심으로 메시지 흐름을 시각화한 것이다.”
시험 키워드:
객체, 링크, 메시지, 순서번호, 협력, 구조 중심, 관계 중심, Interaction
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
커뮤니케이션(通信) / Communication
통할 통(通), 믿을 신(信)
: 정보나 의사를 서로 주고받는 행위. 영어 communicare(공유하다, 나누다)에서 유래.
다이어그램(圖表) / Diagram
그림 도(圖), 표 표(表)
: 개념이나 구조를 시각적으로 나타낸 도식.
객체(對象) / Object
대할 대(對), 모양 상(象)
: 클래스의 인스턴스로, 상태와 행위를 가진 독립적 존재.
메시지(傳達) / Message
전할 전(傳), 통달할 달(達)
: 객체 간의 요청이나 응답을 나타내는 신호.
링크(連結) / Link
잇닿을 련(連), 맬 결(結)
: 두 객체가 연결된 관계나 통신 경로.
협력(協力) / Collaboration
화합할 협(協), 힘 력(力)
: 여러 객체가 함께 목표를 달성하기 위한 상호작용.
🏷️ 해시태그 정리
#커뮤니케이션다이어그램
#CommunicationDiagram
#UML
#객체지향분석
#정처기실기
#소프트웨어공학
#협력다이어그램
#메시지흐름
#객체간관계
#링크
#시스템설계
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
정보공학 개발 방법론 (Information Engineering, 情報工學開發方法論)이란 ? (0) | 2025.10.15 |
---|---|
객체지향 방법론 (Object-Oriented Methodology, 對象指向方法論) (0) | 2025.10.15 |
순차 다이어그램 (Sequence Diagram, 順次圖) (0) | 2025.10.15 |
연관 클래스 (Association Class, 連關類) (0) | 2025.10.15 |
UML 클래스 다이어그램 (Class Diagram) (0) | 2025.10.15 |