기술블로그-Flask편

Use Case Diagram (유스케이스 다이어그램) 완벽 이해하기

Chansman 2025. 4. 28. 13:48

🎨 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] 프로젝트 개요

  • 프로젝트명: 심리 설문조사 플랫폼
  • 주요 기능:
    1. 회원가입 / 로그인
    2. 설문 참여
    3. 설문 결과 조회
    4. 관리자 질문/선택지/이미지 관리
    5. 사용자 응답 데이터 관리
  • 주요 Actor:
    • 👤 사용자 (User)
    • 🛠️ 관리자 (Admin)

🎨 Leeturn.py Use Case Diagram 설명

🟢 Actor

  • 사용자(User): 설문에 참여하고 결과를 확인하는 일반 사용자
  • 관리자(Admin): 설문 문항, 선택지, 이미지 및 응답 데이터 관리

🟢 Use Cases

ActorUse Case 목록
사용자 - 회원가입/로그인
- 설문 시작
- 답변 제출
- 결과 확인
관리자 - 질문 관리
- 선택지 관리
- 이미지 업로드
- 응답 데이터 조회

다이어그램 구조 (설명)

              👤 사용자                              🛠️ 관리자
                 │                                       │
   ┌─────────────┼───────────────────────────────────────┼──────────────┐
   │        [Leeturn.py 심리 설문 시스템]                               │
   │   ┌────────────────────────────────────────────────────────────┐   │
   │   │   ○ 회원가입 / 로그인                                      │   │
   │   │   ○ 설문 참여                                             │   │
   │   │       └── ○ 답변 제출                                     │   │
   │   │       └── ○ 결과 확인                                     │   │
   │   │   ○ 질문 관리  <<Admin>>                                  │   │
   │   │   ○ 선택지 관리 <<Admin>>                                 │   │
   │   │   ○ 이미지 업로드 <<Admin>>                               │   │
   │   │   ○ 응답 데이터 조회 <<Admin>>                            │   │
   │   └────────────────────────────────────────────────────────────┘   │
   └─────────────────────────────────────────────────────────────────────┘

포인트

  • 설문 참여는 반드시 회원가입/로그인 후 가능 👉 <<include>> 관계 적용 가능
  • 결과 확인은 답변 제출 이후에만 가능 👉 <<extend>>로 표현 가능
  • 관리자는 CRUD 기능 중심으로 시스템을 유지 관리