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단계 - 모델링 하기 #444

Open
wants to merge 3 commits into
base: snotra-p
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 134 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,20 +123,23 @@ docker compose -p kitchenpos up -d

### 주문 테이블

| 한글명 | 영문명 | 설명 |
|-------------|----------------------------|-----------------------------|
| 주문 테이블 | Order Table | 매장 주문 손님이 사용하는 테이블 |
| 주문 테이블 이름 | Order Table Name | e.g. 1번 테이블, 2번 테이블, 3번 테이블 |
| 사용중인 주문 테이블 | Occupied Order Table | 손님이 사용중인 테이블 |
| 빈 주문 테이블 | Cleared Order Table | 손님이 사용중이지 않은 테이블 |
| 손님 | Eat-In Guest | 매장 주문을 이용하는 손님 |
| 한글명 | 영문명 | 설명 |
|---------------|----------------------|-----------------------------|
| 주문 테이블 | Order Table | 매장 주문 손님이 사용하는 테이블 |
| 주문 테이블 이름 | Order Table Name | e.g. 1번 테이블, 2번 테이블, 3번 테이블 |
| 사용중인 주문 테이블 | Occupied Order Table | 손님이 사용중인 테이블 |
| 주문 테이블 사용중 여부 | Occupied | 주문 테이블 사용중 인지 아닌지를 나타냄 |
| 빈 주문 테이블 | Cleared Order Table | 손님이 사용중이지 않은 테이블 |
| 손님 | Eat-In Guest | 매장 주문을 이용하는 손님 |
| 주문 테이블 손님 수 | Number Of Guests | 매장 주문 손님의 수량 |

### 주문

#### 주문 공통

| 한글명 | 영문명 | 설명 |
|----------|------------------|------------------|
| 점장 | Owner | 점장, 포스 관리자 |
| 주문 | Order | 주문 |
| 주문 유형 | OrderType | 주문 유형 |
| 주문 상태 | OrderStatus | 주문 상태 |
Expand All @@ -145,37 +148,143 @@ docker compose -p kitchenpos up -d

#### 배달 주문

| 한글명 | 영문명 | 설명 |
|-------------|---------------------------------|------------------------------|
| 배달 주문 | Delivery Order | 손님이 구매한 메뉴를 지정된 목적지로 전달하여 제공 |
| 배달 주문 대기 | Delivery Order Waiting | 배달 주문이 요청된 상태 |
| 배달 주문 수락 | Delivery Order Accepted | 배달 주문이 수락된 상태 |
| 배달 주문 제공 | Delivery Order Served | 배달 주문 메뉴가 전달될 준비가된 상태 |
| 배달 주문 배달중 | Delivery Order Delivering | 배달 주문 메뉴가 전달중인 상태 |
| 배달 주문 배달완료 | Delivery Order Delivered | 배달 주문 메뉴가 전달이 완료된 상태 |
| 주문 완료 | Delivery Order Completed | 배달 주문이 완료된 상태 |
| 배달 주소 | Delivery Address | 손님이 구매한 메뉴를 전달할 목적지 |
| 배달 업체 | Delivery Agency | 손님이 구매한 메뉴를 배달하는 업체 |
| 한글명 | 영문명 | 설명 |
|------------|---------------------------|------------------------------|
| 배달 주문 | Delivery Order | 손님이 구매한 메뉴를 지정된 목적지로 전달하여 제공 |
| 배달 주문 요청 | Delivery Order Creating | 배달 주문을 생성함 |
| 배달 주문 대기 | Delivery Order Waiting | 배달 주문이 요청된 상태 |
| 배달 주문 수락 | Delivery Order Accepted | 배달 주문이 수락된 상태 |
| 배달 주문 제공 | Delivery Order Served | 배달 주문 메뉴가 전달될 준비가된 상태 |
| 배달 주문 배달중 | Delivery Order Delivering | 배달 주문 메뉴가 전달중인 상태 |
| 배달 주문 배달완료 | Delivery Order Delivered | 배달 주문 메뉴가 전달이 완료된 상태 |
| 주문 완료 | Delivery Order Completed | 배달 주문이 완료된 상태 |
| 배달 주소 | Delivery Address | 손님이 구매한 메뉴를 전달할 목적지 |
| 배달 업체 | Delivery Agency | 손님이 구매한 메뉴를 배달하는 업체 |

