액티비티 다이어그램은 시스템이나 프로세스에서 활동들 간의 흐름과 워크 플로우 등을 시각화 하여 표현하기 위해 사용합니다. 각각 객체의 상태보다는 처리 로직이나 조건에 따른 처리 흐름을 정의하는 다이어그램에 가깝습니다. 아래에서는 이러한 액티비티 다이어그램의 개념과 주요 구성 요소 등을 살펴보고 다이어그램 그리기 도구를 활용한 작성 방법을 소개해 보도록 하겠습니다.
Part1: 액티비티 다이어그램의 모든 사실
1. 액티비티 다이어그램이란?
액티비티 다이어그램(Activity Diagram)은 UML 중에 하나로, 시스템과 프로세스, 업무 흐름 등의 동적인 모델링을 표현하기 위해 사용하는 다이어그램입니다. 주로 소프트웨어의 시스템 동작을 시각화하고 문서화하기 위해 사용하며 활동 다이어그램이라고 부르기도 합니다.
액티비티 다이어그램은 오퍼레이션이나 처리 과정에서 수행되는 일들을 단계적으로 표현합니다. 아래 예시 이미지는 로그인 활동을 액티비티 다이어그램으로 작성한 것으로 활동들을 중심으로 작성되었습니다. 특히 업무 처리 과정을 분석할 때 유용하며 순서도와 유사한 점을 가지고 있습니다.
2. 액티비티 다이어그램 의미&요소
액티비티 다이어그램은 크게 액션, 액티비티, 제어흐름, 노드, 스윔레드 등으로 구성되며 여기서 노드는 다시 시작노드, 종료노드 조건노드 등으로 세분화됩니다.
1) 액티비티: 작업이나 프로세스, 상태, 동작 등의 의미하며 이 액티비티는 몇 개의 액션으로 분리될 수 있습니다.
2) 액션: 더 이상 분해 할 수 없는 단일 작업을 말하며 액티비티 내에서 구체적인 동작 또는 활동을 의미합니다.
3) 제어 흐름: 액티비티 간의 흐름을 나타내며 화살표를 사용해 연결합니다.
4) 노드: 특정 활동이나 동작을 의미하며 다이어그램에서 다양한 역할을 수행합니다.
A. 시작 노드 & 종료 노드: 프로세스의 시작과 종료 지점을 나타내는 구성요소입니다. 프로세스가 어떻게 시작되고 어떻게 완료되는지를 표현하며 시작 노드는 다이어그램에서 1번만 사용됩니다.
B. 조건 & 병합 노드: 판단 노드라고도 불리며 조건에 따라 제어의 흐름이 분리됩니다. 일반적으로 조건 노드는 마름모로 표현하며 들어오는 제어 흐름은 한 개고 나가는 제어 흐름은 여러 개 일 수 있습니다. 반대로 병합 노드는 여러 경로의 제어 흐름이 하나로 병합되는 것을 의미합니다.
C. 포크 & 조인 노드: 굵은 가로선으로 표기되며 포크는 하나의 흐름이 들어와 여러 개로 나가고 조인은 여러 개의 제어 흐름이 들어와 1개로 합쳐집니다.
5) 스윔레드: 액티비티를 수행하는 주체를 구분할 때 사용하며 가로 또는 세로 실선으로 표현합니다.
Part2: 액티비티 다이어그램 도구 및 그리기 방법
1. Draw.io
Draw.io는 각종 다이어그램과 차트 작성에 유용한 온라인 서비스입니다. 특히 오픈 소스 프로그램으로 소스 코드를 일반 사용자들도 확인 할 수 있고 무료로 사용할 수 있다는 것이 가장 큰 장점입니다. 직관적인 인터페이스를 제공하며 다양한 다이어그램 템플릿을 제공합니다.
1) 템플릿 찾기
왼쪽 상단 검색바에서 Activity를 검색하면 액티비티 다이어그램 템플릿을 찾을 수 있습니다. 2가지 템플릿 중에 원하는 것을 선택하고 하단에 만들기 버튼을 클릭하면 편집할 수 있는 작업 화면으로 이동합니다.
2) 항목 입력하고 편집하기
Draw.io가 지원하는 액티비티 다이어그램 템플릿은 3개의 스윔레인으로 구성되며 앞서 살펴본 각종 노드를 포함한 전문적인 템플릿으로 활용도가 높습니다. 그리고 작업 페이지 좌측에는 다이어그램 작성에 필요한 도형과 화살표 등 구성요소들을 제공하고 있습니다. 이를 활용해 제공한 템플릿을 사용자 목적에 따라 항목을 입력하고 재편집할 수 있습니다.
3) 완성하고 내보내기
서비스에서 제공하는 템플릿을 활용해 쉽게 액티비티 다이어그램을 완성할 수 있습니다. 완성된 다이어그램은 다양한 형식으로 내보내기를 실행할 수 있습니다. 구글 드라이브나 드롭박스 같은 클라우드에 저장도 가능하고 웹 링크를 통해서 공유도 가능합니다.
2. GitMind
GitMind는 온라인으로 다양한 다이어그램 작성할 수 있는 협업 도구입니다. 흐름도, 유스케이스, 클래스, EF 다이어그램 등을 포함하며 프로젝트 관리와 IT 개발, DB설계, 업무 프로세스 모델링 등 다양한 분야에서 활용할 수 있는 무료 서비스입니다. 특히 직관적이고 사용자 친화적인 인터페이스를 가지고 있어 사용자가 쉽게 다양한 다이어그램을 생성할 수 있습니다.
1) 적절한 템플릿 선택하기
GitMind에서는 액티비티 다이어그램 전용 템플릿은 제공하지 않습니다. 하지만 유사한 템플릿을 활용해 액티비티 다이어그램 작성에 사용할 수 있습니다. GitMind 템플릿 페이지에서 플로우차트 > Lane 카테고리에 있는 Swimlane-4 템플릿이 활용해 작성해보겠습니다.
2) 템플릿 레이아웃 재편집
GitMind의 스윔레인 템플릿은 프로세스가 5개로 구성된 다이어그램으로 2가지 버전으로 종료될 수 있는 형태입니다. 여기서 프로세스의 숫자를 줄이고 액션을 축약한 버전으로 레이아웃을 재편집 합니다.
GitMind 역시 앞서 소개한 Draw.io와 동일하게 작업 페이지 좌측에 다이어그램 작성에 필요한 도형과 구성요소들을 제공합니다.
3) 완성하고 내보내기
GitMind가 제공하는 다양한 작성 기능을 활용해 액티비티 다이어그램 템플릿을 완성합니다. 여기에 사용자가 준비한 항목과 내용을 입력하면 다이어그램 작성하기가 완성됩니다. 이 때 다양한 파일 형식으로 저장하고 내보내기도 가능합니다.
3. Boardmix
보드믹스는 온라인 화이트보드 기반의 협업툴로, 다양한 다이어그램과 차트 작성부터 프로젝트 관리까지 다양한 용도로 활용할 수 있는 유용한 도구입니다. 최근 AI 기능을 업데이트해서 더욱 강력한 퍼포먼스를 보여주고 있기도 합니다. 이러한 보드믹스로 템플릿 없이 액티비티 다이어그램을 작성해보도록 하겠습니다.
1) 액티비티 추가하기
보드믹스 작업 페이지에서 액티비티 또는 액션을 추가합니다. 좌측 메인 메뉴 > 도형 라이브러리 > UML 카테고리에서 사각형 도형을 선택해 추가합니다.
2) 의사결정 추가하기
액티비티 사이에서 조건 노드(분기)를 표현하기 위해 의사 결정 요소를 추가합니다. 이 때도 도형 라이브러리에서 마름모 도형을 찾아 작업 페이지에 추가합니다.
3) 제어 흐름 연결하기
각 액티비티간의 관계와 조건 노드등을 연결하기 위해 화살표를 사용해 제어 흐름을 표현합니다. 이 때 조건 노드에서는 Yes / No에 따라 액션을 연결하고 추가 액션도 작성합니다.
4) 완성하고 공유하기
마지막으로 시작노드와 종료 노드를 표기하고 액티비티 다이어그램 작성하기를 완성합니다. 추가적으로 스타일이나 색상을 변경할 수도 있습니다. 보드믹스를 통해 완성된 다이어그램을 팀원들과 함께 공유하고 피드백을 주고 받을 수도 있습니다.
마무리
액티비티 다이어그램을 프로세스나 시스템의 동작을 시각화하여 이해하기 쉽게 만들기 위한 도구입니다. 때문에 작성시 간결함을 유지하는 것이 중요합니다. 또한 액티비티 다이어그램 작성에 도움이 되는 다양한 온라인 도구들을 적절히 사용하는 것도 좋은 팁이 됩니다. 특히 팀원들과 함께 실시간으로 작성하거나 빠른 피드백이 필요하다면 보드믹스 같은 협업툴로 작성하는 것을 추천합니다.