@@ -0,0 +1,196 @@
+# Christmas - 크리스마스 프로모션
+
+### Table of Contests
+
+1. [개요](#개요)
+2. [실행 전 주의 사항](#실행-전-주의-사항)
+3. [기능 요구 사항](#기능-요구-사항)
+4. [프로그래밍 요구 사항](#프로그래밍-요구-사항)
+5. [라이브러리](#라이브러리)
+6. [요청 내용](#요청-내용)
+7. [기능 구현 목록](#기능-구현-목록)
+
+---
+
+# 개요
+
+이 프로젝트는 `Node.js`를 사용하여 크리스마스 프로모션 진행을 구현하는 미션입니다. 중복된 할인과 증정을 활용하여 고객들에게 혜택을 제공하고 실질적으로 체감하여 최고 판매 금액을 달성하며 내년 이벤트를 유도하는 것입니다.
+
+## 실행 전 주의 사항
+
+1. 테스트 패키지 설치를 위해 `Node.js` 버전이 18.17.1 이상이여야 합니다.
+2. 실행 전 `@woowacourse/mission-utils` 라이브러리를 설치해야 합니다.
+
+```jsx
+npm i @woowacourse/mission-utils
+```
+
+## 기능 요구 사항
+
+1. 식당 방문 날짜를 입력받습니다.
+2. 주문하는 메뉴와 개수를 입력받습니다.
+3. 입력 받은 값을 기준으로 주문 제뉴, 할인 전 총주문 금액, 증정 메뉴, 혜택 내역, 총 혜택 금액, 할인 후 예상 결제 금액, 12월 이벤트 배지 내용 순서로 출력합니다.
+4. 총 혜택 금액에 따라 이벤트 배지의 이름을 다르게 출력합니다.
+5. 혜택 내역은 고객에게 적용된 이벤트 내역만 출력하며, 적용된 이벤트가 없다면 `없음`으로 출력합니다.
+
+## 프로그래밍 요구 사항
+
+1. `Node.js 18.17.1` 버전에서 실행 가능해야 합니다.
+2. 프로그램 실행의 시작점은 `App.js`의 `play 메서드`입니다.
+3. 프로그램 종료 시 `process.exit()`를 호출하면 안됩니다.
+4. 프로그램 구현이 완료되면 ApplicationTest의 모든 테스트가 통과되어야 합니다.
+5. `package.json`를 변경할 수 없고 외부 라이브러리(jQuery, Lodash 등)를 사용하지 않고 순수 Vanilla JS로 구현합니다.
+6. 코드 컨벤션은 JavaScript 코드 컨벤션을 따라야 합니다.
+7. `indent depth`는 2까지만 허용한다.
+8. `Jest`를 사용하여 본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다.
+9. 함수(또는 메서드)의 길이는 15라인을 넘어가지 않아야 하며, 한 가지 일만 잘하도록 구현해야 합니다.
+10. `else`를 지양하고 `if` 조건절에서 값을 `return`하여 구현합니다.
+11. 핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분합니다.
+12. 도메인 로직에 단위 테스트를 구현합니다. 단, UI(`Console.readLineAsync`, `Console.print`) 로직에 대한 단위 테스트는 제외해야 합니다.
+13. `@woowacourse/mission-utils`에서 제공하는 `Random` 및 `Console` API를 사용하여 구현해야 합니다.
+14. 제공되는 `InputView`, `OutputView` 객체를 활용해 구현합니다.
+  - 입력과 출력을 담당하는 객체를 별도로 구현한다.
+  - InputView, OutputView의 파일 경로는 변경할 수 있다.
+  - InputView, OutputView의 메서드의 이름과 인자는 필요에 따라 추가하거나 변경할 수 있다.
+  - 값 출력을 위해 필요한 메서드를 추가할 수 있다.
+
+## 라이브러리
+
+- `@woowacourse/mission-utils`에서 제공하는 `Random` 및 `Console` API를 사용합니다.
+
+---
+
+# 요청 내용
+
+## 이벤트 목표
+
+1. 중복된 할인과 증정을 허용하여 고객들이 혜택을 최대한 누릴 수 있도록 합니다.
+2. 12월에 최고의 판매 금액을 달성합니다.
+3. 12월 이벤트에 참여한 고객 중 5%가 내년 1월 새해 이벤트에 재참여하도록 유도합니다.
+
+## 12월 이벤트 계획 
+
+### 크리스마스 디데이 할인
+- 이벤트 기간: 2023.12.1 ~ 2023.12.25
+- 할인 금액: 1,000원에서 시작하여 매일 100원씩 증가 (25일까지)
+- 총주문 금액에서 해당 금액만큼 할인
+
+### 평일 할인
+- 이벤트 기간: 2023.12.1 ~ 2023.12.31
+- 할인 대상: 디저트 메뉴 (1개당 2,023원 할인)
+
+### 주말 할인
+- 이벤트 기간: 2023.12.1 ~ 2023.12.31
+- 할인 대상: 메인 메뉴 (1개당 2,023원 할인)
+
+### 특별 할인
+- 이벤트 기간: 2023.12.1 ~ 2023.12.31
+- 할인 대상: 이벤트 달력에 별이 있는 날 (1,000원 할인)
+
+### 증정 이벤트
+- 이벤트 기간: 2023.12.1 ~ 2023.12.31
+- 할인 전 총주문 금액이 12만 원 이상일 때, 샴페인 1개 증정
+
+### 이벤트 배지
+- 총혜택 금액에 따라 배지 부여
+  - 5천 원 이상: 별
+  - 1만 원 이상: 트리
+  - 2만 원 이상: 산타
+
+## 고객에게 안내할 이벤트 주의 사항
+1. 총주문 금액 10,000원 이상부터 이벤트가 적용됩니다.
+2. 음료만 주문 시, 주문할 수 없습니다.
+3. 메뉴는 한 번에 최대 20개까지만 주문할 수 있습니다.
+4. 중복 메뉴 주문 시 에러 메시지를 표시합니다.
+
+---
+
+## 개발 요청사항
+1. 고객이 식당 방문 날짜와 메뉴를 미리 선택하면 이벤트 플래너가 다양한 정보를 제공합니다.
+2. 예상 방문 날짜는 1 이상 31 이하의 숫자로만 입력 가능합니다.
+3. 주문 메뉴의 유효성을 체크하고, 에러 메시지를 출력합니다.
+4. 총혜택 금액에 따라 이벤트 배지를 다르게 표시합니다.
+
+
+## 기능 구현 목록
+
+### 식당 예상 방문 날짜 입력
+
+- 입력 전 `12월 중 식당 예상 방문 날짜는 언제인가요? (숫자만 입력해 주세요!)`라는 메시지가 출력되어야 한다.
+- 사용자는 1~31 사이의 숫자로 입력할 수 있다.
+- 사용자가 잘못된 값을 입력할 경우, `[ERROR] 유효하지 않은 날짜입니다. 다시 입력해 주세요.` 라는 메시지를 출력하고 재입력 할 수 있다.
+- 에러를 발생시키는 목록
+  - 1~31 사이 숫자가 아닌 모든 값
+    - 공백(사이 공백 포함)
+    - 소수점
+    - 문자
+    - 음수
+
+### 주문할 메뉴와 개수 입력
+
+- 입력 전 `주문하실 메뉴를 메뉴와 개수를 알려 주세요. (e.g. 해산물파스타-2,레드와인-1,초코케이크-1)`라는 메시지가 출력되어야 한다.
+- 사용자는 `메뉴-개수`로 입력 받는다.
+- 사용자가 잘못된 값을 입력할 경우, `[ERROR] 유효하지 않은 주문입니다. 다시 입력해 주세요.`라는 메시지를 출력하고 재입력 할 수 있다.
+- 에러를 발생 시키는 경우
+  - 메뉴 형식이 예시와 다른 경우
+  - 메뉴판에 없는 메뉴를 입력한 경우
+  - 메뉴의 개수가 숫자가 아닌 경우
+  - 중복 메뉴를 입력한 경우
+  - 20개 초과로 주문한 경우
+  - 음료만 주문한 경우
+  - 0개의 메뉴를 주문한 경우
+
+### 혜택 미리 보기 출력
+
+- 입력받은 날짜를 기준으로 `12월 n일에 우테코 식당에서 받을 이벤트 혜택 미리 보기!`라는 메시지가 출력되어야 한다.
+
+### 주문 메뉴 출력
+
+- 입력받은 메뉴와 개수가 출력되어야 한다.
+
+### 할인 전 충주문 금액
+
+- 입력받은 메뉴와 개수를 바탕으로 금액을 계산하여 출력되어야 한다.
+
+### 증정 메뉴 출력
+
+- 할인 전 총 주문 금액이 12만원 이상일 때 `샴페인 1개` 라는 메시지가 출력되여야 한다.
+- 12만원이 넘지 않을 경우 `없음`이라는 메시지가 출력되어야 한다.
+
+### 혜택 내역 출력
+
+- 1만원이 넘지 않을 경우 `없음`이라는 메시지가 출력되어야 한다.
+- 1만원이 넘을 경우 다음과 같은 할인 혜택이 적용되며 할인 혜택 내역이 출력되어야 한다.
+  - 할인 혜택 내역이 출력되어야 한다.
+    - 크리스마스 디데이 할인
+      - 할인 적용 기간 : 2023.12.01 ~ 2023.12.25
+      - 1일에 1,000원을 기준으로 크리스마스에 다가올수록 날마다 할인 금액이 100원 증가하여 할인이 적용되어야 한다.
+      - 할인이 적용되면 `크리스마스 디데이 할인 : -O,OOO원` 메시지가 출력되어야 한다.
+    - 평일 할인
+      - 기간 : 일요일부터 목요일까지 (12월)
+      - 디저트 메뉴 1개당 2,023원 할인이 적용되어야 한다.
+      - 할인이 적용되면 `평일 할인 : -O,OOO원` 메시지가 출력되어야 한다.
+    - 주말 할인
+      - 기간 : 금요일, 토요일 (12월)
+      - 메인 메뉴 1개당 2,023원 할인이 적용되어야 한다.
+      - 할인이 적용되면 `주말 할인 : -O,OOO원` 메시지가 출력되어야 한다.
+    - 특별 할인
+      - 기간 : 매주 일요일, 크리스마스 (12월)
+      - 총 추문 금액에서 1,000원이 할인 적용되어야 한다.
+      - 할인이 적용되면 `특별 할인: -1,OOO원` 메시지가 출력되어야 한다.
+    - 증정 이벤트
+      - 기간 : 12월
+      - 12만원이 넘을 경우 샴페인 1개가 증정된다.
+      - 할인이 적용되면 `증정 이벤트: -25,000원` 메시지가 출력되어야 한다.
+
+### 총 혜택 내역 출력
+
+- 할인 혜택이 적용된 금액의 합산된 값이 출력되어야 한다.
+
+### 할인 후 예상 결제 금액
+
+- 할인 전 총주문 금액에서 총혜택 금액을 뺀 값이 출력되어야 한다.
+
+### 12월 이벤트 배지 출력
+
+- 총 혜택 금액에 따라 `별`, `트리`, `산타`를 출력한다.
\ No newline at end of file

리뷰: 핵심기능을 어떤걸로 판단하셨는지 궁금합니다!