🧭 UML 다이어그램 (UML Diagram)
**UML(Unified Modeling Language, 통합 모델링 언어)**은
소프트웨어 시스템을 **시각적으로 모델링(모형화)**하기 위해 만든 표준 언어다.
즉, 복잡한 소프트웨어 구조를 그림으로 표현하여
사람, 개발자, 설계자 간의 이해를 통일시키기 위한 도식 언어다.
1. 개념 설명
소프트웨어 개발은 코드 이전에 “구조”를 설계하는 일이다.
UML은 그 구조를 그림으로 표현하기 위한 공통 언어로,
객체지향(Object-Oriented) 개념을 기반으로 한다.
여기서 모델링(Modeling)이란
현실 세계의 복잡한 문제를 단순화하여 구조적으로 표현하는 것이다.
따라서 UML은 단순한 그림이 아니라,
설계도이자 의사소통 도구다 —
개발자가 시스템을 설계하고, 유지보수자가 구조를 이해하는 기준이 된다.
2. UML의 목적
- 복잡한 시스템을 시각적으로 이해할 수 있게 함
- 설계 단계에서 객체 간의 관계와 흐름을 명확히 정의
- 시스템을 표준화된 형식으로 문서화
- 개발자 간 협업과 유지보수를 용이하게 함
요약하면, UML은 “시스템의 설계도를 그리는 언어”다.
3. UML 다이어그램의 종류
UML 다이어그램은 크게 두 가지 분류로 나뉜다.
하나는 구조(Structure) 중심, 다른 하나는 행위(Behavior) 중심이다.
① 구조적 다이어그램(Structural Diagrams)
시스템의 정적인 구조를 표현한다 — 즉 “무엇으로 구성되어 있는가?”
- 클래스 다이어그램(Class Diagram)
- 객체 다이어그램(Object Diagram)
- 컴포넌트 다이어그램(Component Diagram)
- 배치 다이어그램(Deployment Diagram)
- 패키지 다이어그램(Package Diagram)
② 행위적 다이어그램(Behavioral Diagrams)
시스템의 동작과 상호작용을 표현한다 — 즉 “어떻게 움직이는가?”
- 유스케이스 다이어그램(Use Case Diagram)
- 시퀀스 다이어그램(Sequence Diagram)
- 상태 다이어그램(State Diagram)
- 활동 다이어그램(Activity Diagram)
- 통신 다이어그램(Communication Diagram)
이 중 시험에서 특히 자주 나오는 것은
클래스, 유스케이스, 시퀀스, 상태, 활동 다이어그램 다섯 가지다.
🧩 UML 다이어그램에서의 관계 (Relationship)
UML의 핵심은 객체(클래스) 간의 관계를 표현하는 것이다.
객체지향 분석에서 클래스가 서로 어떤 방식으로 연결되어 있는지를
‘관계(Relationship)’라고 한다.
즉, UML의 관계란
“클래스나 객체가 서로 어떻게 연결되고 의존하며 협력하는가”를
시각적으로 표현한 것이다.
1. 관계의 종류
UML에서 자주 등장하는 관계는 다섯 가지다.
① 연관(Association, 連關)
- 두 클래스가 서로 관련되어 있음을 의미한다.
- 예: “학생(Student) ↔ 강의(Course)” — 학생은 강의를 수강한다.
- 관계 방향은 단방향(→) 또는 양방향(↔)으로 표현된다.
- 연관에는 다중도(Multiplicity) 개념이 있어
1:1, 1:N, N:N 관계를 명시할 수 있다.
예: 한 학생은 여러 강의를 수강할 수 있음 (1:N).
② 집합(Aggregation, 集合)
- 한 클래스가 다른 여러 클래스의 객체를 **포함(Contain)**하지만,
포함된 객체는 독립적으로 존재할 수 있는 관계다. - 예: “학급(Class)”은 “학생(Student)”을 포함하지만,
학생은 학급이 없어도 존재할 수 있다. - 기호는 **빈 마름모(◇)**로 표시된다.
- 관계 표현: Class ◇── Student
③ 포함 / 합성(Composition, 含成)
- 포함 관계의 강화된 형태로,
포함된 객체가 전체 객체에 종속되어 존재하는 관계다. - 예: “자동차(Car)”와 “엔진(Engine)” —
자동차가 없으면 엔진도 존재하지 않는다. - 기호는 **채워진 마름모(◆)**로 표시된다.
- 관계 표현: Car ◆── Engine
④ 일반화(Generalization, 一般化)
- 상위 클래스(부모)가 하위 클래스(자식)의 공통 속성과 행위를 정의하는 관계.
- 즉, “상속(Inheritance)” 관계이다.
- 예: “직원(Employee)”을 상위로 두고, “정규직(Permanent)”과 “계약직(Contract)”이 이를 상속.
- 기호는 **빈 삼각형 화살표(△)**로 상위 클래스를 향한다.
- 관계 표현: Permanent ───▷ Employee
⑤ 의존(Dependency, 依存)
- 한 클래스가 다른 클래스의 기능을 일시적으로 사용하는 관계.
- 즉, 한 쪽이 변경되면 다른 쪽에 영향을 줄 수 있는 “약한 연결(Loose Coupling)”이다.
- 예: “주문(Order)”이 “결제(Payment)” 클래스를 호출하여 기능을 이용할 때.
- 기호는 **점선 화살표(---▶)**로 표현된다.
2. 관계의 정리 요약
연관 → 일반적인 관계
집합 → 포함하지만 독립 존재 가능
합성 → 포함되며 종속 관계
일반화 → 상속 관계
의존 → 약한 일시적 참조 관계
요약하자면,
“연관은 연결, 집합은 소유, 합성은 종속, 일반화는 상속, 의존은 일시적 사용”이다.
3. UML 관계가 중요한 이유
UML에서 관계를 정의한다는 건,
시스템 내부 객체들이 어떻게 협력하고 데이터를 주고받는지를
명확히 규정하는 것이다.
관계는 단순한 선(line)이 아니라,
**의존성(Dependency)**과 **구조적 결합도(Coupling)**를 시각화하는 도구이기 때문에
설계 품질을 좌우한다.
4. 정처기 실기 정의 문장
“UML 다이어그램은 소프트웨어 시스템의 구조와 동작을 시각적으로 모델링하기 위한 통합 표준 언어이며,
클래스 간의 관계(연관, 집합, 포함, 일반화, 의존)를 통해 객체 간의 상호작용을 표현한다.”
시험 키워드:
클래스, 객체, 관계, 연관, 집합, 포함(합성), 일반화, 의존
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
모델링(模型化) / Modeling
본뜰 모(模), 모형 형(型), 될 화(化)
: 현실의 구조를 단순화하여 표현하는 일. 영어 model은 라틴어 modulus(척도)에서 유래.
관계(關係) / Relationship
관계할 관(關), 맬 계(係)
: 서로 연관되어 있는 상태. 영어 relation은 라틴어 referre(연결하다)에서 유래.
연관(連關) / Association
잇닿을 련(連), 관계할 관(關)
: 두 객체가 서로 연결되어 있는 관계.
집합(集合) / Aggregation
모을 집(集), 모일 합(合)
: 여러 객체가 모여 하나의 전체를 이루는 관계.
합성(含成) / Composition
머금을 함(含), 이룰 성(成)
: 포함된 객체가 전체에 종속되는 관계.
일반화(一般化) / Generalization
한 일(一), 무리 반(般), 될 화(化)
: 공통된 특성을 추출하여 상위 개념으로 정의하는 관계.
의존(依存) / Dependency
의지할 의(依), 있을 존(存)
: 다른 객체의 기능에 의지하거나 영향을 받는 관계.
🏷️ 해시태그 정리
#UML
#UML다이어그램
#UnifiedModelingLanguage
#객체지향분석
#정처기실기
#UML관계
#Association
#Aggregation
#Composition
#Generalization
#Dependency
#소프트웨어공학
#시스템설계
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
UML 클래스 다이어그램 (Class Diagram) (0) | 2025.10.15 |
---|---|
유스케이스 다이어그램 (Use Case Diagram) (0) | 2025.10.15 |
HIPO 차트 (Hierarchy Input Process Output Chart) (0) | 2025.10.15 |
요구사항 확인 (Requirement Validation) (0) | 2025.10.11 |
요구사항 명세 기법 (Requirements Specification Techniques) (0) | 2025.10.11 |