Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2단계 - 요구 사항 정리 #777

Open
wants to merge 4 commits into
base: restinbeat
Choose a base branch
from

Conversation

restinbeat
Copy link

리뷰어님 ! 2단계 요구사항 정리 PR 올립니다.

  • step1 개선사항 반영 - equals, hashCode 재정의 및 클래밍 네이밍 변경
  • step2 요구사항 정리 - api 별 servie 비즈니스 로직 토대로 요구사항 작성

보완되어야 할 부분 있으면 피드백 해주시면 감사합니다!! 연휴임에도 빠른 피드백 주셔서 감사합니다 !

@HackSung
Copy link

요구 사항을 아주 꼼꼼히 정리하시느라 수고 많으셨습니다! 👍
코드를 보고 요구 사항을 도출하다 보면 아무래도 개발자스러운 표현들이 많이 들어가게 되는 것 같아요.

예) API, Key, 예외 발생 등.

DDD에서는 비개발자일 수 도 있는 도메인 전문가와의 원활한 커뮤니케이션을 위해
요구사항에서 최대한 기술적 용어를 빼고 비즈니스 도메인에 관련된 용어로 구성하는게 중요할 것 같아요.
또한 전체적으로 일관성 있고 모호하지 않은 용어와 표현에도 신경써야 하구요.
요구 사항 도출을 통해 기존 레거시 코드를 잘 분석하셨으니 앞으로의 미션도 잘하실 것 같습니다. 😃

Copy link

@HackSung HackSung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요구 사항 빠르고 꼼꼼하게 정리해 주셨네요! 👍
피드백 코멘트 남겨 드렸으니 검토 부탁드리겠습니다. 😄

- [ ] 상품은 단건으로만 등록이 가능하다.
3. 상품 수정 (금액 수정)
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

동일한 요구사항이 두 번 반복되었네요?

Suggested change
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.

- API
1. 상품 조회
- [ ] 상품 조회시 특정 조건 없이 상품의 모든 목록을 조회할 수 있다.
- [ ] 상품 조회시에 결과 수에 대한 제한이 필요하다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

개발자라면 항상 염두에 둬야 하는 기본 제한이지만
기존 레거시 코드에는 없던 조건이니 일단 전체적으로 위 내용은 빼셔도 될 것 같아요. 😄

- [ ] 상품 등록시 상품명 및 금액의 유효성 검증을 한다. (비어있는지, 0이상인지, 욕설을 포함하는지)
- [ ] 상품은 단건으로만 등록이 가능하다.
3. 상품 수정 (금액 수정)
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다른 요구사항에서는 금액에 원이라는 단위를 붙이셨는데
이 요구사항에서도 일관성 있고 명확하게 수에 대한 단위를 붙이면 좀 더 자연스럽게 읽힐것 같아요.

3. 상품 수정 (금액 수정)
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.
- [ ] 상품 수정시 금액이 비어있는지 0이상인지 검증을 한다.
- [ ] 해당 상품을 가진 메뉴의 가격이 메뉴 구성 상품보다 총합이 크면 해당 메뉴는 노출하지 않는다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

메뉴의 가격은 하나이고 구성 상품은 여러개이니 아래처럼 표현을 좀 더 명확하게 하는건 어떻게 생각하세요?

Suggested change
- [ ] 해당 상품을 가진 메뉴의 가격이 메뉴 구성 상품보다 총합이 크면 해당 메뉴는 노출하지 않는다.
- [ ] 메뉴의 가격이 메뉴 구성 상품들의 총합보다 크면 해당 메뉴는 숨겨진다.

## 용어 사전
****
### 1. 상품 (product)
- [x] 상품은 상품명과, 금액을 필수로 가진다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

x가 표기된 요구사항과 그렇지 않은 요구사항의 차이는 무엇인가요? 🤔

- [ ] 등록하려는 메뉴 가격이 구성 상품의 합계보다 크지 않아야 한다.
3. 메뉴 노출
- [ ] 등록된 메뉴가 없으면 예외를 발생한다.
- [ ] 등록된 메뉴의 가격이 메뉴 구성 상품보다 총합이 크면 예외를 발생한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

예외 발생이라는 개발자적인 표현은 최대한 자제해 보세요. 😃

- [ ] 주문 조회시 특정 조건 없이 모든 목록을 조회할 수 있다.
- [ ] 주문 조회시에 결과 수에 대한 제한이 필요하다.
2. 주문 등록
- [ ] 주문 유형이 존재해야 한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주문 유형에는 어떤 것들이 있는지도 모두 나열해 주면 더욱 좋을 것 같아요.

- [ ] 등록된 주문이 없으면 예외를 발생한다.
- [ ] 배달(주문유형)인데 배달완료(주문상태)가 아니면 예외를 발생한다.
- [ ] 포장, 먹고가기(주문유형)인데 서빙완료(주문상태)가 아니면 예외를 발생한다.
- [ ] 먹고가기(주문유형)일 경우 테이블 주문 + 주문 모두 완료 처리한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테이블 주문 + 주문이란 표현을 좀 더 개선해 볼 수 있을까요?

4. 테이블 정리
- [ ] 등록된 테이블 주문이 없으면 예외를 발생한다.
- [ ] 테이블 주문이 있는데 주문상태가 **완료**가 아니면 예외를 발생한다.
- [ ] 테이블 사용중지 처리한다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사용중지라는 표현은 왠지 앞으로 테이블을 사용 못할 것 같은 어감이 드네요.
그냥 테이블을 비운다, 빈 테이블로 설정한다라는 식의 표현은 어떨까요?



****
## 용어 사전

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

용어 사전 정리를 미리 시작하셨군요? 👍
전략적 설계 미션중에 용어 사전 만들기가 따로 있으니 그 때 가서 본격적으로 하셔도 될 것 같아요. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants