공부

UML 다이어그램이란

영사이프-개발 2026. 3. 1. 17:33

정처기를 준비하면서 알게된 내용인 UML을 다시 공부하기로 한다.

 

📝 UML 다이어그램

객체 지향 소프트웨어 시스템의 구조와 행위를 시각적으로 표현하는 표준화된 모델링 언어

 

소프트웨어를 설계하는 단계에서 구조도를 그리는 것이라고 한다.

 

🧐UML에 대한 경험

작년 초에 UML 다이어그램에 대해 처음으로 제대로 경험을 했다. 끝까지 같이 가지 못한 프로젝트지만 초반에 참여해서 UML 다이어그램을 어느정도 경험을 하고 나왔다. UML을 직접 만들거나 한 건 아니고 이미 만들어진 다이어그램을 보고 내가 만들 소프트웨터의 청사진을 확인하는 정도였다.

 

다른 블로그를 참고해보니 그런 소프트웨어의 설계 단계에서 구조를 쉽게 파악하기 위해 쓰이는 것이니 반은 경험을 한 것이다.

 

이때 이걸 경험하고 이걸 작성하는 것을 꼭 연습해야겠다는 생각이 들었다.

 

💡목차

UML에 있는 모든 다이어그램을 살펴볼 생각은 아니고 실무에서 많이 쓰는 것들 위주로 보려고한다.

실무를 경험 해본 적 없는 나는 물론 제미나이의 힘을 빌려서 알아보려는 것이다.

 

1. 시스템 아키텍처 다이어그램 (System Architecture Diagram)

2. ERD (Entity-Relationship Diagram, 개체-관계 모델)

3. 시퀀스 다이어그램 (Sequence Diagram)

4. 플로우차트 / 액티비티 다이어그램 (Flowchart / Activity Diagram)

5. 상태 다이어그램 (State Diagram)

 

 

✅시스템 아키텍처 다이어그램

📌 서비스의 전체적인 큰 그림을 보여주기 위한 가장 기본적인 다이어그램

📌 클라이언트( 프론트 엔드 ), 백엔드( 서버, AWS, DB, 외부 API 등 )의 연결을 표현한다.

📌 신규 개발자 온보딩, 전체 시스템 구조 파악, 인프라 확장 논의에 쓰인다.

📌 초기 스타트업에서는 단순하지만 점점 규모가 커질수록 다이어그램도 커진다.

 

 

✅ ERD (Entity-Relationship Diagram, 개체-관계 모델)

📌 데이터 베이스의 테이블 간의 관계를 시각화한 다이어그램

📌 백엔드, 데이터 엔지니어가 많이 쓴다.

📌 데이터베이스 설계, API 스펙 정의, 데이터 분석을 위한 구조 파악

📌 비즈니스 요구사항이 바뀔 때마다 가장 자주 업데이트되어야 하는 핵심 문서

 

✅ 시퀀스 다이어그램 (Sequence Diagram)

📌 시간의 흐름에 따라 시스템의 여러 구성 요소(클라이언트, 서버, DB, 외부 결제망 등)가 어떻게 메시지를 주고받는지 보여준다.

📌 결제 프로세스, 소셜 로그인(OAuth) 흐름, 복잡한 API 호출 순서 등 '과정'을 설명할 때 사용

📌 프론트엔드와 백엔드 개발자가 API 연동을 맞출 때 오해를 줄이는 데 가장 효과적

 

 

✅ 플로우차트 / 활동 다이어그램 (Flowchart / Activity Diagram)

📌 특정 기능이나 비즈니스 로직의 흐름을 조건문(Yes/No)에 따라 순서대로 보여준다.

📌 알고리즘 흐름 설명, 사용자 여정(User Journey) 정의, 예외 처리(Error Handling) 케이스 정리

📌 개발자뿐만 아니라 기획자(PM/PO)나 디자이너와 비즈니스 로직을 논의할 때 가장 많이 쓰이는 친숙한 형태입니다.

 

✅ 상태 다이어그램 (State Diagram)

📌 특정 객체의 '상태'가 이벤트에 따라 어떻게 변하는지 보여준다. 

📌 이커머스나 배달 앱 같은 도메인에서 특히 중요

📌 주문 상태(결제 대기 -> 결제 완료 -> 배송 중 -> 배송 완료), 유저 상태(활성 -> 휴면 -> 탈퇴) 정의

📌 상태 변화에 따른 버그(예: 이미 취소된 주문인데 배송이 시작되는 버그)를 방지하는 데 필수적

 

✅다이어그램 툴

실무에서는 화려한 그래픽보다는 빠르게 그리고 수정이 가능한 툴을 선호한다.

코드 기반: Mermaid.js // 텍스트로 코드를 짜면 다이어그램이 그려지는 툴이고 github와 notion 연동이 가능하다고 합니다.

GUI 기반: Draw.io, Figma, Miro, Lucidchart

 

나는 이번 프로젝트를 시작하면 figma에 있는 figjam을 이용해볼 생각이다. 다이어그램을 그리기 최적화된 피그마의 시스템이라는 듯하다.

 

'공부' 카테고리의 다른 글

공통 컴포넌트와 응집도...  (0) 2026.03.23
tensorflow.js를 배워보자  (3) 2026.03.03
프록시 서버 vs 백엔드 서버  (0) 2026.02.28
2026 정처기(정보처리기사) 필기 수기  (0) 2026.02.06
[Node.js] Node.js에 관하여  (0) 2026.01.26