#### 매장 주문

| 한글명 | 영문명 | 설명 |
|-------------|----------------------------|---------------------------------|
| 매장 주문 | Eat-In Order | 손님이 구매한 메뉴를 지정된 주문 테이블로 전달하여 제공 |
| 매장 주문 대기 | Eat-In Order Waiting | 매장 주문이 요청된 상태 |
| 매장 주문 수락 | Eat-In Order Accepted | 매장 주문이 수락된 상태 |
| 매장 주문 제공 | Eat-In Order Served | 매장 주문 메뉴가 제공된 상태 |
| 매장 주문 완료 | Eat-In Order Completed | 매장 주문이 완료된 상태 |
| 한글명 | 영문명 | 설명 |
|----------|------------------------|---------------------------------|
| 손님 | Guest | 손님, 주문한 사람 |
| 매장 주문 | Eat-In Order | 손님이 구매한 메뉴를 지정된 주문 테이블로 전달하여 제공 |
| 매장 주문 요청 | Eat-In Order Creating | 매장 주문을 생성함 |
| 매장 주문 대기 | Eat-In Order Waiting | 매장 주문이 요청된 상태 |
| 매장 주문 수락 | Eat-In Order Accepted | 매장 주문이 수락된 상태 |
| 매장 주문 제공 | Eat-In Order Served | 매장 주문 메뉴가 제공된 상태 |
| 매장 주문 완료 | Eat-In Order Completed | 매장 주문이 완료된 상태 |

#### 포장 주문

| 한글명 | 영문명 | 설명 |
|-------------|--------------------------------|---------------------|
| 포장 주문 | Takeout Order | 손님이 구매한 메뉴를 포장하여 제공 |
| 포장 주문 요청 | Takeout Order Creating | 포장 주문을 생성함 |
| 포장 주문 생성 정책 | Takeout Order Create Policy | 포장 주문에 대한 생성 정책 |
| 포장 주문 대기 | Takeout Order Waiting | 포장 주문이 요청된 상태 |
| 포장 주문 수락 | Takeout Order Accepted | 포장 주문이 수락된 상태 |
| 포장 주문 제공 | Takeout Order Served | 포장 주문 메뉴가 제공된 상태 |
| 포장 주문 완료 | Takeout Order Completed | 포장 주문이 완료된 상태 |

## 모델링

## 주문 테이블

### 속성

- 식별자(`ID`)
- 이름(`Name`)
- 사용중 여부(`Occupied`)
- 주문 테이블 손님 수(`Number Of Guests`)

### 행위

- 점장은 주문 테이블을 등록할 수 있다.
- 주문 테이블의 주문 테이블 이름은 비워 둘 수 없다.
- 점장은 주문 테이블의 사용중 여부(`Occupied`)를 변경 할 수 있다.
- 손님이 테이블에 착석(`Sit`)하면 사용중 여부(`Occupied`) 는 `true` 가 된다.(= `Occupied Order Table`)
- 주문 테이블을 비우면(`Clear`) 사용중 여부(`Occupied`)는 `false` 가 된다. (= `Cleared Order Table`)
- 완료되지 않은 주문이 있는 주문 테이블(`Table`) 은 사용중 여부(`Occupied`) 를 `false` 로 변경할 수 없다.
- 주문 테이블 손님 수(`Number Of Guests`) 를 변경할 수 있다.
- 주문 테이블 손님 수(`Number Of Guests`) 는 0명 이상이어야 한다.
- 빈 주문 테이블(`Cleared Order Table`) 은 주문 테이블 손님 수 (`Number Of Guests`) 를 변경 할 수 없다.
- 주문 테이블의 목록을 조회 할 수 있다.

## 배달주문

### 속성

- 식별자
- 주문 유형
- 주문 상태
- 주문시각
- 메뉴
- 수량
- 배달 주소

### 행위

