그림 하나가 천 마디 말만큼 효과적입니다. 통합 모델링 언어(UML) 다이어그래밍은 이러한 이유로 만들어졌습니다. 소프트웨어 개발 과정이 굉장히 복잡한 만큼, 이 과정을 비즈니스 사용자 및 시스템을 알고자 하는 모든 사용자가 이해할 수 있도록 공통된 시각 언어를 만들고자 했습니다. 역사, 사용, 개념, 유형과 함께 UML 다이어그램 도구를 사용하여 드로잉하는 지침까지 UML 다이어그램의 핵심 정보를 배워보세요.
7 분 읽기
직접 UML 다이어그램을 만들고 싶으신가요? Lucidchart를 사용해보세요. 빠르고 사용이 간편하며 무료로 제공됩니다.
UML이란 무엇인가요?
통합 모델링 언어(UML)는 구조적 및 행동적으로 복잡한 소프트웨어 시스템의 아키텍처, 디자인 및 구현을 위한 시각적 모델링 언어로, 의미적으로 그리고 구성적으로 풍부하며 보편적인 시각적 모델링 언어를 만들기 위해 생성되었습니다. UML은 소프트웨어 개발 외에도 제조 과정에서의 프로세스 흐름 등에 활용될 수 있습니다.
이는 다른 분야에서 사용되는 청사진과 유사하며 서로 다른 유형의 다이어그램으로 구성되어 있습니다. 집합된 상태에서 UML 다이어그램은 경계, 구조, 시스템의 작동과 그 안에 있는 객체들을 설명합니다.
UML은 프로그래밍 언어가 아니지만 UML 다이어그램을 사용하여 다양한 언어로 코드를 생성하는 데 사용할 수 있는 도구가 제공됩니다. UML은 객체 지향 분석 및 디자인과 직접적으로 연관되어 있습니다.
객체 지향 모델링 및 디자인에서 UML과 그 역할
알고리즘과 데이터를 연구하는 컴퓨터 공학 분야에는 다양한 문제 해결 패러다임이나 모델이 존재합니다. 문제 해결 모델에는 4가지 카테고리가 존재하는데, 명령형, 함수형, 선언형 및 객체 지향 언어(ODP)가 여기에 포함됩니다. 객체 지향 언어에서는 '객체' 정의 및 객체 간의 상호작용을 통해 알고리즘을 표현합니다. 이때 객체는 조작이 가능한 대상으로, 현실 세계에 존재합니다. 즉, 건물, 데스크톱의 위젯 또는 사용자 등이 객체가 될 수 있습니다.
객체 지향 언어는 실제 객체를 모델링하기 때문에 프로그래밍에서 가장 널리 사용됩니다. UML은 객체 지향 디자인, 객체 모델링 기술, 객체 지향 소프트웨어 엔지니어링 등 여러 객체 지향 표기법의 조합입니다.
UML은 이 세 가지 접근법의 장점을 기반으로 보다 일관되고 활용이 쉬운 방법론을 제시합니다. UML은 소프트웨어 및 비즈니스 시스템 모델링의 여러 측면을 구축하고 문서화하는 방법의 모범 사례를 나타냅니다.
UML의 역사와 기원
소프트웨어 엔지니어링의 'The Three Amigos'로 알려져 있던 세 사람은 다른 방법들을 발전시키기도 했습니다. 서로 힘을 합쳐 새로운 표준을 만들고, 프로그래머에게 명확성을 제공했죠. Booch, Rumbaugh, Jacobson 간의 협업은 세 가지 방법을 모두 더욱 강력하게 만들어 최종 제품을 개선했습니다.
이러한 세 사람의 노력은 결국 1996년 UML 0.9와 0.91 문서 발표로 이어졌습니다. 그리고 얼마 지나지 않아 Microsoft, Oracle, IBM을 포함한 여러 조직들이 UML을 사업 개발에 있어 매우 중요한 부분으로 고려하기 시작했죠. 이들은 여러 개인 및 회사와 함께 본격적인 모델링 언어를 개발하기 위해 리소스를 구축했습니다. The Three Amigos는 1999년에 통합 모델링 언어 사용자 가이드를 발표했고, 2005년에는 개정판을 통해 UML 2.0에 대한 정보를 포함하는 업데이트를 발표했습니다.
OMG: OMG의 진짜 의미
웹사이트에 따르면 오브젝트 관리 그룹(OMG ®)은 1989년에 설립된 국제 그룹으로, 개방형 회원제로 운영되는 비영리 기술 표준 컨소시엄입니다. OMG의 표준은 협력업체, 최종 사용자, 학술 기관 및 정부 기관에 의해 수립됩니다. OMG 태스크 포스는 광범위한 기술과 그보다 더 광범위한 산업 분야에 대해 기업 통합 표준을 개발하고 있습니다. UML 및 모델 중심 아키텍처®(MDA ®)를 포함한 OMG의 모델링 표준은 강력한 비주얼 디자인, 소프트웨어 및 기타 프로세스의 실행 및 유지를 가능하게 합니다.
OMG는 UML 사양의 정의와 유지 보수를 감독합니다. 이러한 감시를 통해 엔지니어와 프로그래머는 모든 시스템 규모, 소프트웨어의 모든 라이프사이클 단계에서 하나의 언어를 여러 용도로 사용할 수 있습니다.
OMG가 말하는 UML의 목적
OMG는 UML의 목적을 다음과 같이 정의합니다.
- 시스템 설계자, 소프트웨어 엔지니어 및 소프트웨어 개발자에게 소프트웨어 기반 시스템의 분석, 디자인 및 구현을 위한 도구와 비즈니스 모델링 및 유사 프로세스를 위한 도구를 제공합니다.
- 시각적인 오브젝트 모델링 도구의 상호 운용성을 활성화하여 업계의 환경을 개선합니다. 하지만 도구 간의 의미 있는 모델링 정보 교환을 활성화 하려면, 의미론과 표현법의 합의가 필요합니다.
UML은 다음의 사항을 충족합니다.
- UML의 추상 구문을 특정하는 일반적인 메타 오브젝트 기능(MOF) 기반 메타 모델의 공식적인 정의를 설정합니다. 추상 구문은 UML 모델링 개념 집합, 해당 개념의 속성 및 관계를 정의하며, 이러한 개념들을 결합하여 부분적이거나 완전한 UML 모델을 구성하기 위한 규칙들을 정의합니다.
- 각 UML 모델링 개념의 의미론에 대한 자세한 설명을 제공합니다. 의미론은 UML 개념이 컴퓨터에 의해 실현되는 방법을 기술 독립적인 방식으로 정의합니다.
- 개별 UML 모델링 개념을 표시하기 위해 사용자가 읽을 수 있는 표기법 요소를 규정하고, 이들을 모델링된 시스템의 다양한 측면에 부합하는 다양한 다이어그램 유형으로 결합하기 위한 규칙을 지정합니다.
- 이 사양을 준수하도록 UML 도구를 정의할 수 있는 방법을 정의합니다. 이는 해당하는 모델 교환 형식(XMI)의 XML 기반 사양에서 지원되며(별도 사양), 준수 도구에 의해 실현되어야 합니다.
UML 및 데이터 모델링
UML은 프로그래머들 사이에서 인기가 있지만 일반적으로 데이터베이스 개발자들은 사용하지 않습니다. UML 생성 당시 데이터베이스에 초점을 맞추지 않았기 때문이기도 합니다. 하지만 그럼에도 불구하고 UML은 높은 수준의 개념적 데이터 모델링에 효과적이며, 다양한 유형의 UML 다이어 그램에서 사용될 수 있습니다. UML 데이터베이스 모델링에 관한 이 기사에서 객체 지향 클래스 모델을 관계적 데이터 베이스에 레이어하는 데 대한 정보를 알아볼 수 있습니다.
직접 UML 다이어그램을 만들고 싶으신가요? Lucidchart를 사용해보세요. 빠르고 사용이 간편하며 무료로 제공됩니다.
UML 다이어그램 만들기UML 2.0 업데이트
UML은 계속해서 세세한 부분이 정립되고 있습니다. UML 2.0은 애자일을 포함하여 개발의 더 많은 측면을 다루기 위해 UML 사양을 확장했습니다. 사용성, 구현 및 적용이 단순화되도록 UML의 구조를 변경하고 세부 사항을 정립하기 위해 업데이트가 이뤄졌습니다. 다음은 UML 다이어그램에 대한 업데이트 내용입니다.
- 구조 및 작동 모델 사이의 통합 기능 향상
- 계층 구조를 정의하고 소프트웨어 시스템을 구성 요소 및 하위 구성 요소로 분류하는 기능.
- UML 2.0을 통해 다이어그램의 수도 9개에서 13개로 늘어났습니다.
UML 용어집
UML 용어를 숙지하면 많은 도움이 됩니다. 이 목록은 OMG 비회원이 일반적으로 사용되는 용어를 쉽게 이해할 수 있도록 하기 위해 UML 2.4.1 문서에서 선택된 용어를 포함합니다.
추상 구문 준수
사용자는 다른 표기법을 사용하는 경우에도 다른 도구로 모델을 이동할 수 있습니다.CWM(일반적인 창고 메타모델)
다양한 품목이 뒤섞여 있는 환경에서 창고 도구, 창고 플랫폼, 창고 메타데이터 사이의 창고 및 비즈니스 인텔리전스 메타데이터 호환을 활성화하기 위해 사용되는 표준 인터페이스구체적 구문 준수
사용자는 다양한 도구에서 계속해서 익숙한 표기법을 사용할 수 있습니다.코어
UML 맥락에서 코어는 일반적으로 '코어 패키지'를 의미합니다. 코어 패키지는 재사용성을 높이기 위해 특별히 설계된 완전한 메타 모델을 가리킵니다.언어 단위
특정 패러다임 또는 형식주의에 따라 연구 중인 시스템의 측면을 나타낼 수 있는 능력을 사용자에게 제공하는 밀접하게 결합된 모델링 개념의 컬렉션으 로 구성됩니다.레벨 0(L0)
UML 인프라의 하위 준수 레벨 - 가장 일반적인 오브젝트 지향 프로그래밍 언어에서 볼 수 있는 클래스 기반 구조의 종류를 모델링하기 위해 제공하는 단일 언어 단위메타 오브젝트 기능(MOF)
OMG의 MDA 언어군에서 메타 모델 정의에 대한 기초를 제공하는 OMG 모델링 스펙메타 모델
모델을 형성할 언어 및 프로세스를 정의합니다.메타 모델 구성(LM)
UML 인프라의 두 번째 준수 레벨 - UML과 같이 메타 모델을 빌드하는 데 사용되는(CMOF 활용) 고급 클래스 기반 구조의 추가 언어 단위입니다. UML의 준수 레벨은 2가지로 나뉩니다.모델 중심 아키텍처(MDA)
모델 중심 기술 사양의 결합 집합을 달성하기 위한 접근 방법 및 계획입니다.객체 제약 언어(OCL)
통합 모델링 언어에 적용되는 규칙을 설명하는 선언형 언어입니다. OCL은 자연어보다 더 정확하지만 수학적 접근보다는 숙지하기가 쉬운 용어 및 흐름도 기호를 제공하여 UML을 보완합니다.오브젝트 관리 그룹(OMG)
회원이 UML 사양을 정의하고 유지 보수하는 비영리 컴퓨터 업계 사양 컨소시엄입니다.UML 1
통합 모델링 언어의 첫 번째 버전입니다.통합 모델링 언어(UML)
시스템의 아티팩 트를 지정, 구성 및 문서화하기 위한 시각적 언어입니다.XMI
해당 모델 교환 형식의 XML 기반 사양입니다.
MOF 문서 전체 보기
UML 2.4.1 인프라 문서 전체를 다운로드하세요.
UML에 의해 지정된 모델링 개념
시스템 개발은 세 가지의 전반적으로 다른 시스템 모델에 중점을 둡니다.
기능:
사용자의 관점에서 시스템 기능을 설명하는 사용 사례 다이어그램입니다.오브젝트:
오브젝트, 속성, 연계 및 운영의 관점에서 시스템의 구조를 설명하는 클래스 다이어그램입니다.다이내믹:
상호작용 다이어그램, 상태 머신 다이어그램 및 활동 다이어그램은 시스템의 내부 동작을 설명하는 데 사용됩니다.
이러한 시스템 모델은 구조적 그리고 행동적, 두 가지 유형의 다이어그램을 통해 시각화됩 니다.
UML의 객체 지향 개념
UML의 객체들은 우리 주변에 존재하는 실제 세계의 객체입니다. 소프트웨어 개발에서 객체는 도메인과 관련된 용어로 생성 중인 시스템을 설명하거나 모델링하는 데 사용될 수 있습니다. 또한 오브젝트는 한 번에 하나의 부분을 구축할 수 있도록 복잡한 시스템을 이해하기 쉬운 구성 요소로 분해할 수 있도록 합니다.
다음은 객체 지향 세계의 몇 가지 기본 개념입니다.
객체
개체 및 기본 빌딩 블록을 의미합니다.클래스
오브젝트의 청사진을 의미합니다.추상
현실 세계 개체의 행동을 의미합니다.캡슐화
데이터를 결합하여 외부로부터 함께 숨기는 메커니즘입니다.상속
기존 클래스에서 새 클래스를 만드는 메커니즘입니다.다형성
서로 다른 양식으로 존재하는 메커니즘을 정의합니다.
UML 다이어그램의 유형
UML은 요소를 사용하고 서로 다른 방식으로 연계해 시스템의 정적 또는 구조적 측면을 나타내는 다이어그램을 형성하고 시스템의 동적 측면을 파악하는 행동 다이어그램을 만듭니다.
구조적 UML 다이어그램
클래스 다이어그램
가장 일반적으로 사용되는 UML 다이어그램이자 모든 객체 지향 솔루션의 기본 토대입니다. 시스템 내의 클래스, 속성 및 오퍼레이션 및 각 클래스 간의 관계. 대형 시스템을 다이어그래밍할 때 클래스 다이어그램을 생성하기 위해 클래스가 함께 그룹화됩니다.구성 요소 다이어그램
소프트웨어 시스템 요소의 구조적 관계를 표시하며, 여러 구성 요소가 있는 복합 시스템 작업을 진행할 때 가장 많이 사용됩니다. 구성 요소는 인터페이스를 통해 통신합니다.합성 구조 다이어그램
합성 구조 다이어그램은 클래스의 내부 구조를 표시하는 데 사용됩니다.배치 다이어그램
시스템 하드웨어 및 소프트웨어를 설명합니다. 소프트웨어 솔루션이 고유 구 성을 사용하여 여러 머신에 배치될 때 유용합니다.객체 다이어그램
실제 세계 속 객체의 예시를 사용하여 오브젝트 간의 관계를 표시하고, 시간에 따라 시스템이 어떻게 표시되는지를 설명합니다. 데이터는 오브젝트 내에서 사용 가능하므로 오브젝트 간의 관계를 명확하게 하는 데 사용할 수 있습니다.- 패키지 다이어그램 패키지 간에 정의되는 두 가지 특수한 종속성 유형이 있습니다. 바로 패키지 가져오기 및 패키지 병합입니다. 패키지는 아키텍처를 표시하기 위해 다른 레벨의 시스템을 나타낼 수 있습니다. 패키지 종속성은 레벨 간의 통신 메커니즘을 나타내도록 표시될 수 있습니다.
동작 UML 다이어그램
활동 다이어그램
그래픽을 사용해 시스템에 있는 모든 파트 또는 구성 요소의 활동을 나타내는 비즈니스 또는 운영 워크플로입니다. 활동 다이어그램은 상태 머신 다이어그램의 대안으로 사용됩니다.통신 다이어그램
시퀀스 다이어그램과 유사하지만 객체 간에 전달되는 메시지에 초점을 둡니다. 시퀀스 다이어그램 및 다른 오브젝트를 사용하여 동일한 정보를 표시할 수 있습니다.- 상호작용 개요 다이어그램 일곱 가지 유형의 상호작용 다이어그램이 있으며, 상호작용 다이어그램은 작업이 수행되는 순서를 표시합니다.
시퀀스 다이어그램
객체가 상호작용하는 방식 및 수행 순서를 표시합니다. 해당 다이어그램은 특정 시나리오에 대한 상호작용을 나타냅니다.상태 다이어그램
활동 다이어그램과 유사하게 현재 상태에서 다양한 방식으로 행동하는 객체의 동작을 설명합니다.타이밍 다이어그램
시퀀스 다이어그램과 같이, 지정된 시간 동안 객체의 동작이 표시됩니다. 단일 객체가 있는 경우, 다이어그램이 단순해집니다. 둘 이상의 객체가 있는 경우, 특정 시간 동안 객체의 상호작용이 표시됩니다.사용 사례 다이어그램
기능의 연계 관계와 내부/외부 제어자(행위자)를 설명하기 위해 작성된 시스템의 특정 기능을 나타냅니다.
UML 다이어그램 생성 방법: 튜토리얼 및 예제
서로 다른 유형의 UML 다이어그램 생성 방법을 알아보기 위해, 구조적 및 행동적 다이어그램의 드로잉 과정에 대한 튜토리얼을 확인하세요. 하나를 볼 수도 있고, 전체를 볼 수도 있습니다.
구조적 다이어그램 튜토리얼 예시
클래스 다이어그램
클래스 다이어그램은 클래스, 속성, 운영 및 객체를 포함하여 시스템의 정적 구조를 나타냅니다. 클래스 다이어그램은 각각 구현 클래스 및 논리 클래스의 형태로 연산 데이터 또는 조직 데이터를 표시할 수 있습니다. 이 두 그룹 사이에는 겹치는 부분이 있을 수 있습니다.
- 클래스는 3개로 분할되는 직사각형 모양으로 표시됩니다. 맨 위 섹션에는 클래스 이름이 표시되고, 중간 섹션에는 클래스 속성이 포함되어 있습니다. 맨 아래 섹션에는 클래스 운영(메소드라고도 함)이 포함됩니다.
- 클래스 다이어그램에 클래스 도형을 추가하여 해당 객체 간의 관계를 모델링하세요. 하위 클래스를 추가해야 할 수도 있습니다.
- 선을 사용하여 클래스와 하위 클래스 간의 연계, 상속, 다중성 및 기타 관계를 표시하세요. 선호하는 표기법 스타일에 기반해 이러한 선의 표기법을 확인할 수 있습니다.
구성 요소 다이어그램
구성 요소 다이어그램은 구성 요소가 결합되어 더 큰 구성 요소 또는 소프트웨어 시스템을 형성하는 방법을 보여줍니다. 이 다이어그램은 시스템에 있는 각 구성 요소의 종속성을 모델링하기 위한 것입니다. 구성 요소는 스테레오타입 기능을 실행하는 데 필요한 요소입니다. 구성 요소 스테레오타입은 실행 파일, 문서, 데이터베이스 표, 파일 또는 라이브러리 파일로 구성될 수 있습니다.
- 직사각형 도형으로 구성 요소를 표시합니다. 옆에 두 개의 작은 직사각형이 있거나 해당 도형 아이콘이 있어야 합니다.
- 구성 요소 도형 사이에 선을 추가하여 연관 관계를 표시합니다.
배치 다이어그램
배치 다이어그램은 하드웨어 구성 요소의 실제 배치 및 구조를 모델링합니다. 배치 다이어그램은 시스템의 구성 요소가 서로 결합하여 작동하는 위치와 방법을 보여줍니다.
- 배치 다이어그램을 그릴 때는 구성 요소 다이어그램에 사용하는 것과 동일한 표기법을 사용하세요.
- 3D 큐브를 사용하여 노드(실제 머신 또는 가상 머신을 나타냄)를 모델링합니다.
- 시퀀스 다이어그램에 사용되는 동일한 스타일로 노드에 레이블을 지정하세요. 필요에 따라 다른 노드를 추가한 후 선으로 연결하세요.
행동 다이어그램 튜토리얼 예제
활동 다이어그램
활동 다이어그램은 비즈니스 워크플로와 같은 조직 프로세스와 함께 클래스 객체 간의 절차적 흐름을 표시합니다. 이 다이어그램은 특수 도형으로 작성된 후, 화살표로 연결됩니다. 활동 다이어그램의 표기법 집합은 상태 다이어그램의 표기법과 유사합니다.
- 단색 원을 사용해 활동 다이어그램 작성을 시작하세요.
- 모서리가 둥근 사각형으로 모델링된 첫 번째 활동에 원을 연결하세요.
- 이제 각 활동을 다른 활동과 선으로 연결해 전체 프로세스의 단계적 흐름을 보여주세요.
- 스윔레인을 사용하여 각 활동을 수행하는 객체를 나타낼 수도 있습니다.
사용 사례 다이어그램
사용 사례는 행위자(시스템 또는 외부 시스템과 상호작용하는 사용자)와 시스템 자체 사이의 상호작용을 정의하는 단계 목록입니다. 사용 사례 다이어그램은 사용 사례의 사양을 설명하고 시스템의 기능 단위를 모델링합니다. 이러한 다이어그램은 개발팀이 시스템의 요건을 이해하는 데 도움이 되며, 여기에는 사용자 상호작용의 역할과 다양한 사용 사례 간의 차이가 포함됩니다. 사용 사례 다이어그램은 시스템의 모든 사용 사례 또는 유사한 기능을 가진 한 그룹의 사용 사례만을 표시할 수 있습니다.
- 사용 사례 다이어그램을 시작하려면 드로잉 중앙에 타원형 도형을 추가하세요.
- 타원 내부에 사용 사례의 이름을 입력하세요.
- 다이어그램 주변에 막대 그림으로 표현한 행위자를 표시한 후, 선을 사용하여 행위자와 사용 사례 간의 관계를 모델링합니다.
시퀀스 다이어그램
시퀀스 다이어그램(이벤트 다이어그램 또는 이벤트 시나리오라고도 함)은 시퀀스에서 서로 다른 객체 사이의 호출 내용을 표시하여 프로세스가 서로 상호작용하는 방식을 설명합니다. 시퀀스 다이어그램에는 세로 및 가로, 두 개의 차원이 존재합니다. 세로 선은 메시 지 및 호출 순서를 시간 순서로 표시하며, 가로 요소는 메시지가 릴레이되는 객체 인스턴스를 표시합니다.
- 시퀀스 다이어그램을 작성하려면 클래스 인스턴스 이름 및 클래스 이름을 직사각형 상자에 입력하세요.
- 메시지의 발신자 및 수신자를 나타내도록 클래스 인스턴스 사이에 선을 그립니다.
- 동시 메시지는 삼각형 화살표 머리를 사용하고, 비동기 메시지는 부등호 모양으로 생긴 화살표 머리를 사용합니다. 응답 메시지는 점선으로 표시하세요.
Lucidchart를 사용하면 UML 다이어그램을 쉽게 그릴 수 있습니다.
이제 Lucidchart를 활용해 UML 다이어그래밍을 시작하세요. 간단하고 효율적이며 재미있기까지 하답니다.
쉬운 사용
물론 작업 분야의 베테랑이신 점 잘 알고 있습니다만, 그래도 작업을 수월하게 하는 데 도움이 되고자 했습니다. Lucidchart는 깔끔한 인터페이스를 자랑하는 스마트 드래그 앤 드롭 편집기를 제공합니다. 이를 통해 작업 시간을 절약하세요.방대한 도형 라이브러리
상태 다이어그램, 활동 다이어그램, 사용 사례 다이어그램 등을 드로잉하세요. 방대한 도형 및 연결자 라이브러리에는 필요한 모든 게 갖춰져 있습니다.완전 통합
Lucidchart는 Google Workspace과 완전히 통합됩니다. Lucidchart를 시작하면 Gmail, Google Drive와 함께 Google의 생산성 제품군에서 Lucid를 함께 이용할 수 있습니다. 또한 Google에서 사용하는 것과 동일한 로그인 정보를 사용할 수 있습니다.협업 활성화
UML 다이어그램을 동료, 고객 또는 상사와 쉽게 공유할 수 있습니다. 다이어그램을 웹페이지에 삽입하거나 PDF로 게시할 수 있으며, Lucidchart의 프레젠테이션 모드를 사용하면 작성한 작업물을 시각적으로 탁월하게 탈바꿈할 수도 있습니다.Visio 가져오기/내보내기
이미 완료한 작업을 저장할 수 있도록 Visio 파일을 가져오고 내보낼 수 있습니다. 모든 과정이 신속하고 매끄럽게 진행됩니다.