제품 더보기
블로그
가격 정보
고객 지원
무료 체험하기
이드로우마인드 이드로우맥스

클래스 다이어그램에 대해 알아보기

클래스 다이어그램에 대해 알아보기

본문을 통해 클래스 다이어그램에 대해 알아보세요. EdrawMax는 클래스 다이어그램 그리기에 특화되어 있습니다. 지금 바로 EdrawMax를 이용하여 클래스 다이어그램을 그려 보세요!

안녕하세요~! 오늘의 포스팅은 바로 “클래스 다이어그램”에 관한 것입니다. 클래스 다이어그램에서 이 생소한 “클래스”라는 게 무엇을 가리키는지, 클래스 다이어그램을 구성하는 요소들은 무엇이 있는지, 그리고 클래스 다이어그램을 생성하는 데 유용한 툴 5가지를 소개해보려고 합니다.

그럼 같이 알아보러 가볼까요?

이드로우맥스

올인원 다이어그램 소프트웨어
순서도, 평면도, 회로도 등 280가지 이상의 다이어그램 유형 지원
2만6천개 이상의 기호 리소스와 수 천개 무료 템플릿 지원
  • 강력한 호환성: Visio,MS office 등 파일 호환 가능
  • 다양한 운영체제: (윈도우,맥,리눅스,ios,android)

Part 1: 클래스 다이어그램이란?

“UML (Unified Modeling Language, 통합 모델링 언어)의 클래스 다이어그램은 다른 엔터티들(사람, 제품, 데이터)이 서로 어떻게 관계를 맺고 있는지를 표현한다. 즉, 시스템의 정적 구조라고 할 수 있다. 클래스 다이어그램은 주로 프로그래머들이 다루는 구현 클래스들을 보여주는데 쓰이는데, 구현 클래스 다이어그램은 논리적 클래스 다이어그램과 같은 클래스를 보여준다. “라고 네이버 지식백과에서는 이렇게 설명을 하고 있습니다.

“소프트웨어 공학에서 클래스 다이어그램(class diagram)은 통합 모델링 언어(UML)에서 시스템의 클래스, 클래스의 속성, 동작 방식, 객체 간 관계를 표시함으로써 시스템의 구조를 기술하는 정적 구조 다이어그램의 일종이다.” 또 다른 위키백과에서는 이렇게 명시되어 있네요.

업계에 종사하시는 분들은 아마 쉽게 이해하실 수 있을 거라 생각이 됩니다. 쉽게 클래스간 관계를 나타내기 위한 다이어그램이라고 이해하시면 될 것 같습니다.

그럼 예시 자료를 한 번 보도록 하겠습니다.

what-is-the-class-diagram1.png

그러면 계속 줄곧 등장하는 “클래스”, 대체 무슨 개념일가요? 클래스는 동일한 속성과 행위를 수행하는 객체들의 집합이자 객체를 생성하는 설계도라고 보시면 됩니다.

Part 2: 클래스 다이어그램을 구성하는 요소

1. Class(클래스)

첫번째는 다이어그램의 이름에서도 나타났듯이 클래스입니다.

what-is-the-class-diagram2.png

클래스는 보통 3개의 구획으로 나누어 클래스의 이름, 속성, 기능을 표기합니다. 이때 속성과 기능은 생략할 수도 있지만 이름은 필수로 명시해야 합니다.

2. Stereo Type (스테레오 타입)

두번째는 스테레오 타입입니다.

what-is-the-class-diagram3.png

스테레오 타입이란 기본 요소 외에 추가적인 확장 요소를 나타내는 것입니다. 보통은 길러 멧 사이에 적는 게 일반적이지만 기본 요소 외에 interface, utility 등을 표시하는 데에도 쓰입니다.

3. Abstract Class/Method (추상 클래스/메서드)

세번째는 추상 클래스입니다.

what-is-the-class-diagram4.png

추상 클래스란 1개 이상의 메서드가 구현체가 없고 명세만 존재하는 클래스를 일컫는 말입니다. 추상 클래스의 이름과 메서드는 italic 체나, {abstract} 프로퍼티를 사용하여 표기합니다.

4. 클래스 사이의 의존성 표기

또한 클래스 사이의 의존성을 표기해야 하는데요. 의존성에서도 몇 가지 종류가 있습니다.

1. 연관관계

what-is-the-class-diagram5.png

A에서 B로 영구적으로 갈 수 있는 경로를 뜻합니다.

2. 의존관계

what-is-the-class-diagram6.png

파라미터나 리턴 타입에 의존하는 타입이 나오는 경로입니다. 연관관계와 달리 일시적으로 관계를 맺고 헤어질 수 있습니다.

3. 상속

what-is-the-class-diagram7.png

B 클래스의 구현을 A클래스가 상속받는 경로입니다. B가 변경되면 A도 같이 변경됩니다.

4. 실체화 단계

what-is-the-class-diagram8.png

인터페이스를 구현하는 관계입니다.

의존성 표기할 때 주의점:

양방향 의존성 피하기

• 서로 의존성을 가지고 있는 클래스는 사실상 하나의 클래스나 다름없는데 찢어놓은 느낌입니다.

• 성능 이슈나 싱크를 맞추는 데 많은 버그가 발생하기에 더 많은 주의가 필요합니다.

다중성이 적은 방향을 선택하기

클래스가 다른 클래스를 여러 개 가지고 있는 것은 코드 관리를 힘들게 할 수 있습니다.

what-is-the-class-diagram9.png

클래스 간 관계를 표시할 때 사용하는 표기 방법도 화살표마다 다르기 때문에 숙지하는 게 좋을 것 같습니다.

Part 3: 클래스 다이어그램 작성 툴 TOP5

추천 1. Lucidchart

what-is-the-class-diagram12.png

Lucidchart는 사용자가 UML 다이어그램, 클래스 다이어그램 등을 포함한 광범위한 다이어그램을 생성하고 편집할 수 있는 웹 기반 다이어그램 작성 및 시각적 협업 소f="https://app.ad" rel="nofollow-64 my-md-64">

다앜 -3" st-최래 5명은 주$149.90

클래스가 다른 클래스를 여러 하는 게반 다익니다.<들게 할 auto;" width="679" height="471">

클래스좀숙지확성 피털반스 니다.스

Part 1: 클래스 3"btn btn-sec21성 툴 TOP5

>

클래스가 다른 클래스를 여러 .pn, 객계 용애집케읅 및ize-m그agres/보엓게 할 수 TEMPLATEram9픈 auto식, 객계m12.margin-left: auto업 할 수 T객ꁬe-cl 관계 visioize-m rel등 및로 읽니똬b-3 bg-gray" relss-dift: aut뛰나n-right: auto;" width="679" height="471">

클래스 EMPLAT9픈 auto식, 객계그램.com/kr//articla>

ata-s anlign-middle m징하는 “ 를 la>
at고 도wha의가gram곧 적 div clis-tcheck data-iata-s 게 e-cll등 “-dif>스<.<"47화es202 rder/div> g-so: 클래스 g-3 font-size-medium 5. Miroyle="bor width="679" heigher-left: 4px solid #00cc99;">

Part 로 프로그30을 생성9작성 툴 TOP5

>

클래스가 는 데 많은 버그가 발생 핗 더 많

선: $8/월 할 수 T래 : $16/월 할 ng>

클래스가 다른 클래스를 여러2어 그램을 생섏wha텍

때 주의점: < usti/a> top: 50%; uper-gray {color: #A1A1x .d2ps:/

so: .im를 맞r/images/arom/1fnd-iostibtn-sew3. Canva> 다.

무룚y/header-float.html"-->