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

제어 모델링

lshfood2 2026. 1. 24. 13:06

[ 제어 모델링 ]

UML은 정적 관점, 동적 관점 모델링 외에도

흐름도처럼 ‘제어 흐름(Control Flow)’ 을 표현하는

다이어그램을 제공한다.


그 대표가 바로 

액티비티(Activity) 다이어그램이다.


액티비티 다이어그램이란?

액티비티 다이어그램은

알고리즘/프로세스의 작업 절차를 모델링한다.

  • 기본 느낌은 흐름도(Flowchart) 와 유사
  • 단, 예외 처리 흐름까지 포함해 더 명확하게 표현 가능
  • 동시성(병렬 수행) 도 표현 가능

즉, '프로그램이 실제로 어떤 순서로 진행되는지'를

작업 단위 중심으로 정리하는 모델이다.


상호작용 다이어그램과의 차이

액티비티 다이어그램은

상호작용 다이어그램을 보완한다.

 

- 상호작용 다이어그램
객체에서 객체로 제어가 이동하는 흐름을 모델링

 

- 액티비티 다이어그램
'무슨 작업'이 '어떤 순서'로 이어지는가 같은 작업 흐름을 모델링

 

또한 액티비티 다이어그램은
처음부터 객체를 확정하지 않아도

‘할 일(액티비티)’을 먼저 모델링하고,


나중에 객체/역할이 식별되면

그 책임을 추가로 할당하는 방식으로도 활용된다.


기본 요소 정리 (표로 보기)

액티비티 다이어그램에서 자주 쓰는

핵심 요소는 아래 4가지가 기본이다.

요소 의미 핵심 포인트
Activity 계산/처리/프로세스(작업) '무슨 일을 하는지'를 나타내는 단위
Transition 액티비티 간 제어 이동 한 작업이 끝나고 다음 작업으로 흐름이 넘어감
Branch 조건 분기 조건이 true인 경로를 따라감 (가드 조건 표기)
Merge 분기 흐름 합류 분기된 흐름을 다시 하나로 합쳐 단일 흐름으로 진행

Branch / Merge 규칙 

Branch(분기) 는 조건에 따라

흐름이 갈라지는 지점이다.

  • 분기에서 나가는 전환에는
    보통 [조건] 같은 가드가 붙는다.
  • true로 계산된 조건의 분기를 따른다.
  • 분기점을 떠나는 조건들은 서로 겹치지 않아야 한다.
    (조건이 겹치면 '어느 쪽으로 가야 하는지'가 모호해짐)

Merge(병합) 는 분기된 흐름을 다시 합쳐서
이후에는 단일 제어 흐름으로 이어지게 만든다.


어디에 쓰나?

액티비티 다이어그램은

크게 두 가지 상황에서 많이 쓴다.

 

1. 문제 영역(Problem Domain)의 워크플로 모델링

현실 업무 절차(예: 도서관 대출, 주문 처리)를 흐름으로 정리

 

2. 솔루션 도메인(Solution Domain)의 소프트웨어 제어 흐름 모델링

실제 시스템 내부 로직이 어떤 순서/조건으로 동작하는지 명확히 표현

 

또한 유스케이스를 액티비티 다이어그램으로 모델링할 수도 있다.
유스케이스는 서술 형태라 세부 사항이 누락되기 쉬운데,
액티비티 다이어그램은 더 정형화된 흐름으로 보여줄 수 있다.


예시 흐름 (도서관 대출 시나리오)

도서 대출 흐름을 액티비티로 풀면

보통 이렇게 정리된다.

  • 대출 요청
  • 대출 가능 여부 확인 (Branch)
    • [제한 미도달] → 대출 권수 증가 → 대출자 기록
    • [제한 도달] → 제한 안내(실패 처리)
  • Merge 후 종료

코드 관점에서는 보통

if/else 분기로 구현되는 형태와 대응된다.


스윔레인(Swimlane): 책임 분리

액티비티 다이어그램에는 스윔레인이 있어
각 액티비티가 '누가 담당하는지(책임)\'를 나눠 표현할 수 있다.

  • 스윔레인 = 담당 주체(구성 요소/조직 단위)
  • 같은 흐름이라도 '부서/역할별 업무 분장'이 명확해진다.

병렬 수행: Fork / Join

액티비티 다이어그램은

병렬 처리(동시에 진행되는 작업) 도 표현한다.

  • Fork: 하나의 흐름이 여러 흐름으로 갈라져 동시에 수행
  • Join: 동시에 수행되던 여러 흐름이 다시 모여 다음 단계로 진행

예를 들어 '주문 처리'에서
배송 준비 / 송장 발행 / 결제 처리 같은 작업이 병렬로 진행되고,
모두 끝나면 '주문 마감'으로 넘어가는 구조를 표현할 수 있다.


마무리 정리

제어 모델링은 흐름도처럼

'제어 흐름을 모델링'하는 관점이다.

그 핵심 도구가 액티비티 다이어그램이다.

 

액티비티 다이어그램은

  • 작업 절차를 명확히 보여주고
  • 조건 분기(Branch/Merge)를 구조적으로 표현하며
  • 스윔레인으로 책임을 나누고
  • Fork/Join으로 병렬 수행까지 모델링할 수 있다.

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

SQL) 서브쿼리  (0) 2026.01.25
모델 검증  (0) 2026.01.24
SQL) 계층형 질의와 셀프 조인  (0) 2026.01.24
SQL) 집합연산자  (0) 2026.01.24
SQL) 표준 조인  (0) 2026.01.24