nhnacademy-be6-code-quest / Role

This Team Role
0 stars 0 forks source link

요구사항 분석 : 이벤트 스토밍(Miro Tool 이용). - 모호한 분야에 대한 논의는 본문 아래 부분 확인 #7

Closed InJunKangW closed 3 months ago

InJunKangW commented 3 months ago

이벤트 스토밍을 하는 이유

1. 팀원 모두가 요구사항에 대한 공통된 이해를 할 수 있는 게 가장 큰 메리트

2. 팀원 전체가 모여서 요구사항을 분석하기 때문에, 개별적으로 요구사항 분석을 수행했을 때보다 빠뜨리는 부분이 적음.

3. ERD 추출에 상당한 도움이 됨.

4. 기술적인 사항에 대해서도 논의해 볼 수 있게 됨.

이벤트 스토밍의 전반적인 진행 방법을 소개하는 영상(16분)

사용 방법

1. 도메인 이벤트 흩뿌리기

[예시]

1. 로그인이 성공하였다. (자체 로그인과 소셜 로그인은 다른 이벤트임)
2. 팀 플레이스가 생성되었다.
3. 팀별 캘린더 일정 등록이 성공하였다.

2-1) 도메인 이벤트 타임 라인 순으로 정리 및 토론 시작

[주의해야 하는 경우 예시]

예를 들어, 팀원 A와 B가 똑같이 '로그인이 성공했습니다.' 이벤트를 작성했을 때,
A는 자체 로그인으로 생각했고, B는 소셜 로그인으로 생각했다면 이 두 개의 이벤트는 다른 이벤트입니다.
따라서 제거하는 것이 아니라 구체화해야 할 것입니다.

2-2) 자주색 포스트 잇을 사용하여 이해할 수 없는 부분이나 구체적이지 않은 부분에 대해 문제를 제기한다.

2-3) 노란색과 분홍색을 포스트 잇을 사용하여 액터와 시스템을 표시한다.

노란색 - 액터를 표시한다. 단순한 '사용자' 또는 '고객' 보다는 '강사' 또는 '교육생'과 같은 구체적인 페르소나를 설정한다. 분홍색 - 시스템을 표시한다. 외부 시스템에서 레거시, 마이크로 서비스, 결제 모듈, 알림 모듈 등 외부 의존성을 가지는 시스템을 말한다.

2-4) 파란색 포스트 잇을 사용하여 '커맨드'를 표시한다. 대표적으로 입력(Input), API, UI 버튼 등을 표현하는 데에 사용한다.

2-5) 연보라색 포스트 잇을 사용하여 '정책'을 표시한다. 이벤트로 인해 발생하는 요청 사항과 같은 것들을 정책이라고 부른다.

2-6) 연노라색 포스트 잇을 사용하여 '해당 요청을 처리하기 위한 정보'를 표시한다.

https://miro.com/app/board/uXjVK8rqkk8=/


2024/06/13 (금) : 도메인 스토밍 회의

<ERD를 그리기 위한 정도만 논의하기. 구체적인 구현에 대해서는 논의하지 않기> <API 를 개발한 사람이 Front 까지 개발해 볼 것> <세부적인 API 에 대해서는 만들어 보면서 논의할 것. 한 번에 설계하면 -> 나중에 수정할 가능성이 매우 높음.>

  1. 생일 쿠폰의 정책은 '쿠폰 정책'을 기준으로 생성된다.
  2. 쿠폰의 종류에는 웰컴 쿠폰, 생일 쿠폰, 카테고리 쿠폰, 특정 도서 쿠폰이 있음.
  3. 각각의 쿠폰에 대해 쿠폰 정책이 각각 존재해야 할 것.

<적립>

<ERD 관련 Issue>

  1. 비회원 환불은 어떻게 해줄까? -> 환불 완료 메시지는 띄우지만, 결제 되돌림은 안 되는 것으로
  2. 사용자가 반품을 하면, 재고를 무조건 늘릴 것인가? -> 재고 관련해서는 아무런 조치도 않음.
  3. 리뷰는 사진 + 글 + 평점 리뷰 500원, 글 + 평점 200원 -> 두 개의 리뷰 형태를 만들고, 둘 다 쓰면 700원 주기
  4. 도서는 알라딘에 존재하는 도서를 전부 넣는 것이 아닌, Admin 상품 추가 시 추가 됨.
  5. 상품의 이름은 Unique 하지 않다.
  6. 정책을 별도의 테이블로 만들어야 하는가? -> 아니요. 개별 정책으로 나누기.
  7. 파손 및 파본에 의한 반품은 -> 택배비 차감하지 않고 포인트 환불.

<요구 사항 관련 Issue>

  1. 웰컴 쿠폰 발급에 실패하는 경우에는 -> 관리자에게 알림이 가도록
  2. 상품 검색 가중치와 관련된 테이블을
  3. if (배송비 > 판매가) { 환불 시 배송비가 더 클 수 있다는 알람 띄우기; }
  4. 주문서가 생성되고 결제가 완료된 상태가 존재 -> 주문 상태에 대기도 필요하고, 배송 중이라는 것도 필요합니다. (요구사항 참고하면 좋을 것 같아요)