-
Notifications
You must be signed in to change notification settings - Fork 184
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단계 - 요구사항 정리 #525
base: comeonmilk
Are you sure you want to change the base?
2단계 - 요구사항 정리 #525
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요
몇가지 코멘트 남겨두었으니 확인 부탁드립니다.
## 모델링 | ||
- 식당에서 메뉴 주문을 관리하는 시스템을 구현한다. | ||
- 상품(product) | ||
- [ ] 상품은 "이름, 가격"으로 구성된다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
상품의 가격은 음수가 될 수 있을까요? 아래와 같은 요구사항에 대해서도 정리되면 좋을 것 같아요.
- 상품의 가격은 0원 이상이어야 한다.
- 상품(product) | ||
- [ ] 상품은 "이름, 가격"으로 구성된다. | ||
- [ ] 상품은 등록할 수 있다. | ||
- [ ] 등록 후 가격을 수정할 수 있다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (menu.getPrice().compareTo(sum) > 0) { |
위 코드와 같은 세부적인 요구사항도 정리되면 좋을 것 같아요.
- [ ] 메뉴는 메뉴 그룹을 반드시 가진다. | ||
- [ ] 메뉴는 기 등록된 식사의 조합으로 구성된다. | ||
- [ ] 메뉴 가격을 수정할 수 있다. | ||
- [ ] 노출 여부를 수정할 수 있다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
메뉴를 노출할 수 없는 경우는 없을까요?
## 모델링 | ||
- 식당에서 메뉴 주문을 관리하는 시스템을 구현한다. | ||
- 상품(product) | ||
- [ ] 상품은 "이름, 가격"으로 구성된다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (Objects.isNull(name) || purgomalumClient.containsProfanity(name)) { |
상품의 이름에 비속어가 포함된다거나 할 수 있을까요? 위 코드와 관련된 요구사항에 대해서도 고민해보시면 좋겠습니다.
- 주문 테이블(order_table) | ||
- [ ] 주문 테이블은 "주문 테이블 ID, 점유 여부, 이름, 손님 수"로 구성된다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주문 테이블과 관련된 요구사항이 너무 빈약한 것 같습니다. 아래 부분에 대해 고민해보시면 좋겠습니다.
- 빈 테이블로 설정할 수 없는 경우
- 손님 수 변경과 그에 대한 제약사항 등
- [ ] 주문은 "주문 ID, 배달 주소, 주문 시간, 주문 상태, 타입, 주문 테이블ID"으로 구성된다. | ||
- [ ] 주문 상태는 "WAITING, COMPLETED"가 존재한다. | ||
- [ ] 타입은 "EAT_IN, DELIVERY"가 존재한다. | ||
- [ ] 타입이 "EAT_IN"인 경우 배달 주소는 null이다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정리된 요구사항은 개발자만 보는 것이 아니라 기획자 등 모든 사람이 볼 수 있습니다.
null과 같은 용어의 사용은 지양해주세요.
@@ -8,11 +8,29 @@ docker compose -p kitchenpos up -d | |||
``` | |||
|
|||
## 요구 사항 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
전반적으로 요구사항 정리가 빈약한 느낌인데요. 지금은 주어진 코드가 명확히 있기 때문에 조금 더 꼼꼼하게 코드를 보시고 요구사항을 작성해주시면 좋을 것 같습니다.
- [ ] 메뉴 상품은 "수량, 상품 ID, 메뉴 ID로 구성된다." | ||
- 메뉴 그룹(menu_group) | ||
- [ ] 메뉴 그룹은 "메뉴 그룹 ID, 이름"으로 구성된다. | ||
- 주문(order) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
숨겨진 메뉴는 주문할 수 없다거나 주문한 메뉴의 가격이 실제 메뉴의 가격과 일치해야 한다거나 누락된 여러 요구사항이 있는데요.
코드를 보시면서 조금 더 구체적으로 정리해보시면 좋을 것 같아요.
No description provided.