diff --git a/README.md b/README.md
index c31ca54c..90d2dcd7 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,18 @@
-# java-chicken-2019
\ No newline at end of file
+# java-chicken-2020-tdd
+
+## 기능 요구사항
+1. pos 프로그램을 통해 주문하기, 계산하기 기능을 실행할 수 있어야 한다.
+2. 테이블을 선택해 메뉴를 주문할 수 있어야 한다.
+ 1. 테이블을 구현한다.
+ 2. 메뉴를 구현한다.
+ 3. 번호에 맞게 테이블, 메뉴를 선택할 수 있어야 한다.
+ 4. 주문 수량을 정할 수 있어야 한다.
+ 1. 메뉴 당 주문 수량은 99개 이하여야 한다.
+3. 주문이 남아있는 테이블은 콘솔에 표시되어야 한다.
+4. 테이블 별 주문 내역을 통해 주문 내역을 계산해야 한다.
+ 1. 주문 내역을 표시해야 한다.
+ 2. 주문 내역에 따른 총 가격을 계산해야 한다.
+ 3. 총 가격을 할인 정책에 따라 계산 후 최종 가격을 표시해야 한다.
+ 1. 지불 방식 별 할인 정책을 세울 수 있어야 한다.
+ 2. 주문 내역에 따라 할인 정책을 세울 수 있어야 한다.
+ 4. 결제가 불가능할 경우 예외처리가 필요하다.
diff --git a/build.gradle b/build.gradle
index 5aa86890..b946ffea 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,4 +11,8 @@ repositories {
dependencies {
testCompile('org.junit.jupiter:junit-jupiter:5.5.2')
testCompile('org.assertj:assertj-core:3.14.0')
+}
+
+test {
+ useJUnitPlatform()
}
\ No newline at end of file
diff --git a/src/main/java/Application.java b/src/main/java/Application.java
index ea0d34fd..4f244a06 100644
--- a/src/main/java/Application.java
+++ b/src/main/java/Application.java
@@ -1,21 +1,28 @@
-import domain.Menu;
-import domain.MenuRepository;
-import domain.Table;
-import domain.TableRepository;
+import java.util.Scanner;
+
+import controller.ChickenController;
+import controller.PageController;
+import domain.menu.MenuRepository;
+import domain.table.TableRepository;
+import service.MenuService;
+import service.PaymentService;
+import service.TableOrderService;
import view.InputView;
import view.OutputView;
-import java.util.List;
-
public class Application {
- // TODO 구현 진행
- public static void main(String[] args) {
- final List
tables = TableRepository.tables();
- OutputView.printTables(tables);
+ public static void main(String[] args) {
+ MenuRepository menuRepository = new MenuRepository();
+ TableRepository tableRepository = new TableRepository();
+ InputView inputView = new InputView(new Scanner(System.in));
- final int tableNumber = InputView.inputTableNumber();
+ ChickenController chickenController = new ChickenController(inputView,
+ new OutputView(), new MenuService(menuRepository),
+ new PaymentService(tableRepository), new TableOrderService(tableRepository, menuRepository));
- final List