🎨 Use Case Diagram (유스케이스 다이어그램) 완벽 이해하기
1️⃣ Use Case Diagram이란?
구분설명
📌 정의 | 시스템과 사용자(Actor)의 상호작용을 시각적으로 표현한 다이어그램 |
🎯 목적 | 시스템이 제공하는 **기능(서비스)**과 그 기능을 누가 사용하는지를 명확히 보여줌 |
👀 관점 | 사용자(Actor) 관점에서 시스템을 바라본 그림 |
활용 예시 | 요구사항 분석, 시스템 설계 초기 단계 |
🔹 쉽게 말하면?
시스템이 무엇을 제공하고, 누가 어떻게 사용하는지를 한눈에 보여주는 그림!
2️⃣ 구성 요소 (4대 요소)
요소설명표기법
🎭 Actor | 시스템과 상호작용하는 사람, 조직, 또는 다른 시스템 | 사람 아이콘 |
📦 System | 다이어그램의 경계, 시스템이 포함하는 기능의 영역 | 사각형 |
✅ Use Case | 시스템이 제공하는 기능(서비스) | 타원(Oval) |
🔗 Relation | Actor와 Use Case 간의 관계선, 기능 간 확장/포함 관계 등 | 선, 화살표 등 |
3️⃣ Relation (관계) 종류
관계 유형설명표기법
➖ Association | Actor와 Use Case를 단순히 연결 | 직선 |
➕ Include | 공통 기능을 다른 Use Case가 반드시 포함할 때 | 점선 + <<include>> |
➕ Extend | 조건부로 기능이 확장될 때 | 점선 + <<extend>> |
⬜ Generalization | Actor나 Use Case의 상속 관계 | 삼각형 화살표 |
4️⃣ 예시로 쉽게 이해하기
📂 예시: "온라인 쇼핑몰 시스템"
- 고객(Actor)은 상품을 검색하고, 장바구니에 담고, 결제를 할 수 있음
- 관리자는 상품을 등록하거나 재고를 관리함
🎨 Use Case Diagram 예시
[온라인 쇼핑몰 시스템]
┌──────────────────────────────┐
│ ○ 상품 검색 │
│ ○ 장바구니 담기 │
│ ○ 결제하기 │
│ ○ 상품 등록 <<관리자>> │
│ ○ 재고 관리 <<관리자>> │
└──────────────────────────────┘
↑ ↑
고객 관리자
- Actor
- 고객
- 관리자
- Use Case
- 상품 검색, 장바구니 담기, 결제하기 (고객)
- 상품 등록, 재고 관리 (관리자)
- Include 예시
- 결제하기 ➡️ <<include>> 결제 수단 선택
- Extend 예시
- 결제하기 ➡️ <<extend>> 쿠폰 적용 (조건부 기능)
5️⃣ 활용 포인트
- 복잡한 시스템이라도 누가, 어떤 기능을 사용하는지 명확하게 표현 가능
- 개발자, 기획자, 디자이너 모두가 시스템을 빠르게 이해할 수 있음
- 요구사항 누락을 방지하고 기능 목록을 정리할 때 유용
6️⃣ 요약
항목내용
무엇? | 사용자와 시스템의 상호작용을 표현하는 다이어그램 |
왜 필요? | 시스템 기능과 사용자의 관계를 시각적으로 파악 |
언제 사용? | 시스템 분석, 설계 초기 단계 |
주요 요소 | Actor, System, Use Case, Relation |
혹시 상빈님이 진행 중인 프로젝트가 있다면, 그에 맞는 맞춤형 Use Case Diagram 예시를 그려줄 수도 있어요!
예를 들어 Leeturn.py 팀 프로젝트 기준으로 그려볼까요? 😄
필요하면 말씀해 주세요!
나의 말:
응 우리팀 프로젝트기준으로 그려봐줄래?
ChatGPT의 말:
좋아요, 상빈님! 😄
Leeturn.py 팀 프로젝트 기준으로 Use Case Diagram을 설계해볼게요.
🎯 [Leeturn.py] 프로젝트 개요
- 프로젝트명: 심리 설문조사 플랫폼
- 주요 기능:
- 회원가입 / 로그인
- 설문 참여
- 설문 결과 조회
- 관리자 질문/선택지/이미지 관리
- 사용자 응답 데이터 관리
- 주요 Actor:
- 👤 사용자 (User)
- 🛠️ 관리자 (Admin)
🎨 Leeturn.py Use Case Diagram 설명
🟢 Actor
- 사용자(User): 설문에 참여하고 결과를 확인하는 일반 사용자
- 관리자(Admin): 설문 문항, 선택지, 이미지 및 응답 데이터 관리
🟢 Use Cases
ActorUse Case 목록
사용자 | - 회원가입/로그인 - 설문 시작 - 답변 제출 - 결과 확인 |
관리자 | - 질문 관리 - 선택지 관리 - 이미지 업로드 - 응답 데이터 조회 |
✨ 다이어그램 구조 (설명)
👤 사용자 🛠️ 관리자
│ │
┌─────────────┼───────────────────────────────────────┼──────────────┐
│ [Leeturn.py 심리 설문 시스템] │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ ○ 회원가입 / 로그인 │ │
│ │ ○ 설문 참여 │ │
│ │ └── ○ 답변 제출 │ │
│ │ └── ○ 결과 확인 │ │
│ │ ○ 질문 관리 <<Admin>> │ │
│ │ ○ 선택지 관리 <<Admin>> │ │
│ │ ○ 이미지 업로드 <<Admin>> │ │
│ │ ○ 응답 데이터 조회 <<Admin>> │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
✅ 포인트
- 설문 참여는 반드시 회원가입/로그인 후 가능 👉 <<include>> 관계 적용 가능
- 결과 확인은 답변 제출 이후에만 가능 👉 <<extend>>로 표현 가능
- 관리자는 CRUD 기능 중심으로 시스템을 유지 관리

'기술블로그' 카테고리의 다른 글
📂 프론트엔드 파일 구조 설명 (0) | 2025.04.28 |
---|---|
리눅스 서버 관리 필수 명령어 정리 (Flask + Nginx + AWS) (0) | 2025.04.27 |
Flask 백엔드 배포 & CORS 문제 해결기 (AWS EC2 + DuckDNS) (0) | 2025.04.27 |
백엔드 내부(admin용) 페이지(시작단계 확인) (0) | 2025.04.26 |
백엔드, 프론트엔드 로컬 연동 설정 및 검증 진행 (0) | 2025.04.26 |