웹 서비스를 기획 및 제작을 하는 과정에는 협업하는 사람과의 커뮤케이션 문제, 플랫폼에 사용되는 구조의 재사용 문제 또는 작업 도중 플랫폼의 구조를 수정해야 되는 등 많은 문제가 생길 수 있습니다. 이런 문제에 직면하기전 우리는 UML을 통해 해결할 수 있습니다.
UML(Unified Modeling Language)은 객체 지향 개념을 이용하여 시스템을 설계를 표현하기 위해 사용하는 모델링 언어입니다. 소프트웨어의 영역뿐만이 아니라 시스템 자체의 산출물의 역활을 시각화 하여 규정하는데 목적을 두고 있습니다.
UML은 어떠한 현상들을 단순화, 일반화, 추상화 하는 과정으로 여러 장점을 가지고 있습니다.
📢 내부 구조나 동작하는 행위에 대해 특정 언어나 방법에 종속되지 않는 표현의 자유를 가지고 있습니다.
📢 시스템의 구성 요소들이 서로 어떻게 연결되어 있는지 시각화를 통해 확인이 가능합니다.
📢 설계와 구현 간의 일관성을 유지하여 정확한 모델을 제시합니다.
📢 레벨화 구분법으로 시스템의 중요도를 직관적 확인이 가능합니다.
📢 명확한 의사 소통의 도구로써 개발자간의 커뮤니케이션에 용이합니다.
우리는 플랫폼을 제작하는데 2가지 근복적인 어려움을 겪고 있습니다. 플랫폼의 기획 단계에서 정확하고 명백한 모델을 구축하여 모델링을 하지 않았다면 개발 단계에 들어갔을 때 가시화 할 수 없는 전체 시스템의 복잡성의 처리에 어려움이 있습니다. 그리고 시스템의 분산, 동시성, 반복성 등에 대한 구조적인 문제를 개발과정에 재수정을 해야하는 변경의 어려움이 있습니다.
위와 같은 문제점을 해결하기 위해서는 규격화된 규칙으로 인한 손쉽게 이해할 수 있는 시각화가 필요합니다. 단순한 텍스트만으로는 상대방에게 설득하는데 어려움이 있습니다. 시각적인 그래픽 형태는 개발자들 간의 원만한 의사소통을 가능하게 만들어줍니다.
UML은 사람의 행위를 기반으로 단계적 과정을 시점상으로 표현한 것으로 절차와 단계의 가설을 키워드로 표현하고 시나리오를 확장하는 순차적 단계를 지니고 있습니다. 이러한 과정의 단계에서 우리는 중요한 프로세스를 사전점검할 수 있습니다. 이를 통해 기획단계에서 사용자의 행동에 중요도를 레벨화 시키는것이 가능합니다.
사람이 가장 이해하기 쉬운 이야기 전개 방식인 UML은 실제 사용자들이 플랫폼 관점으로 구축을 전개하는 것이 아닌 사용자들의 문제를 기반으로 구축할 것을 모델링 함으로써 좀더 효율적이고 완성도 높은 플랫폼을 구축할 수 있습니다.
UML으로 모델링을 하면 시스템의 시각화, 이해도, 정확성, 의사전달 그리고 일관성과 같은 성공적인 플랫폼 구축을 위한 필수 요건을 충족시키는 이점을 가질 수 있습니다.
UML을 통해 이해 당사자가 서로 커뮤니케이션 할 수 있는 소프트웨어 시스템의 구조와 행위를 정의하고 기술할 수 있습니다. 사용자의 요구사항을 모델로 생성함으로써 보다 빠르고 정확한 플랫폼을 구현할 수 있습니다. 이런 방식을 MDD(Model Driven Development) 즉 모델 주도적 개발이라고 합니다.
MDD는 모델 개발에 중점을 둔 개발방법론으로 모델을 이용하여 목표 시스템을 단순화함으로써, 사용자는 시스템을 쉽게 이해할 수 있고 개발자는 개발을 용이하게 하는 것이 목적인 개발방법론입니다.
구성요소를 표현하기 위한 구조적 다이어그램과 행위를 표현하기 위한 행위 다이어그램으로 나눌 수 있습니다. 이 중 행위 다이어그램에 속하는 유스케이스 다이어그램과 액티비티 다이어그램은 UML의 단계에서 반드시 필요한 다이어그램입니다.
유스케이스 다이어그램(Use Case Diagram)은 시스템의 행위를 모델링 하며 시스템의 요구 사항을 표현하는데 사용됩니다. 시스템의 상위 레벨 기능과 범위를 기술하며, 시스템이 기능을 어떻게 구현할 것인지가 아닌 시스템이 어떤 기능이 필요한지에 대해서만 표현합니다. 이는 프로젝트 초기 단계에서 사용자 관점에서 시스템을 모델링 할 수 있는 목적을 가지고 있습니다. 사용자가 시스템에 바라는 바를 표현함으로써 사용자의 시점을 빨리 이해하고 쓸모있고 쓸 수 있는 시스템을 만들 수 있도록 도와줍니다.
Actor
UseCase
Association
Include
Extend
Generalization
활동 다이어그램은 시스템의 실행과 행위의 흐름을 표현합니다. 이는 비지니스 프로세스 또는 작업에서 이용하는 고객의 흐름을 표현하는데 적합합니다. 또한 순착적인 제어의 흐름뿐 아니라 연계관계 액터의 병렬적으로 수행되는 활동과 분기가 이루는 대안들에 대해서도 표현이 가능합니다.
Action/Activity
Initial Node
Final Node
Control Flow
Decision Node
Merge Node
📢 Fork Node
📢 Join Node
지금까지는 프로젝트를 기획한다는 의미는 단순히 개발과정을 계획을 하는 과정이라고 생각했습니다. 하지만 UML을 통한 기획은 팀원들과의 커뮤니케이션, 개발과정의 구멍을 효율적으로 막을 수 있는 효율적인 방법이란걸 알았습니다. .UML은 혼자서 하는 개인 프로젝트가 아닌 팀원들과 함께하는 개발에서는 반드시 고려해야할 모델링 언어라고 생각합니다.
#프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프