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

2025. 4. 28. 13:48·기술블로그-Flask편

🎨 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 기능 중심으로 시스템을 유지 관리

 

'기술블로그-Flask편' 카테고리의 다른 글

🧠 클래스, 인스턴스, 객체 완전 정복 가이드  (0) 2025.05.23
📂 프론트엔드 파일 구조 설명  (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
'기술블로그-Flask편' 카테고리의 다른 글
  • 🧠 클래스, 인스턴스, 객체 완전 정복 가이드
  • 📂 프론트엔드 파일 구조 설명
  • 리눅스 서버 관리 필수 명령어 정리 (Flask + Nginx + AWS)
  • Flask 백엔드 배포 & CORS 문제 해결기 (AWS EC2 + DuckDNS)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (702)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (40)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Use Case Diagram (유스케이스 다이어그램) 완벽 이해하기
상단으로

티스토리툴바