UML 클래스 다이어그램 튜토리얼

UML 다이어그램을 사용하는 이유는 무엇인가요?

사용 사례 다이어그램은 저에게 새롭기 때문에 더 배우고 싶어요.

Lucidchart에서 직접 사용 사례 다이어그램을 만들고 싶어요.

Lucidchart 템플릿으로 사용 사례 다이어그램을 만들고 싶어요.


시스템의 클래스, 속성, 운영 및 개체 간 관계를 모델링하여 시스템의 구조를 명확하게 매핑하는 클래스 다이어그램은 UML에서 가장 유용한 다이어그램 유형 중 하나입니다. Lucidchart의 UML 다이어그래밍 소프트웨어를 사용하면 언뜻 복잡해보이는 이 다이어그램을 손쉽게 만들 수 있습니다. 이 가이드에서는 클래스 다이어그램을 이해하고, 계획하고 직접 만드는 방법을 알아봅니다.

4 분 읽기

직접 UML 다이어그램을 만들고 싶으신가요? Lucidchart를 사용해보세요. 빠르고 사용이 간편하며 무료로 제공됩니다.

UML 다이어그램 만들기

UML의 클래스 다이어그램이란 무엇인가요?

통합 모델링 언어(UML)는 시스템 모델링에 여러모로 도움이 됩니다. UML에서 자주 사용되는 다이어그램은 클래스 다이어그램입니다. 클래스 다이어그램은 소프트웨어 엔지니어들이 소프트웨어 아키텍처를 문서화할 때 자주 사용합니다. 이 다이어그램은 구조 다이어그램의 일종으로, 모델링하는 시스템에 포함되어야 하는 사항을 설명합니다. Lucidchart의 UML 소프트웨어는 UML이나 클래스 다이어그램에 대한 숙련도와 관계없이 쉽고 간단하게 사용할 수 있도록 고안되었습니다.

UML은 개체 지향 프로그래밍 방식을 설명하기 위한 표준화된 모델로서 설정되었습니다. 클래스는 개체의 기반인 만큼, 클래스 다이어그램은 UML의 기반이기도 합니다. 클래스 다이어그램의 여러 구성 요소는 실제로 프로그래밍되는 클래스, 기본 개체 또는 클래스와 개체 간 상호작용을 나타낼 수 있습니다. 

클래스 도형은 행이 3개 있는 직사각형으로 구성됩니다. 맨 위 행에는 클래스 이름이, 중간 행에는 클래스 속성이, 그리고 맨 아래의 섹션에는 클래스가 사용하는 메서드나 운영이 명시되어 있습니다. 클래스와 하위 클래스는 하나의 그룹으로 묶여 각 개체의 정적 관계를 나타냅니다.

Lucidchart의 UML 도형 라이브러리에서는 Lucidchart의 UML 다이어그램 도구를 사용하여 거의 모든 맞춤 클래스 다이어그램을 만들 수 있습니다.

UML 도형 라이브러리

클래스 다이어그램의 이점

클래스 다이어그램은 조직에 다양한 이점을 선사합니다. UML 클래스 다이어그램으로 다음을 수행할 수 있습니다.

  • 복잡도와 관계없이 정보시스템을 위한 데이터 모델을 나타낼 수 있습니다.
  • 애플리케이션 도면의 전반적인 개요를 보다 면밀하게 파악할 수 있습니다.
  • 시스템의 구체적인 요구 사항을 시각적으로 나타내고, 이러한 정보를 비즈니스 전체에 알릴 수 있습니다.
  • 프로그래밍하여 설명된 구조에 구현해야 하는 노드를 강조하여 보여주는 상세 차트를 만들 수 있습니다.
  • 구현과 관계없이 시스템에서 사용된 유형을 설명하고, 향후 이러한 설명을 시스템 구성 요소에 전달할 수 있습니다.

