유데미x스나이퍼팩토리 10주 완성 프로젝트 캠프 3일차 - UML
Use Case, Activity Diagram 작성
UML 🗣️
UML(Unified Modeling Language) 이란 시스템을 설계하고 문서화하기 위해 사용되는 표준화된 언어이다. 시스템의 구조, 동작 및 상호작용을 시각적으로 표현하기 위해 그래픽 기호가 제공된다.
UML 다이어그램은 크게 구조, 행위 두가지로 이루어져있는데 이번 시간에는 행위 다이어그램, 그중 유스케이스 다이어그램(Use Case Diagram)
과 활동 다이어그램(Activity Diagram)
에 대한 강의가 진행되었다. 그리고 이 다이어그램들을 직접 설계하는 시간을 가졌는데 draw.io 라는 툴을 이용해서 진행되었다. 우선 둘의 개념을 비교해보자.
유스케이스 다이어그램(Use Case Diagram)
- 시스템의 기능과 사용자(액터) 간의 상호작용을 나타낸다.
- 시스템이
무엇
을 하는지, 왜 그렇게 하는지를 보여준다. - 액터(사용자, 시스템 등)와 유스케이스(시스템 기능 또는 작업) 사이의 관계를 표현한다.
- 누운 타원으로 표현.
- 시스템의 요구사항을 식별하고 기능적인 측면을 강조한다.
- 시스템의 범위와 사용자의 요구사항을 명확하게 이해하고 문서화하는 데 도움을 준다. (가령 클라이언트가 추후 요구사항을 변경했을 때 방어할 수 있는 명세서가 된다고 한다.)
이미지 참조
예를 들면 이런 것 이다. 유스케이스 다이어그램은 시스템이 무엇을 해야 하는지를 나타낸다. 사용자의 요구사항을 식별하고, 이를 시스템 기능으로 매핑하여 명확한 요구사항을 정의하는 데 도움을 준다.
활동 다이어그램(Activity Diagram)
- 시스템의 동작 흐름을 나타낸다.
- 작업들의 순서와 제어 흐름을 시각적으로 표현한다.
- 조건에 따라 다른 경로를 선택하는 의사 결정, 여러 작업이 동시에 진행되는 병렬 처리가 있다.
이미지 참조 (출처: https://codedragon.tistory.com/4182)
위는 도서 대여에 대한 로직을 보여주고 있다. 시작과 끝은 원형, 행위는 둥근 사각형, 분기점은 마름모를 통해 나타낸다. 그리고 분기된 각 행위들의 종점은 긴 사각형에서 합쳐진다. 활동 다이어그램을 통해 행위에 대한 순서 및 의사결정에 따른 로직을 시각적으로 명확하게 확인할 수 있다.
이를 바탕으로 나의 서비스에 대한 유스케이스와 액티비티 다이어그램을 설계해보았다. 우선 이전 포스팅에도 언급했듯이 아래에서 표현할 내 서비스는 인스타그램에서 그림을 그리는 작가들의 작품을 판매하는 공간이다.
그렇다면 아래 UML에서는 액터가 1. 사용자👥, 2. 사용자에게 작품을 판매하는 작가👩🏻🎨, 그리고 그들을 관리하는 서비스 관리자👷🏻♀️로 구성될 수 있겠다.
.
.
.
마뮤_유스케이스 다이어그램(Use Case Diagram)
우선 회원을 비회원과 회원으로 나누어 구성했다. 비회원은 상품 구매 및 찜, 리뷰, QnA 활동을 할 수 없고 단순히 상품 목록에만 접근할 수 있다. 회원은 장바구니 및 관심목록, 주문, 회원페이지에 추가적으로 접근할 수 있는 권한이 있다.
작가는 판매활동을 하기위해 작가로 등록을 해야한다. 그리고 관리자는 등록된 작가를 검토하고 작가의 권한을 부여한다. 작가가 굿즈를 등록하면 관리자는 해당 굿즈를 검토 및 발주하여 단가를 관리하고 상품을 등록한다. 판매 내역이 생기면 달마다 정산이 진행된다.
해당 다이어그램을 설계해보면서 생각보다 관리자의 활동이 새삼 많다는 것을 알았다.🥲
선생님 저는 적게 일하고 많이 벌고 싶은데여..ㅠㅠ?🧐
하지만 사실상 마뮤의 수익 구조 상 작가의 상품을 판매하는 것, 작가는 편리하게 작품을 판매하는 것 이다 보니 당연히 관리자의 활동이 많을 수 밖에 없다. 수수료를 받아오려면 열일해야하는 것!! 공짜는 없다! 그치만 좀 더 효율적인 서비스 관리를 위해서라도 서비스를 자동화 할 수 있는 부분이 어느곳에 있는지 분석할 필요가 있을 것 같다.
마뮤_활동 다이어그램(Activity Diagram)
유스케이스 다이어그램과 함께 활동 다이어그램을 설계해보았다. 사실 프로세스의 일부만 따온 것 인데도 벌써 로직이 많아진다. 그리고 그에 따라 생성해야할 페이지도 많아지고 있다.
이번 수업을 통해 내가 구현하고 싶은 프로젝트에 대해 더 심화되게 생각해볼 수 있었다. UML을 작성하면서 단순해질 필요가 있는 부분, 구체화 되어야 할 부분이 더 보이기도 한다. 어제 포스팅으로 인해 프로젝트가 희미하게 보였다면 오늘 과제로 인해 조금 더 선명해졌달까,, 하지만 길은 아직 멀었다. 조금 더 완성도 있는 서비스 구현을 위해 더 고민해보고 다이어그램들을 더 정리해봐야겠다.
.
.
.
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다. #프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프