JustDoEat
UML 다이어그램이란 무엇인지 알아보자 본문
UML다이어그램이란
소프트웨어 시스템의 설계와 모델링을 위해 사용하는 방법이자, 도구이다.
크게 두 가지로 나누어 구분할 수 있고 각각 여러 개의 다이어그램들을 포함하고 있다.
1. 구조다이어 그램
-> 요소들 간의 정적인 관계를 이해하는데 도움, 시스템 요소들이 어떻게 연결되어있는지.
2. 행위다이어 그램
-> 동적인 관계를 이해하는데 도움, 객체들이 시간의 흐름에 따라 메시지를 주고받는 행위 등.
구조다이어그램
구조다이어그램은 "클래스다이어그램, 객체다이어그램, 컴포넌트다이어그램, 배치다이어그램, 패키지다이어그램"으로 다시 나누어진다.
클래스 다이어그램
이름 그대로 클래스와 클래스 간의 관계를 나타내는 다이어그램이다.
스프링을 예시로 들자면 컨트롤러 클래스와 서비스 클래스의 관계를 표시하는 것처럼 클래스 간의 관계를 다이어그램으로 표시하는 행위이다.
출처:https://seulhee030.tistory.com/56
작성규칙
1. 다이어그램 상단에는 클래스명을 작성한다.
2. 클래스의 속성(변수, 자료형 등등) 은 그림상 두 번째 블록, 메서드는 맨 아래 블록에 적어준다
3. 각 클래스 간의 관계는 화살표로 표기를 하고, 실선은 일반적인 연관관계, 점선은 의존관계를 나타낸다.
4. 인터페이스도 마찬가지로 클래스와 유사하게 표현한다, 위 그램에서 Car가 인터페이스가 되겠다.
객체다이어그램
객체다이어그램은 객체 간의 관계를 시각적으로 나타내주는데, 클래스다이어그램에서 작성한 클래스들의 객체가 어떻게 상호작용하는지 나타내주는 다이어그램이다.
클래스다이어그램으로 충분한 표현이 가능하고, 부수적인 이해를 돕기 위해 사용하는 게 객체다이어그램이다.
출처: https://www.ibm.com/docs/ko/rsas/7.5.0?topic=classifiers-object-diagrams
컴포넌트다이어그램
컴포넌트들이 어떤 식으로 조립되고 실행이 되는지 시각적으로 보여준다.
대표적으로 React가 컴포넌트 기반 아키텍처를 사용하는데, 필자의 예시를 돕기 위해 리엑트 컴포넌트로 컴포넌트다이어그램을 이해하였다.
출처: https://blog.coderifleman.com/2023/02/27/hands_on_react_making_it_cohesive/
배치다이어그램
위에서 소프트웨어, 추상적인 다이어그램이었다면. 배치다이어그램은 시스템의 물리적인 배치와 구성요소 간의 관계를 시각화해 주는 다이어그램이라고 할 수 있다.
예를 들자면 웹서버로는 NGINX를 사용하고 애플리케이션 서버로는 TomCat, DB로는 MySQL을 사용한다고 했을 때 그들 간의 관계를 자세하게 표현해 주는 다이어그램이라고 보면 되겠다.
출처: https://ocwokocw.tistory.com/24
이건 프로젝트를 했을 때 작성한 시스템 아키텍처인데 크게 크게 보면 유사한 거 같아서 가지고 와보았다.
패키지다이어그램
시스템 구조의 모듈화랑 패키지구조를 시각화하기 위한 다이어그램이다, 내가 생각하는 자바의 패키지의 패키지가 맞다.
https://ocwokocw.tistory.com/22
이분의 블로그를 참고하여 공부를 하였는데, 설명을 너무 잘해주셨다.
유스케이스다이어그램
간단히 설명하자면 사용자 간의 상호작용을 시각적으로 나타내는 다이어그램이다.
유스케이스: 시스템이 제공하는 특정기술이나 서비스를 나타냄
+ "사용자=엑터"라고 한다.
시퀀스다이어그램
객체지향시스템에서 시간의 순서에 따라 객체들의 상호작용을 시각화하여 표현하는 방식이다.
출처: https://www.edrawsoft.com/kr/diagram-tutorial/what-is-the-sequence-diagram.html
엑터: 행위의 주체자
객체: 시스템 내의 객체를 나타냄, 객체의 수직방향의 선으로 나타냄
메시지: 객체들 간의 주고받는 데이터를 나타냄, 즉 객체 간의 상호작용을 나타낸다고 볼 수 있음. 메서드 호출 등이 메시지의 예시임.
생명선: 시간의 흐름을 나타내는 선, 객체의 생명주기를 보여줌.
활성: 객체가 메시지를 처리하는 동안의 상태를 시각적으로 보여줌.
커뮤니케이션다이어그램
클래스-객체 다이어그램 간의 관계처럼, 시퀀스-커뮤니케이션 다이어그램도 관계가 있다.
시퀀스다이어그램과 유사하지만 차이점은, 조금 더 명확하게 나타내주는데 명확하다의 기준은
1. 시퀀스다이어그램에서는 수직방향으로 시간의 흐름에 따라 표현을 했다면, 커뮤니케이션은 번호까지 붙여서 표현을 한다.
2. 시퀀스다이어그램에는 없는 "링크"라는 개념이 추가가 된다.
엑터(Actor): 외부요소로 행위의 주체이자, 외부 시스템 혹은 사람을 의미함.
객체(Object): 시스템 내부에서 메시지를 주고받는 주체.
링크: 각 객체들의 관계를 나타냄.
메시지: 객체들 간 주고받는 데이터, 메서드 호출을 의미라고, 시퀀스와 다르게 번호를 붙여 표기함.
출처: https://boardmix.com/kr/skills/communication-diagram/
활동다이어그램
비즈니스 프로세스나 시스템의 흐름을 모델링하고 분석하는 데 사용된다.
타이밍다이어그램
시스템의 시간적 동작을 시각적으로 표현하는 도구입니다. 주로 디지털 시스템이나 신호 처리 시스템에서 사용되며, 시간 축을 기반으로 한 신호들의 변화를 보여줍니다.
https://brunch.co.kr/@lkj28/120
'Study > 정보처리기사' 카테고리의 다른 글
메세지 지향 미들웨어란?(Celery, RabbitMQ 간단한 사용경험 기록) (0) | 2024.06.19 |
---|