| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 멀티캠퍼스it부트캠프
- 유레카프론트엔드대면
- 나눔스퀘어
- 입력처리방식
- 이미지 파일 관리
- 타입스크립트
- input="password"
- 유레카
- TypeScript
- React
- jandi
- 미니프로젝트
- 스프링부트
- 유플텍플
- 마이배티스
- LG U+
- LG유플러스 유레카 프론트엔드 대면
- 부트캠프후기
- sentry
- 유레카 부트캠프 프론트엔드
- 유레카 프론트엔드 대면
- 리액트
- streaming metadata
- 엘지유플러스프론트엔드대면
- 유레카프론트엔드
- 웹시큐리티
- 프론트엔드
- 핏로그
- 멀티캠퍼스부트캠프
- 상태관리
- Today
- Total
joooii
[79일차] UML와 종류 본문

UML이란?
UML(Unified Modeling Language)은 소프트웨어 시스템을 시각적으로 표현하기 위한 표준 모델링 언어이다.
복잡한 시스템의 구조와 동작을 그림으로 표현함으로써, 개발자·기획자·디자이너 등 다양한 이해관계자가 동일한 관점에서 시스템을 이해할 수 있도록 돕는다.
UML은 특정 언어나 프레임워크에 종속되지 않으며, 객체지향 분석·설계(Object-Oriented Analysis & Design)를 기반으로 한다.
UML의 목적과 특징
📌 UML의 목적
- 시스템 요구사항을 명확히 표현
- 복잡한 구조를 단순화하여 이해도 향상
- 설계 의도를 코드 작성 전에 공유
- 문서화 및 유지보수에 활용
📌 UML의 특징
- 표준화된 기호와 규칙 사용
- 시각적 표현 중심
- 정적 구조와 동적 행위를 모두 표현 가능
- 구현 이전 단계뿐 아니라 유지보수 단계에서도 활용 가능
UML 다이어그램의 분류
UML 다이어그램은 크게 구조 다이어그램(Structure Diagram)과 행위 다이어그램(Behavior Diagram)으로 나뉜다.
구조 다이어그램 (Structure Diagrams)
시스템의 정적인 구조를 표현하며, 클래스, 객체, 컴포넌트 간의 관계를 나타낸다.
1️⃣ 클래스 다이어그램 (Class Diagram)
- 가장 대표적인 UML 다이어그램
- 클래스의 속성, 메서드, 접근 제어자 표현
- 클래스 간 관계(연관, 상속, 집합, 합성 등) 표현
- 객체지향 설계 및 DB 설계의 기초로 활용

2️⃣ 객체 다이어그램 (Object Diagram)
- 클래스 다이어그램의 인스턴스 형태
- 특정 시점의 객체 상태를 표현
- 실제 데이터 예시를 보여줄 때 유용

3️⃣ 컴포넌트 다이어그램 (Component Diagram)
- 시스템을 구성하는 컴포넌트와 의존성 표현
- 모듈 단위 구조 파악에 사용
- 대규모 시스템 아키텍처 설명에 적합

4️⃣ 배포 다이어그램 (Deployment Diagram)
- 하드웨어와 소프트웨어 배치 구조 표현
- 서버, 네트워크, 실행 환경 관계 표시
- 인프라 구조 설명 시 사용

5️⃣ 패키지 다이어그램 (Package Diagram)
- 클래스나 컴포넌트를 패키지 단위로 그룹화
- 의존성 방향을 통해 구조적 계층 표현
- 프로젝트 전체 구조를 상위 레벨에서 확인 가능

행위 다이어그램 (Behavior Diagrams)
시스템의 동작과 흐름을 표현하며, 시간의 흐름에 따른 상태 변화와 상호작용을 나타낸다.
1️⃣ 유스케이스 다이어그램 (Use Case Diagram)
- 시스템 기능을 사용자 관점에서 표현
- Actor와 Use Case 간 관계 정의
- 요구사항 분석 단계에서 가장 많이 사용됨

2️⃣ 시퀀스 다이어그램 (Sequence Diagram)
- 객체 간 메시지 흐름을 시간 순서로 표현
- 메서드 호출, 반환 흐름 시각화
- API 설계 및 로직 검증에 유용

3️⃣ 커뮤니케이션 다이어그램 (Communication Diagram)
- 시퀀스 다이어그램과 유사하지만 구조 중심
- 객체 간 상호작용 관계 강조
- 메시지 순서는 번호로 표현

4️⃣ 활동 다이어그램 (Activity Diagram)
- 업무 흐름, 조건 분기, 병렬 처리 표현
- 플로우차트와 유사한 형태
- 비즈니스 로직 설명에 적합

5️⃣ 상태 다이어그램 (State Diagram)
- 객체의 상태 변화와 전이 조건 표현
- 이벤트 기반 시스템 분석에 사용
- 상태가 중요한 도메인에서 효과적

결론
UML 설계는 소프트웨어 개발 프로젝트에서 매우 중요한 역할을 한다. UML을 통해 개발자는 시스템의 구조와 사용자의 행위를 명확하게 이해할 수 있고, 개발 과정에서 발생할 수 있는 문제들을 사전에 예측하고 대비할 수 있기 때문이다.
회고
UML에 대해서는 정처기 공부를 하면서 개념은 알고 있었다. 그러나 실제로 프로젝트에 어떻게 적용하는지는 이해가 잘 되지 않았다.
해당 내용을 작성하기 위해 구글링을 해보니 실제 현업에서 사용하는 다이어그램은 시퀀스 다이어그램 정도 쓰는 것 같았다. 실제로 강사님께서 알려주신 카카오 디벨롭퍼 사이트를 보면 아래처럼 시퀀스 다이어그램을 사용하여 과정을 보기 쉽게 정리해 놓은 것을 알 수 있었다.

이런 내용을 공부하니 빨리 취업해서 실무를 경험해보고 싶다는 생각이 들었다.
'TIL' 카테고리의 다른 글
| [85일차] 애자일과 JIRA (0) | 2026.01.06 |
|---|---|
| [74일차] Spring Boot에서 이미지 파일 관리하기 (0) | 2025.12.16 |
| [65일차] 웹 시큐리티 (0) | 2025.12.08 |
| [64일차] JWT (0) | 2025.12.02 |
| [58일차] Zustand (0) | 2025.11.24 |