직접 UML 다이어그램을 만들고 싶으신가요? Lucidchart를 사용해보세요. 빠르고 사용이 간편하며 무료로 제공됩니다.

UML 다이어그램 만들기

클래스 다이어그램의 기본 구성 요소

표준적인 클래스 다이어그램은 다음의 3개 섹션으로 구성됩니다.

  • 맨 위 섹션: 

    클래스의 이름을 나타냅니다. 이 섹션은 식별자를 다루든 개체를 다루든 항상 필수 항목입니다.
  • 중간 섹션:

    클래스 속성을 나타냅니다. 이 섹션을 사용하여 클래스의 특성을 설명할 수 있습니다. 클래스의 특정 인스턴스를 설명할 때에만 필수입니다.
  • 맨 아래 섹션:

    클래스 운영(메서드)을 나타냅니다. 목록 형식으로 표시되며, 각 운영마다 1줄이 할애됩니다. 운영은 클래스가 데이터와 어떻게 상호작용하는지 설명합니다.

멤버 액세스 수식어

모든 클래스는 액세스 수식어에 따라 액세스 수준이 각기 다릅니다(가시성). 다음은 각각의 액세스 수준과 이에 상응하는 기호입니다.

  • 공개(+)
  • 비공개(-)
  • 보호됨(#)
  • 패키지(~)
  • 파생됨(/)
  • 정적(밑줄)

멤버 범위

멤버의 범위는 분류자와 인스턴스의 두 가지로 구분됩니다.

분류자는 정적 멤버이며, 인스턴스는 클래스의 특정 인스턴스입니다. 기본 OO 이론을 안다면 아마 이 내용이 새롭지는 않을 것입니다.

추가적인 클래스 다이어그램 구성 요소

컨텍스트에 따라 클래스 다이어그램의 클래스가 기본 개체, 애플리케이션의 상호작용 또는 프로그래밍할 클래스를 나타낼 수 있습니다. "UML의 클래스 다이어그램이란 무엇인가?"라는 질문에 대답하려면 먼저 기본 구성을 이해해야 합니다.

  • 클래스: 개체를 만들고 시스템에 동작을 구현하기 위한 템플릿. UML에서 클래스는 공통의 구조와 동작을 공유하는 하나 또는 여러 개의 개체를 나타냅니다. 이러한 개체는 클래스 이름, 클래스 속성과 운영이 명시된 행을 포함하는 직사각형으로 표현됩니다. 클래스 다이어그램에 클래스를 그려넣을 때는 맨 위 행만 채우면 되며, 나머지 행은 선택 사항이므로 더 자세한 정보를 제공하고 싶은 경우 입력하면 됩니다.

    • 이름: 클래스 도형의 첫 행입니다.

    • 속성: 클래스 도형의 두 번째 행입니다. 클래스의 각 속성은 별도의 줄에 표시됩니다.

    • 메서드: 클래스 도형의 세 번째 행입니다. 운영이라고도 하는 메서드는 목록 형태로 표시되며, 각 운영은 별도의 줄에 나타나 있습니다.

  • 신호: 활성 개체 간 일방향의 비동기식 커뮤니케이션을 나타내는 기호입니다.

  • 데이터 유형: 데이터 값을 정의하는 분류자입니다. 데이터 유형은 원시 유형과 열거 모두를 모델링할 수 있습니다.

  • 패키지: 관련된 분류자를 다이어그램에 정리하도록 고안된 도형입니다. 패키지는 꼬리표가 달린 큰 직사각형 도형으로 표시됩니다.

  • 인터페이스: 운영 서명 및/또는 서로 결합되는 여러 동작을 정의하는 속성 정의의 모음입니다. 인터페이스는 클래스와 비슷하지만, 클래스는 자체 유형의 인스턴스를 포함할 수 있는 반면 인터페이스는 구현을 위해 최소 하나의 클래스가 있어야 한다는 점에서 다릅니다.

  • 열거: 사용자가 정의한 데이터 유형을 나타낸 것입니다. 열거는 열거의 값을 나타내는 식별자 그룹을 포함합니다.

  • 개체: 하나 또는 여러 클래스의 인스턴스입니다. 클래스 다이어그램에 개체를 추가하여 구체적 또는 원형적 인스턴스를 나타낼 수 있습니다.

  • 아티팩트: 문서, 데이터베이스, 실행 가능한 파일, 소프트웨어 구성 요소 등 소프트웨어 시스템의 구체적인 엔티티를 나타내는 모델 요소입니다.

상호작용

'상호작용'이라는 용어는 클래스 및 개체 다이어그램에 존재할 수 있는 여러 관계와 링크를 의미합니다. 일반적인 상호작용의 예는 다음과 같습니다.

  • 상속: 부모 클래스나 최상위 클래스의 기능을 이어받은 자식 클래스 또는 하위 클래스의 프로세스로, 일반화라고도 합니다. 상속은 끝에 최상위 클래스 쪽을 향하는 닫힌 화살촉이 달린, 연결된 직선 기호로 표시됩니다.

상속 클래스 다이어그램 상호작용

이 예시에서는 개체 'Car'가 상위 클래스('Vehicle')의 모든 속성 (속도, 탑승객 수, 연료)과 메서드(go(), stop(), changeDirection())뿐 아니라 자체 클래스의 특정 속성(모델 유형, 문 개수, 차량 제조사)과 메서드(Radio(), windshieldWiper(), ac/heat())까지 상속합니다. 클래스 다이어그램에서 상속은 끝에 속이 빈 닫힌 화살표가 달린 실선으로 표시됩니다.

  • 양방향 연결: 두 클래스 사이의 기본 관계입니다. 두 클래스 모두 서로와, 서로 간의 관계를 인지하고 있습니다. 이 연결은 두 클래스를 잇는 직선으로 표시됩니다.

양방향 클래스 다이어그램 연결

위 예에서는 Car 클래스와 RoadTrip 클래스가 상호 연관되어 있습니다. 선의 한쪽 끝에서는 Car가 'assignedCar'와 다수값 0..1로 연결되므로, RoadTrip 인스턴스가 존재하는 경우 Car와 연결된 인스턴스가 1개만 있거나 Car가 연결되지 않게 됩니다. 이 경우, RoadTrip이 여러 개의 Cars 인스턴스를 가질 수 있다는 사실을 보여주기 위해 다수값이 0..*인 별도의 Caravan 클래스가 필요합니다. Car 인스턴스 1개는 여러 개의 'getRoadTrip' 연결을 가질 수 있으므로(즉, 차 1대가 여러 번 로드 트립을 떠날 수 있으므로) 다수값은 0..*으로 설정됩니다.

  • 일방향 연결: 두 클래스 사이의 관계로, 양방향 연결보다는 조금 드문 편입니다. 일방향 연결에서는 한 클래스만이 다른 클래스를 인지하고 상호작용합니다. 일방향 연결은 상대 클래스를 인지하는 클래스 쪽에서 인지 대상 클래스 쪽으로 향하는 열린 화살표 머리가 달린 연결 직선으로 모델링됩니다.

일방향 클래스 다이어그램 연결

예를 들어, 운전자는 애리조나 주를 여행하는 로드 트립에서 속도 감시 카메라가 차량의 주행 속도를 기록하는 속도 위반 단속 지역을 지나지만 속도 위반 딱지를 받을 때까지 이 사실을 알지 못할 수 있습니다. 이미지에는 표시되지 않았지만, 이 경우 다수값은 속도 감시 카메라를 지나치는 횟수에 따라 0..*으로 설정됩니다.

클래스 다이어그램 예

간편하게 클래스 다이어그램을 만들어 프로세스 흐름을 나타낼 수 있습니다. UML에서 직접 클래스 다이어그램을 만들 때 아래의 두 예를 고려하세요.

호텔 관리 시스템용 클래스 다이어그램

클래스 다이어그램은 투숙객 정보, 직원의 업무, 객실 점유율 등 호텔 관리 시스템의 각 개체 사이의 관계를 나타낼 수 있습니다. 아래의 예에서 호텔 관리 시스템의 유용한 개요를 확인할 수 있습니다. 아래의 템플릿을 클릭하여 클래스 다이어그램을 시작해보세요.

호텔 관리용 클래스 다이어그램 템플릿이 템플릿을 사용하려면 여기를 클릭하세요

ATM 시스템용 클래스 다이어그램

ATM은 놀라울 정도로 단순합니다. 고객은 단 몇 개의 버튼만 누르면 현금을 인출할 수 있습니다. 하지만 안전하고 효과적인 ATM은 사기를 방지하고 은행 이용 고객에게 가치를 제공하기 위해 여러 단계의 보안을 거쳐야 합니다. 알아보기 쉬운 다음의 다이어그램은 ATM 시스템의 사람이 개입하는 부분과 사람이 개입하지 않는 부분을 나타냅니다. 각 클래스에는 제목이 있으며, 클래스의 속성은 그 아래에 나열되어 있습니다. 문서를 열고 무료 Lucidchart 계정에 가입하면 이 차트를 편집하고 저장하고 공유할 수 있습니다.

atm 시스템용 클래스 다이어그램 템플릿

이 템플릿을 사용하려면 여기를 클릭하세요

클래스 다이어그램을 만드는 방법

Lucidchart에서는 놀랍도록 간편하게 처음부터 클래스 다이어그램을 만들 수 있습니다. 다음 단계를 따르기만 하면 됩니다.

  1. 빈 문서를 열거나 템플릿으로 시작합니다.

  2. UML 도형 라이브러리를 사용 설정합니다. Lucidchart 편집기 왼쪽에 있는 '도형'을 클릭합니다. 도형 라이브러리 관리자로 이동한 후 'UML'을 선택하고 '저장'을 클릭합니다.

  3. 방금 추가한 라이브러리에서 원하는 도형을 선택하고 도구 모음에서 캔버스로 끌어옵니다.

  4. 도형 사이에 선을 그리고 텍스트를 추가하여 프로세스 흐름을 모델링합니다.

UML에서 클래스 다이어그램을 그리는 방법에 관한 이 가이드에서 더 많은 인사이트를 알아보세요. Lucidchart에서는 간편하게 요소의 크기를 조절하고 스타일을 적용할 수 있습니다. 맞춤 솔루션을 위해 SVG 도형과 Visio 파일을 가져올 수도 있습니다. UML에 대해 자세히 알아보려면 Lucidchart의 튜토리얼 'UML이란?'을 참조하세요.


추가 리소스

클래스 다이어그램은 UML에서 가장 자주 사용되는 다이어그램 유형 중 하나입니다. Lucidchart에서는 간편하게 클래스 다이어그램을 이해하고 만들 수 있습니다. Lucidchart의 템플릿을 열어 기존의 클래스 다이어그램을 가져온 다음 Lucidchart에서 계속 작업하거나, 처음부터 클래스 다이어그램을 만들 수 있습니다. Lucidchart에는 클래스 다이어그램을 시작하는 데 필요한 모든 기능과 도구가 있습니다.

직접 UML 다이어그램을 만들고 싶으신가요? Lucidchart를 사용해보세요. 빠르고 사용이 간편하며 무료로 제공됩니다.

시작하기

  • 가격
  • 개인
  • 엔터프라이즈
  • 영업팀에 문의하기
개인정보 보호정책법률적인쿠키 개인정보 보호 선택쿠키 정책
  • linkedin
  • twitter
  • instagram
  • facebook
  • youtube
  • glassdoor
  • tiktok

© 2024 Lucid Software Inc.