@@ -0,0 +1,197 @@
+# 🎅🏻 크리스마스 프로모션 🎄
+
+## 진행 방식
+
+### 🧑🏻 고객 👩🏻
+
+- 방문할 날짜를 입력한다.
+- 주문할 메뉴 이름과 수량을 입력한다.
+
+### 🚪 식당 🍴
+
+1. 소개문구를 출력한다.
+2. 방문 날짜의 이벤트 혜택 안내문구를 출력한다.
+3. 고객이 주문한 메뉴를 출력한다.
+4. 주문한 메뉴의 총 금액을 출력한다.
+5. 증정 메뉴의 여부를 출력한다.
+6. 받을 수 있는 모든 혜택 내역을 출력한다.
+7. 혜택내역을 모두 더한 총 금액을 출력한다.
+8. 총 주문금액에서 할인되는 금액을 뺀 예상 결제금액을 출력한다.
+9. 이벤트 배지 여부를 출력한다.
+
+#### 5번, 6번, 7번, 9번의 경우, 없으면 `없음` 을 출력한다.
+
+<br>
+
+## 기능 목록
+
+### 💡 검증 🔍
+
+#### 방문 날짜
+
+- 자연수가 맞는지 확인한다.
+- 31 이하의 숫자가 맞는지 확인한다.
+
+[x] 각 검증 목록을 통과하지 못할 경우에는 예외가 발생하고,  
+`[ERROR] 유효하지 않은 날짜입니다. 다시 입력해 주세요.` 에러 메세지 출력 후 재입력 받는다.
+
+#### 주문 메뉴
+
+- 주문 형식이 예시와 같은지 확인한다.
+- 메뉴판에 있는 메뉴인지 확인한다.
+- 각 메뉴의 수량이 1개 이상인지 확인한다.
+- 주문 개수의 총합이 20개 이하인지 확인한다.
+- 중복되는 메뉴가 없는지 확인한다.
+
+[x] 각 검증 목록을 통과하지 못할 경우에는 예외가 발생하고,  
+`[ERROR] 유효하지 않은 주문입니다. 다시 입력해 주세요.` 에러 메세지 출력 후 재입력 받는다.
+
+- 음료만 주문하지 않았는지 확인한다.
+
+[x] 음료만 주문한 경우에는 예외가 발생하고,  
+`[ERROR] 음료만 주문할 수 없습니다. 다시 입력해 주세요.` 에러 메세지 출력 후 재입력 받는다.
+
+---
+
+### 📆 혜택 💸
+
+- `Benefits` 클래스 생성할 때 `날짜` 를 받고, **검증 후 상태값으로 저장**
+
+- `날짜` 를 이용해 **크리스마스 디데이 할인, 평일 할인, 주말 할인, 특별 할인** 을 계산한다.
+
+**📍 12월 날짜 관련 이벤트 안내 📢**
+
+| Event Name             | Period          | Discount Details                                                    |
+| ---------------------- | --------------- | ------------------------------------------------------------------- |
+| 크리스마스 디데이 할인 | 1일 ~ 25일      | 1일에 `1,000`원으로 시작해서 하루에 `100`원씩 증가한 값을 할인한다. |
+| 평일 할인              | 일요일 ~ 목요일 | 디저트 메뉴를 1개당 `2,023`원을 할인한다.                           |
+| 주말 할인              | 금요일, 토요일  | 메인 메뉴를 1개당 `2,023`원을 할인한다.                             |
+| 특별 할인              | 일요일, 25일    | `1,000`원을 할인한다.                                               |
+
+---
+
+### 📋 주문 🧾
+
+- `OrderMenu` 클래스 생성할 때 `주문` 을 받고, **형식 검증 후 가격, 타입과 함께 상태값으로 저장한 뒤 나머지 검증 진행**
+- 주문 내역을 이용해 **메인 메뉴의 개수, 디저트 메뉴의 개수, 총 주문금액** 을 계산한다.
+
+**📍 12월 총 주문금액 관련 이벤트 안내 📢**
+
+| Event Name  | Condition        | Gift Description |
+| ----------- | ---------------- | ---------------- |
+| 증정 이벤트 | 12만원 이상 주문 | 샴페인 1개 증정  |
+
+---
+
+### 🔗 서비스(혜택과 주문의 연결고리) ⭐
+
+- 혜택들의 총 할인 금액과 주문의 증정 이벤트 여부에 따른 혜택 금액을 더해 **총 혜택금액** 을 계산한다.
+- 총 혜택 금액을 이용해 **배지** 의 여부를 계산한다.
+
+**📍 12월 이벤트 배지 관련 안내 📢**
+
+| Total Benefits | Badge |
+| -------------- | ----- |
+| 5,000원 이상   | 별    |
+| 10,000원 이상  | 트리  |
+| 20,000원 이상  | 산타  |
+
+---
+
+### 🚨 주의사항 🚧
+
+#### 혜택 내역
+
+- 고객에게 해당된 이벤트 내역만 출력한다.
+- 총 주문금액이 `10,000`원 미만일 경우, 혜택이 적용되지 않으므로 `없음` 을 출력한다.
+- 적용된 혜택이 하나도 없을 경우, `없음` 을 출력한다.
+  ```
+  // 예시
+  - 26일~28일에 방문하여 디저트 메뉴를 시키지 않고, 총 주문금액이 12만원 미만인 경우
+  - 29일, 30일에 방문하여 메인 메뉴를 시키지 않고, 총 주문금액이 12만원 미만인 경우
+  ```
+
+#### 총혜택 금액
+
+- 총 주문금액이 `10,000`원 미만일 경우, 혜택이 적용되지 않으므로 `0원` 을 출력한다.
+
+#### 할인 후 예상 결제 금액
+
+- 증정 이벤트는 할인이 아니기 때문에 총 주문금액에서 값을 빼지 않는다.
+
+## 테스트 코드
+
+### 📌 Benefits 클래스 테스트 코드 작성
+
+- 방문 날짜 검증 테스트
+
+  - [x] 숫자가 아니면 예외가 발생한다.
+  - [x] 에서 31 사이의 수가 아니면 예외가 발생한다.
+
+- 크리스마스 디데이 할인 테스트
+
+  - [x] 1일부터 25일 사이의 할인 금액을 계산한다.
+  - [x] 25일 이후의 할인 금액은 0이다.
+
+- 평일 할인 테스트
+
+  - [x] 평일이면 디저트 메뉴의 수량에 따라 할인 금액을 계산한다.
+  - [x] 주말이면 할인 금액이 0이다.
+
+- 주말 할인 테스트
+
+  - [x] 주말이면 메인 메뉴의 수량에 따라 할인 금액을 계산한다.
+  - [x] 평일이면 할인 금액이 0이다.
+
+- 특별 할인 테스트
+  - [x] 일요일이나 25일이면 특별 할인 값을 반환한다.
+  - [x] 이외의 날은 할인 금액이 0이다.
+
+### 📌 OrderMenu 클래스 테스트 코드 작성
+
+- 주문 메뉴 검증 테스트
+
+  - [x] 주문 형식이 예시와 다르면 예외가 발생한다.
+  - [x] 메뉴판에 없는 메뉴가 있으면 예외가 발생한다.
+  - [x] 주문 수량이 1 미만이면 예외가 발생한다.
+  - [x] 주문 수량의 총합이 20이 넘으면 예외가 발생한다.
+  - [x] 중복된 메뉴가 있으면 예외가 발생한다.
+  - [x] 음료만 주문하면 예외가 발생한다.
+
+- 상태값 활용 테스트
+  - [x] 수량과 가격을 곱해서 총 주문금액을 계산한다.
+  - [x] 디저트 메뉴의 주문 개수를 계산한다.
+  - [x] 메인 메뉴의 주문 개수를 계산한다.
+
+### 📌 Service 클래스 테스트 코드 작성
+
+- 총 주문금액이 12만원 이상일 때, 총 혜택금액 구하는 테스트
+
+  - [x] 크리스마스+평일+특별+증정
+  - [x] 크리스마스+평일+증정
+  - [x] 크리스마스+주말+증정
+  - [x] 평일+특별+증정
+  - [x] 주말+증정
+  - [x] 크리스마스+특별+증정
+  - [x] 특별+증정
+
+- 총 주문금액이 12만원 미만일 때, 총 혜택금액 구하는 테스트
+
+  - [x] 크리스마스+평일+특별
+  - [x] 크리스마스+평일
+  - [x] 크리스마스+주말
+  - [x] 평일+특별
+  - [x] 주말
+  - [x] 크리스마스+특별
+  - [x] 특별
+
+- 예상 결제 금액 계산 테스트
+
+  - [x] 혜택이 없으면 총 주문금액을 반환한다.
+  - [x] 증정 이벤트가 없으면 총 금액에서 혜택 금액을 뺀다.
+  - [x] 증정 이벤트가 있으면 샴페인 값을 빼고 계산한다.
+
+- 12월 이벤트 배지 테스트
+  - [x] 총 혜택금액이 5,000원 이상이면 "별" 배지를 반환한다.
+  - [x] 총 혜택금액이 10,000원 이상이면 "트리" 배지를 반환한다.
+  - [x] 총 혜택금액이 20,000원 이상이면 "산타" 배지를 반환한다.

리뷰: 정성들여 작성하신게 느껴지는 README네요 👍