- 1개 이상의 메뉴와 함께 배달 주문을 요청 할 수 있다.
- 메뉴가 없으면 배달 주문을 요청 할 수 없다.
- 주문하는 메뉴의 수량은 0개 이상이어야 한다.
- 올바른 배달주소가 필요하다.
- 숨겨진 메뉴 는 주문할 수 없다.
- 배달주문을 요청 하면 배달 주문 대기 상태가 된다.
- 배달 주문 대기 상태의 주문만 배달 주문 수락 상태가 될 수 있다.
- 배달 주문 수락 상태 가 되면 배달 업체 호출을 진행한다.
- 배달 업체 호출 시, 주문 식별자, 가격, 배달 주소를 전달한다.
- 배달주문이 준비되면 배달 주문 제공 상태가 된다.
- 배달 주문 수락상태의 주문만 배달 주문 제공 상태가 될 수 있다.
- 배달주문을 배달하기 시작하면 배달 시작 상태가 된다.
- 배달 주문 제공 상태의 주문만 배달 주문 시작 상태가 될 수 있다.
- 배달주문을 배달 완료하면 배달 완료 상태가 된다.
- 배달 시작 상태의 주문만 배달 완료 상태가 될 수 있다.
- 배달주문은 최종적으로 완료 상태가 된다.
- 배달 완료 상태의 주문만 완료 상태가 될 수 있다.
- 주문 목록을 조회할 수 있다.
Comment on lines +224 to +243

Choose a reason for hiding this comment

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

모델링을 하는 것은 개발하기 위한 정의서라고 볼 수 있는데요
용어사전, 요구사항 정리를 좀 더 활용해 보면 좋을 것 같아요

Delivery Order 는 ㅇㅇㅇ 을 가진다


## 포장주문

### 속성
- 식별자
- 주문 유형
- 주문 상태
- 주문 시각
- 메뉴- 수량

### 행위

- 1개 이상의 메뉴와 함께 포장 주문을 등록할 수 있다.
- 메뉴 가 없으면 포장 주문을 등록할 수 없다.
- 주문하는 메뉴의 수량 은 0개 이상이어야 한다.
- 숨겨진 메뉴는 주문할 수 없다.
- 주문한 메뉴의 가격은 실제 메뉴 가격과 일치해야 한다.
- 포장 주문을 확인하면 접수 상태가 된다.
- 접수 대기 상태의 주문 접수 상태가 될 수 있다.
- 포장주문이 준비되면 서빙 상태 가 된다.
- 접수 상태의 주문만 서빙 상태가 될 수 있다.
- 포장주문은 최종적으로 완료 상태가 된다.
- 서빙 상태 주문만 완료 상태 가 될 수 있다.
- 주문목록을 조회할 수 있다.
Comment on lines +256 to +267

Choose a reason for hiding this comment

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

위와 동일한 맥락인데요! 컨텍스트를 나눈 만큼 용어가 달라질 수 있다고 생각을합니다
같이 수정해보면 좋을 것 같아요 :)


## 매장주문

### 속성

- 포장 주문은 식별자, 주문 유형, 주문 상태, 주문 시각, 메뉴, 수량, 주문 테이블을 갖는다.

### 행위

- 1개 이상의 메뉴와 매장 주문을 등록할 수 있다.
- 메뉴가 없으면 매장 주문을 등록할 수 없다.
- 주문하는 메뉴 수량 이 0개 미만일 수 있다.
- 주문 등록하기 위해서는 테이블 착석 이 필요하다.
- 숨겨진 메뉴는 주문할 수 없다.
- 주문한 메뉴 가격은 실제 메뉴 가격과 일치해야 한다.
- 매장 주문을 확인하면 접수 상태가 된다.
- 접수 대기 상태의 주문 접수 상태가 될 수 있다.
- 매장 주문이 준비되면 서빙 상태 가 된다.
- 접수 상태의 주문만 서빙 상태가 될 수 있다.
- 매장 주문은 최종적으로 완료 상태가 된다.
- 서빙 상태 주문만 완료 상태 가 될 수 있다.
- 주문이 완료 상태가 된 주문 테이블 은 빈테이블로 설정한다.
- 주문목록을 조회 할 수 있다.
Comment on lines +277 to +290

Choose a reason for hiding this comment

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

위와 동일합니다!
요구사항, 용어 정리를 통해서 모델링을 만들었을 때
모델링이 갖는 의미가 어떤 것인지 조금씩 알아가는 과정이라 생각이 드네요!