Programming

클래스 다이어그램이란?

송코딩 songcoding 2023. 7. 8. 09:34

안녕하세요, 

송아지할때 송아 김송아입니다.

 

 

하나의 서비스를 개발(development)하기 위한 단계 중 여러분들이 가장 중요하다고 생각하는 단계는 무엇인가요?

물론 모든 단계가 중요하지만..😇

 

저는 특히 설계가 중요하다고 생각하는 사람들 중 1명입니다.

제가 좋아하는 문장 중에 이런 말이 있어요!

'설계 없는 구현은 없다'

 

 

그래서 오늘은 자바(Java) 설계에서 빼놓을 수 없는 클래스 다이어그램에 대해 간단히 얘기를 나눠보고자 합니다.

 

(근데..클래스 다이어그램을 얘기 하려면 UML 부터 얘기해야해요.. 소곤소곤)

 

 


 

1. UML 이란?

Unified Modeling Language 는 말 그대로 통합 모델링 언어를 뜻하는 용어입니다.

모델링 즉, 진짜 상품을 만들기 전 모델을 찍어본다고 표현을 하잖아요? 그런 모델을 만드는 데 사용하는 통합 언어라는 뜻이죠!


UML은 1990년대에 OMG(Oh My God..? OTL...? 말고 Object Management Group)에서 표준으로 채택되었다고 합니다.

'소프트웨어에서의 모델은 구현 단계에 들어가기 전에 미리 틀을 그려보는 것'이라고 생각하시면 됩니다.

그럼 나중에 진짜 서비스가 만들어 졌을 때 일어날 각 기능들에 대한 의존도와 연관관계를 먼저 눈으로 확인할 수 있다는 장점이 있겠죠?

 

그럼 UML을 이용해서.. 모델링을 어떻게 하는거냐구요~?

 


정물화를 그릴 때 미리 중요한 부분에 대한 윤곽만 스케치 해보잖아요?

그것처럼 UML 역시 그냥 종이랑 펜을 가지고.. 음.. 이거 나중에 만들면 어떤 기능이 생기지? 이 기능들이 서로 어떤 역할을 해주지? 하고
적어보고 화살표 그어보고 하시면 됩니다.

 

이렇게만 말씀드리면 너~무 모호하니까😉

UML로 설계하는 방법(무려 다 합치면 14개나 됨..) 중 정말 유용한 한가지를 알려드릴게요.

 

@14가지 UML 활용 설계 방법

 

 

바로 ✨클래스 다이어그램✨입니다.

 


 

2. 클래스 다이어그램 (Class Diagram)

 

클래스 다이어그램은 클래스 내부의 내용 뿐 아니라 클래스 사이의 관계를 표현할 수 있는 다이어그램이라 시스템의 내/외부를 한눈에 확인할 수 있는 *다이어그램 입니다.

💡 다이어그램이란?
정보를 묘사 또는 상징화 하여 2차원 기하학 도형 모델로 시각화하는 기술입니다.
때로는 3차원으로 시각화되기도 하며, 그래프 용어와 혼용하기도 합니다.

 

그래서 클래스 다이어그램을 잘 그리면, 어떤 클래스가 다른 어떤 클래스와 일하게 될지 미리 확인 할 수 있어요!

하나의 클래스가 너~무 힘들어보이면 역할을 좀 분산해줄 수도 있겠죠?

 

 

예시는.. 구글에 [클래스 다이어그램 예시] 이렇게 검색해봐주세요ㅋㅋㅋㅋㅋㅋㅋㅋ

진짜 멋진 클래스 다이어그램이 참 많은데~~ 설명할 길이 없네😇

 

우리 프로젝트 같이 하면서, 천천히 하나씩 여러분들이 직접 그려보고 멋지게 완성해가시죠~!👏🏻👏🏻👏🏻

 

@'클래스 다이어그램 예시' 구글링 결과

 

 

클래스 다이어그램을 그리려면, 가장 먼저 해주셔야 하는 것이 바로 하나의 클래스부터 Element화 하는 것입니다.

쉽게 말해서, 하나의 클래스만 일단 단독으로 그려보는 거에요!

 

바로 이렇게 말이죠!

오른쪽 같은 클래스를 구현하고 싶다면, 미리 왼쪽 그림(클래스 다이어그램 요소)과 같이 그려보는 것 ! 

@넥스트리 갓소프트 홈페이지 참조

 

여기까지 클래스 다이어그램에 대한 정의와 그 첫 단계에 대해 간단하게 알아봤습니다.

 

여기까지 오셨다면, 지금 당장 종이와 펜을 꺼내서 내가 여태 만들어본 클래스 중 하나를 켜시고

직접 클래스 다이어그램 요소(Element)를 그려보시는 거 어떨까요?

오늘은 일단 요소만 그려보시고, 우리 다음엔 클래스들의 연관관계에 대해 알아보시죠.

 

차근차근 완성해나가요 우리!!! 알겠죠~?ㅎㅎ

 

 

자, 요소를 그려보셨다면 이제 그 요소들 간의 관계만 정의해주면 끝입니다!

 

클래스 다이어그램은 클래스 요소 분 아니라 클래스 간의 관계를 한눈에 파악하여 그들의 관계를 파악하기 위해 사용합니다. 
관계를 나타내는 표기법은 크게 다음과 같이 6가지로 나뉩니다.

 

💡참고해서 보세요

✔️ 화살표
- 없으면 : 양방향 관계
- 있으면 : 단방향 관계로, 화살표를 주는 쪽이 받는 쪽을 이용합니다. 즉, 받는 쪽은 크게 노상관..

✔️ 다이아몬드 : 마름모가 있는 쪽이 전체를 뜻합니다.

 

 

사실 이 모든 관계를 자주 사용하는 것은 아닙니다.

무엇을 많이 사용하는지.. 여러분들이 직접 고민해보실까요?

 

 

 

그럼 여러분, 주말에도 공부하는 모습 멋져..✨

해피 주말 되세요😊

 

감사합니다.

김송아 드림

 

 

 

 

💚 본 글은 [언그래머] 베이스캠프 1기 캠퍼분들과 함께 공부하기 위해 작성된 글입니다.

Reference. 넥스트리 소프트, Java 객체지향 디자인 패턴 by 한빛 미디어

 

👆🏻클릭이 될까?