개주 훈련일지/📚 코살대 교본 학습

유스케이스

lshfood2 2026. 1. 2. 21:39

도메인 분석과 모델링 사이에 연결되는 작업이

유스케이스use case를 찾아내는 일이다.

 

요구를 모으고(추출)

→ 도메인을 이해하고(분석)

→ 시스템이 실제로 어떻게 동작해야 하는지

 

사용자 관점에서 정리해야 한다.

그 연결 고리가 유스케이스(use case) 이다.


1) 유스케이스가 하는 일: 도메인 개념을 “동작 명세”로 매핑

도메인 분석은 “모델을 만드는 것”이라기보다,
모델링에 필요한 개념(용어/규칙/구조) 를

이해하고 뽑아내는 작업이다.

 

그리고 유스케이스는 그 결과를 가져와서,

  • 액터(Actor)
  • 유스케이스(기능 단위)
  • 관계(Relationship)
  • 시스템 범위(System Boundary)

로 구성된 형태로 시스템의 동작을 모형화한다.

 

즉, “업무의 세계(도메인)”에서 발견한 개념들이
“시스템이 제공해야 할 서비스(동작)”로

바뀌는 순간이 유스케이스이다.


2) 유스케이스가 중요한 이유

유스케이스는 요구 분석에서 끝나는 문서가 아니다.

 

시스템 개발 전 과정에서

계속 재사용되는 핵심 빌딩 블록이 된다.

  • 모델링/설계의 재료
    : 객체, 속성, 메시지, 관계 같은 정보를 뽑아낼 수 있다.
  • 테스트의 재료
    : 구현 후 테스트 시나리오(정상/예외 흐름)를 구성할 수 있다.
  • 요구의 길잡이
    : 무엇을 만들어야 하는지를 사용자 관점에서 계속 확인할 수 있다.

3) 유스케이스 모델의 4요소

유스케이스는 아래 4개가 결합된 것이다.

  • 액터(Actor)
    : 시스템과 상호작용하는 외부 존재(사람/조직/다른 시스템 등)
  • 시스템 범위(Boundary)
    : 시스템 안/밖을 구분하는 경계
  • 유스케이스(Use Case)
    : 액터에게 보이는 시스템의 기능(단위 기능)
  • 관계(Relationship)
    : 유스케이스 간 연결(포함/확장 등)

핵심은 “시스템이 하는 일”과

“시스템 밖에서 일어나는 일”을

정확히 가르는 것이다.


액터는 시스템 밖,

유스케이스는 시스템 안에 위치한다.


4) 유스케이스 분석 절차 3단계

유스케이스 분석은 보통 아래 순서로 진행된다.

  1. 액터 찾기
  2. 유스케이스 찾기
  3. 유스케이스 사이의 관계 찾기

결과물은 두 가지이다.

  • 유스케이스 다이어그램
    : 기능 “목차”를 그림으로 보여줌
  • 유스케이스 명세서
    : 각 기능의 “이벤트 흐름(시나리오)”를 글로 자세히 적음

5) 유스케이스 다이어그램이란?

유스케이스 다이어그램은
외부에서 보이는 시스템 동작에 초점을 둔 그림이다.

 

구성은 단순하다.

  • 액터(사람 아이콘 등)
  • 유스케이스(타원)
  • (그리고 필요하면 관계: include/extend 등)

이 다이어그램을 그리는 과정 자체가 결국
“시스템 범위를 어디까지로 볼 것인가?”를 정하는 작업이 된다.


6) 액터(Actor) — “사람”이 아니라 “역할”이다

액터는 시스템과 상호작용하는 외부 엔티티이다.
사람일 수도 있고, 외부 시스템일 수도 있다.

중요한 포인트는 이것이다.

  • 액터는 역할(role)의 추상화이다.
  • 같은 사람이라도 역할이 다르면 서로 다른 액터가 될 수 있다.
    (예: ‘학생’ 역할 vs ‘관리자’ 역할)

액터 찾을 때 던질 질문

  • 누가 업무를 수행하기 위해 시스템 도움을 받는가?
  • 누가 핵심 기능을 사용하는가?
  • 누가 유지보수/관리 같은 부수 기능을 쓰는가?
  • 시스템이 연동되는 외부 하드웨어/소프트웨어는 무엇인가?

7) 유스케이스(Use Case) — “관찰 가능한 결과”를 만드는 동작 묶음

유스케이스는 시스템이 수행하는 일련의 동작으로,
특정 액터에게 관찰 가능한 결과를 제공한다.

또 다른 말로,

  • 유스케이스는 여러 시나리오의 집합이다.
  • 정상 흐름만이 아니라 오류/예외/대안 흐름까지
    포함해야 “유스케이스답다”.

