NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

개발자들의 의사소통을 위한 언어, UML 알아보기

UML은 개발자와 개발 프로젝트를 위한 시각적 도구입니다. 마치 우리가 조별과제를 하면서 서로 소통에 문제가 생기거나, 잘못된 결과를 만들기도 하듯이 개발자들이 함께 모여 작업을 할 때는 여러 가지 문제가 생깁니다. 내가  생각하는 것과 남이 생각하는 것, 그 두 가지가 일치하지 않기 때문이죠. 이런 문제를 해결하기 위해 나온 것이 바로 UML(Unified Modeling Language)입니다.

UML이란 개발 프로젝트를 위한 설계도라고 생각하면 됩니다. Unified Modeling Language(통합 모델링 언어)라는 거창한 이름을 갖고 있지만, 실제로 알고 보면 아주 단순합니다. UML은 서비스에 들어가는 정보와 복잡한 구조들을 단순하게 보여줄 때 주로 사용됩니다.

 

실제로 UML은 크게 구조를 다루는 타입과 특성을 다루는 타입, 두 가지로 나뉩니다. 하지만 이 글에서는 가장 자주 사용되는 세 가지를 집중적으로 다루도록 하겠습니다. 

 

실무에서 자주 사용되는 UML은 크게 세 가지 타입이 있습니다.

 

  1. 유즈 케이스 UML (Use case UML)
  2. 클래스 UML (Class UML)
  3. 시퀀스 UML (Sequence UML)

 

 

실제 시나리오를 보여주는 유즈 케이스 UML

유즈 케이스 UML은 우리가 가장 손쉽게 이해할 수 있는 케이스입니다. 현실의 사용자가 누구와 어떤 행동을 하는지, 그 과정에서 누가, 어떤 결과를 가져오는지, 사람, 역할을 중심으로 전체 서비스를 보여줍니다. 위의 UML은 레스토랑의 사례를 나타낸 것입니다.

 

  • 고객: 음식을 주문하고, 음식을 먹은 후, 계산을 함
  • 웨이터: 고객의 음식 주문을 돕고, 요리사에게서 요리를 전달함
  • 요리사: 요리 주문이 들어오면 요리를 만듦
  • 계산원: 고객이 식사를 마치면 계산을 도움

 

유즈 케이스 UML은 서비스의 큰 틀을 이해할 때 도움이 됩니다. 그러나 각각의 행동이나 과정에서 어떤 정보가 오고 가는지, 그 정보가 어떤 것인지는 자세히 알 수 없습니다.

 

 

정보들의 관계를 보여주는 클래스 UML

클래스 UML은 서비스의 중요 정보들을 박스로 연결해 보여줍니다. 그리고 이 박스들이 무엇을 중심으로 묶여 있는지, 각각의 박스 안에 중요한 정보는 무엇을 담고 있는지를 보여주죠. 위의 UML은 온라인 쇼핑몰의 클래스 UML입니다. 

 

  • 웹을 통해 접속한 사람 (Web user: ID / 암호 / 상태)
  • 고객정보 (Customer: ID / 주소/ 전화번호)
  • 계정 정보 (Account: ID / 결제 관련 정보 / 가입일 / 탈퇴일)
  • 쇼핑카트 (Shopping Cart: 쇼핑카트 생성 날짜)
  • 주문 (Order: 상품 숫자 / 주문 날짜 / 배송 날짜 / 배송 주소 등)
  • 선택한 상품 (Line Item: 상품 개수 / 가격)
  • 상품정보 (Product: 상품 ID / 이름 / 판매자)

 

클래스 UML은 서비스에 들어가는 핵심 정보를 한눈에 보여줍니다. 하지만 클래스 UML은 어디까지나 중요한 정보만을 압축해 보여준 것입니다. 그래서 모든 정보를 담고 있는 게 아니고, 실제 개발을 위해서는 더 많은 정보가 필요합니다.

 

 

데이터의 순서를 보여주는 시퀀스 UML

시퀀스 UML은 사다리 게임을 하듯, 왼쪽부터 오른쪽 아래로 내려가는 그림입니다. 데이터가 어떻게 흘러가고, 최종적으로 어디에서 어떤 결과가 나오는지를 알려주게 되죠. 위의 UML을 순서대로 정리해보자면 다음과 같습니다.

 

  • 서비스 화면에서 서버로 요청을 하고
  • 서버가 데이터베이스에 값을 가져와 달라고 말하면
  • 데이터베이스가 결괏값을 서버에 던져주고
  • 서버는 다시 서비스 화면에 내용을 그려준다

 

시퀀스 UML은 말 그대로 순서대로 흘러가는 그림이기 때문에, 개발에 대해 높은 이해도가 있지 않아도 데이터의 흐름을 읽어낼 수 있습니다. 하지만 제한된 부분만 보여주기 때문에, 서비스 전체를 그려낼 수는 없습니다.

 

UML에는 이외에도 여러 가지 규격이 있습니다. 하지만 실무에서 자주 사용되지 않아 이 글에서는 소개하지 않은 규격들도 많습니다.

 

 

UML에는 고유한 문법이 있다?

UML은 여러 사람이 똑같이 이해하기 위해 만들어진 도구입니다. 그래서 꼭 지켜야 하는 여러 가지 규칙들이 있습니다. 그중 하나가 바로 화살표의 의미입니다. A와 B라는 데이터가 서로 단순한 연결 관계인지, 영향을 받는다면 누가 더 중요한지 화살표만 보고도 그 의미를 알 수 있어야 하죠. 

 

다만 UML의 가짓수가 워낙 많고, 실무자들도 이런 문법을 엄격하게 지키며 작업하는 경우는 많지 않습니다. 물론 규모가 크고, 복잡한 서비스를 만들어야 하는 경우라면 상황이 달라질 겁니다. 

 

 

UML을 손쉽게 그리는 도구

UML은 정해진 툴이 따로 없습니다. 그림판이나, PPT 등으로 그려서 만들더라도 크게 문제가 없죠. 하지만 좀 더 손쉬운 방법을 찾아야 한다면, 다음 도구들을 사용해보는 것도 좋은 방법이 될 겁니다.

 

 

지금까지 알아본 UML에 대해서 간단히 정리해보면 다음과 같습니다.

 

1. UML은 개발자들이 서로 헷갈리지 않게 개발 설계도를 그리기 위한 방법이다.

2. UML에는 여러 규격들이 있지만, 가장 자주 사용되는 건 유즈 케이스, 클래스, 시퀀스 UML이다.

3. 유즈 케이스 UML은 실제 세상에서 벌어지는 일을 사람과 역할을 위주로 그려낸 UML이며,

4. 클래스 UML은 서비스에 들어가는 중요한 정보를 박스로 만들어 연결시킨 UML이다.

5. 시퀀스 UML은 데이터의 흐름을 순서대로 표현해, 어떤 결과가 나오는지 보여주는 UML이다.

6. UML에는 엄격한 문법이 있지만, 실무에서 이 부분을 철저하게 지키는 경우는 드물다.

 

지금까지 UML이 무엇이고, 어떤 것들이 주로 사용되는지에 대해 알아보았습니다. 본인이 UML을 직접 그려보고 싶거나, 간단한 것부터 시작해보고 싶다면 다음 참고자료를 활용해보세요.

 

<참고 자료>

https://www.youtube.com/watch?v=UI6lqHOVHic

https://gmlwjd9405.github.io/2018/07/04/class-diagram.html

댓글 0

리플러스

웹개발과 UI를 연구하는 리플러스입니다. 현재 UD LAB이라는 채널을 운영하고있고, 디자이너를 위한 개발 공부법을 만들고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.