본문 바로가기
👨‍💻 프로그래밍/Java, Kotlin, Spring

자바 20 - UML 다이어그램

by 개발자 진개미 2021. 5. 10.
반응형

영화를 만드는 사람은 대본을 바탕으로 영화를 만든다. 영화 대본에는 대사뿐만 아니라, 표정 연기나 조명 등 영화를 만들 때 필요한 연출 등을 담고 있다. UML 다이어그램은 프로그래머의 대본이라고 할 수 있다. UML 다이어그램, 그중에서도 클래스 다이어그램(Class Diagram)은, 클래스에 있는 변수와 매소드의 성질과 어떤 데이터를 받는지 등을 나타내 준다.

 


UML 다이어그램이란?

UML 다이어그램(Unified Modeling Language)은, 모델링을 하기 위한 언어체계이다. 그중에서도 자주 씌는 클래스 다이어그램은 클래스를 나타내 주는 모형이다. 객체지향 프로그래밍에서 프로그램은 클래스들의 상호작용으로 나타낼 수 있기 때문에 클래스 다이어그램은 프로그램의 핵심을 담고 있다고 해도 과언이 아니다. 아래는 실제로 자바에서 있는 클래스의 예시이다.

 

 

일단, 가장 위에 클래스의 이름을 쓴다. 여기서는 java.util.Date라는 이름의 클래스 다이어그램을 작성했다. 가장 앞에 있는 +는 이 매소드들이 public이라는 의미이다. 매소드가 private일 경우에는 -를 써야한다. 매소드가 데이터를 받을 경우, 그 데이터 타입을 위와 같이 나타내 줘야 하고, 데이터를 리턴할 경우에도 : 뒤에 나타내 줘야 한다.

 

보통 프로그래머에게 프로그램의 작성을 알려줄 때에는 클래스 다이어그램와 함께 각 매소드의 역할과 기능을 설명해준다.


클래스 다이어그램 작성과 실제 구현

그렇다면 간단한 예시로 Circle 클래스의 클래스 다이어그램을 작성해보고, 일부를 구현해 보자. 우선, Circle 클래스에 어떤 변수가 있을지 생각해보자. 가장 기본적으로는 반지름이 있고, 또 몇 개의 Circle 오브젝트를 만들었는지 저장해 놓으면 좋을 거 같다. 이를 나타내면 아래와 같다.

 

 

보통 변수들은 매소드가 사용하고, 직접 접근할 일이 없기 때문에(그리고 쉽게 바꿔도 안 되기 때문에) private로 설정한다. 또, 변수들의 이름과, 변수의 데이터 타입을 명시했다.

 

다음으로는 어떤 매소드가 필요할지 생각해 보아야 한다. 우선, 생성자 매소드 2개가 필요하다. 그 외에도, 반지름이 얼마인지 알려주고, 반지름을 바꾸는 매소드도 필요하다. 굳이 변수를 private로 만들고 이를 접근할 매소드를 만드는 이유는 변수에 대한 접근과 설정을 원하는대로 제어하기 위해서이다. 클래스를 사용하는 프로그래머가 변수를 바꾸지 않길 원하면 바꿀 수 있는 매소드를 주지 않으면 되고, 접근조차 원치 않으면 접근하는 매소드를 안 주면 되기 때문에 간편하다. 그 외에도 Circle 클래스에 유용한 넓이를 알려주는 매소드도 있으면 좋을 거 같다. 이를 나타내면 아래와 같다.

 

 

이런 식으로 프로그램의 작성을 시작하기 전에 클래스 다이어그램을 쓰면 좋다.


 

 

반응형

댓글