유스케이스 찾을 때 도움이 되는 질문

  • 각 액터가 시스템과 관련해 하는 작업은 무엇인가?
  • 시스템에서 발생하는 사건을 액터에게 알려야 하는가?
  • 액터가 외부 변화(상황)를 시스템에 알려야 하는가?
  • 시스템이 비즈니스 규칙에 맞는 동작을 제공하는가?
  • 찾은 유스케이스로 기능이 빠짐없이 커버되는가?
  • 유지보수/지원 목적의 유스케이스는 무엇인가?
  • 시스템에서 생성/수정되어야 하는 정보는 무엇인가?

8) 유스케이스 명세서 — “시간 순서”로 쓰는 상호작용 시나리오

유스케이스 명세는 시스템이 제공할 서비스를

시간 흐름 순서대로 기술한 문서이다.

 

보통 다음을 포함한다.

  • 시작 조건(Precondition)
    : 시나리오 시작 전에 만족되어야 하는 것
  • 기본 흐름(Basic Flow)
    : 정상 성공 시나리오
  • 대안 흐름(Alternative Flow)
    : 오류/예외/분기 시나리오
  • 종료 조건(Postcondition)
    : 끝난 뒤 시스템 상태

(추천) 유스케이스 명세 템플릿

  • 시스템 제목
  • 유스케이스 이름
  • 액터
  • 시작 조건
  • 기본 흐름(번호로 단계화)
  • 대안 흐름(번호 + 조건/예외)
  • 종료 조건

9) 이벤트 흐름(Event Flow) 작성 가이드

이벤트 흐름은 요구 분석 이후(모델링/설계/테스트)를 좌우한다.
그래서 “누가 읽어도 오해 없게” 쓰는 게 중요하다.

체크리스트로 정리하면 아래와 같다.

  • 시작/종료 조건을 명확히 쓴다.
  • 액터↔시스템 사이에 교환되는 데이터를 설명한다.
  • UI 세부는 꼭 필요할 때만(가능하면 “What” 중심).
  • “액터가 ~한다”처럼 상호작용 사건으로 쓴다.
  • 다른 유스케이스/시스템 밖 사건은 끌고 오지 않는다.
  • “예를 들면/등/정보” 같은 모호한 표현은 피한다.
  • 테스트 케이스로 뽑을 수 있을 정도로 구체적이어야 한다.

10) 유스케이스 사이의 관계: 대안 / include / extend

기본 흐름이 너무 길고 복잡해지면
일부 이벤트 흐름을 분리해서 구조를 개선할 수 있다.

 

대표 패턴은 아래 3가지이다.

  • 대안 흐름 분리
    : 예외/선택/변형 흐름을 따로 빼서 정리
  • 포함(include)
    : 여러 유스케이스에서 공통으로 재사용되는 동작 캡슐화
  • 확장(extend)
    : 특정 조건에서만 추가로 끼워지는 선택적 동작 분리

include vs extend 한눈에 비교(표)

구분 include(포함) extend(확장)
성격 “공통으로 항상 들어가는” 재사용 동작 “조건에 따라 추가되는” 선택/예외 동작
목적 중복 제거, 공통 절차 캡슐화 기본 흐름 단순화, 옵션/예외 분리
기본
유스케이스의
완결성
포함이 없어도 의미는 통하지만,
흐름상 자주 사용되는 공통 동작을 분리
기본 유스케이스는 확장 없이도 완전해야 함
언제 쓰나 핵심 목적 이해에 필수는 아니지만
반복되는 절차가 있을 때 / 공통 요소가
2개 이상 유스케이스에 있을 때
멤버십 할인처럼 “특정 조건에서만 발생”하는
추가 흐름이 있을 때

11) 사용자 스토리 vs 유스케이스

둘 다 사용자가 이해 가능한 언어로 요구를 표현한다.

하지만 깊이가 다르다는 차이점을 지닌다.

항목 사용자 스토리(User Story) 유스케이스(Use Case)
형태 짧은 한 문장(해석 여지 존재) 상호작용을 단계적으로 구체화
목적 빠르게 요구를 공유/협업 기능을 사건 흐름으로 명확히 정의
기본 구성 who + why + what 목표/제목 + 성공 흐름 + 대안/확장 흐름
결과물 느낌 “무엇을 원한다” 중심 “어떻게 상호작용해서 달성하는가” 중심

마무리

도메인 분석이 “개념과 규칙을 이해하는 작업”이라면,
유스케이스는 그걸 바탕으로 시스템이 해야 할 동작을

사용자 관점에서 고정하는 작업이다.

  • 액터를 찾고(경계 설정)
  • 유스케이스를 찾고(기능 목차 구성)
  • 관계를 정리하고(include/extend로 구조화)
  • 명세서의 이벤트 흐름을 제대로 쓰면(What 중심)

요구 → 설계 → 테스트까지 흐름이 자연스럽게 이어진다.

'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글

요구 검증  (0) 2026.01.04
요구 명세  (0) 2026.01.03
SQL) DDL (Data Definition Language)  (0) 2025.12.29
소프트웨어 요구분석  (0) 2025.12.27
SQL) 관계형 데이터베이스 개요  (0) 2025.12.27