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

🚀 3단계 - 기능 우선 패키지 구성하기 #510

Open
wants to merge 12 commits into
base: sumiini
Choose a base branch
from
250 changes: 207 additions & 43 deletions README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.infra;
package kitchenpos.global.infra;

import org.springframework.stereotype.Component;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.infra;
package kitchenpos.global.infra;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.stereotype.Component;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.infra;
package kitchenpos.global.infra;

import java.math.BigDecimal;
import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.infra;
package kitchenpos.global.infra;

public interface PurgomalumClient {
boolean containsProfanity(String text);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package kitchenpos.application;
package kitchenpos.menu.application;

import kitchenpos.domain.Menu;
import kitchenpos.domain.MenuGroup;
import kitchenpos.domain.MenuGroupRepository;
import kitchenpos.domain.MenuProduct;
import kitchenpos.domain.MenuRepository;
import kitchenpos.domain.Product;
import kitchenpos.domain.ProductRepository;
import kitchenpos.infra.PurgomalumClient;
import kitchenpos.menu.domain.Menu;
import kitchenpos.menugroup.domain.MenuGroup;
import kitchenpos.menugroup.infra.MenuGroupRepository;
import kitchenpos.menu.domain.MenuProduct;
import kitchenpos.menu.infra.MenuRepository;
import kitchenpos.product.domain.Product;
import kitchenpos.product.infra.ProductRepository;
import kitchenpos.global.infra.PurgomalumClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.menu.domain;
Copy link

Choose a reason for hiding this comment

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

Menu 컨텍스트가 Product 컨텍스트를 직접 참조하고 있네요!
이 경우는 어떻게 풀어볼 수 있을까요?


import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
Expand All @@ -10,6 +10,7 @@
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import kitchenpos.menugroup.domain.MenuGroup;

import java.math.BigDecimal;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.menu.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand All @@ -10,6 +10,7 @@
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import kitchenpos.product.domain.Product;

import java.util.UUID;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package kitchenpos.domain;
package kitchenpos.menu.infra;

import kitchenpos.menu.domain.Menu;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package kitchenpos.domain;
package kitchenpos.menu.infra;
Copy link

Choose a reason for hiding this comment

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

Repository는 비즈니스 규칙을 반영하기에 infra 레이어가 적합하지 않은 것 같아요🧐


import kitchenpos.menu.domain.Menu;

import java.util.List;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.ui;
package kitchenpos.menu.ui;

import kitchenpos.application.MenuService;
import kitchenpos.domain.Menu;
import kitchenpos.menu.application.MenuService;
import kitchenpos.menu.domain.Menu;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.application;
package kitchenpos.menugroup.application;
Copy link

Choose a reason for hiding this comment

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

Menu와 MenuGroup을 다른 컨텍스트로 분리하신 이유가 궁금해요!


import kitchenpos.domain.MenuGroup;
import kitchenpos.domain.MenuGroupRepository;
import kitchenpos.menugroup.domain.MenuGroup;
import kitchenpos.menugroup.infra.MenuGroupRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.menugroup.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package kitchenpos.domain;
package kitchenpos.menugroup.infra;

import kitchenpos.menugroup.domain.MenuGroup;
import kitchenpos.menugroup.infra.MenuGroupRepository;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package kitchenpos.domain;
package kitchenpos.menugroup.infra;

import kitchenpos.menugroup.domain.MenuGroup;

import java.util.List;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.ui;
package kitchenpos.menugroup.ui;

import kitchenpos.application.MenuGroupService;
import kitchenpos.domain.MenuGroup;
import kitchenpos.menugroup.application.MenuGroupService;
import kitchenpos.menugroup.domain.MenuGroup;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package kitchenpos.application;
package kitchenpos.order.application;

import kitchenpos.domain.Menu;
import kitchenpos.domain.MenuRepository;
import kitchenpos.domain.Order;
import kitchenpos.domain.OrderLineItem;
import kitchenpos.domain.OrderRepository;
import kitchenpos.domain.OrderStatus;
import kitchenpos.domain.OrderTable;
import kitchenpos.domain.OrderTableRepository;
import kitchenpos.domain.OrderType;
import kitchenpos.infra.KitchenridersClient;
import kitchenpos.menu.domain.Menu;
import kitchenpos.menu.infra.MenuRepository;
import kitchenpos.order.domain.Order;
import kitchenpos.order.domain.OrderLineItem;
import kitchenpos.order.infra.OrderRepository;
import kitchenpos.order.domain.OrderStatus;
import kitchenpos.ordertable.domain.OrderTable;
import kitchenpos.ordertable.infra.OrderTableRepository;
import kitchenpos.order.domain.OrderType;
import kitchenpos.global.infra.KitchenridersClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.order.domain;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
Expand All @@ -12,6 +12,7 @@
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import kitchenpos.ordertable.domain.OrderTable;

import java.time.LocalDateTime;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.order.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand All @@ -10,6 +10,7 @@
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import kitchenpos.menu.domain.Menu;

import java.math.BigDecimal;
import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.order.domain;
Copy link

Choose a reason for hiding this comment

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

모델링을 하실 때, 주문 유형별로 모델링을 분리해보셨는데,
컨텍스트별로 의미가 구분됐던 것 같아요. 분리해볼 수 있지 않을까요? :)


public enum OrderStatus {
WAITING, ACCEPTED, SERVED, DELIVERING, DELIVERED, COMPLETED
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.order.domain;

public enum OrderType {
DELIVERY, TAKEOUT, EAT_IN
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package kitchenpos.domain;
package kitchenpos.order.infra;

import kitchenpos.order.domain.Order;
import kitchenpos.order.infra.OrderRepository;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
package kitchenpos.domain;
package kitchenpos.order.infra;

import kitchenpos.ordertable.domain.OrderTable;
import kitchenpos.order.domain.Order;
import kitchenpos.order.domain.OrderStatus;

import java.util.List;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.ui;
package kitchenpos.order.ui;

import kitchenpos.application.OrderService;
import kitchenpos.domain.Order;
import kitchenpos.order.application.OrderService;
import kitchenpos.order.domain.Order;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package kitchenpos.application;
package kitchenpos.ordertable.application;
Copy link

Choose a reason for hiding this comment

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

OrderTable을 별도의 컨텍스트로 분리하신 이유도 궁금해요!


import kitchenpos.domain.OrderRepository;
import kitchenpos.domain.OrderStatus;
import kitchenpos.domain.OrderTable;
import kitchenpos.domain.OrderTableRepository;
import kitchenpos.order.infra.OrderRepository;
import kitchenpos.order.domain.OrderStatus;
import kitchenpos.ordertable.domain.OrderTable;
import kitchenpos.ordertable.infra.OrderTableRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.ordertable.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package kitchenpos.domain;
package kitchenpos.ordertable.infra;

import kitchenpos.ordertable.domain.OrderTable;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package kitchenpos.domain;
package kitchenpos.ordertable.infra;

import kitchenpos.ordertable.domain.OrderTable;

import java.util.List;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.ui;
package kitchenpos.ordertable.ui;

import kitchenpos.application.OrderTableService;
import kitchenpos.domain.OrderTable;
import kitchenpos.ordertable.application.OrderTableService;
import kitchenpos.ordertable.domain.OrderTable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package kitchenpos.application;
package kitchenpos.product.application;

import kitchenpos.domain.Menu;
import kitchenpos.domain.MenuProduct;
import kitchenpos.domain.MenuRepository;
import kitchenpos.domain.Product;
import kitchenpos.domain.ProductRepository;
import kitchenpos.infra.PurgomalumClient;
import kitchenpos.menu.domain.Menu;
import kitchenpos.menu.domain.MenuProduct;
import kitchenpos.menu.infra.MenuRepository;
import kitchenpos.product.domain.Product;
import kitchenpos.product.infra.ProductRepository;
import kitchenpos.global.infra.PurgomalumClient;
Copy link

Choose a reason for hiding this comment

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

productService가 인프라 레이어를 직접 참조하고 있군요.
비속어가 존재하는 지 확인하는 것은 모델링에서 도메인의 정책으로 명시를 했었는데
어떤 패키지에 존재해야 적합할까요?

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kitchenpos.domain;
package kitchenpos.product.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package kitchenpos.domain;
package kitchenpos.product.infra;

import kitchenpos.product.domain.Product;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package kitchenpos.domain;
package kitchenpos.product.infra;

import kitchenpos.product.domain.Product;

import java.util.List;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.ui;
package kitchenpos.product.ui;

import kitchenpos.application.ProductService;
import kitchenpos.domain.Product;
import kitchenpos.product.application.ProductService;
import kitchenpos.product.domain.Product;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down
18 changes: 9 additions & 9 deletions src/test/java/kitchenpos/Fixtures.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package kitchenpos;

import kitchenpos.domain.Menu;
import kitchenpos.domain.MenuGroup;
import kitchenpos.domain.MenuProduct;
import kitchenpos.domain.Order;
import kitchenpos.domain.OrderLineItem;
import kitchenpos.domain.OrderStatus;
import kitchenpos.domain.OrderTable;
import kitchenpos.domain.OrderType;
import kitchenpos.domain.Product;
import kitchenpos.menu.domain.Menu;
import kitchenpos.menugroup.domain.MenuGroup;
import kitchenpos.menu.domain.MenuProduct;
import kitchenpos.order.domain.Order;
import kitchenpos.order.domain.OrderLineItem;
import kitchenpos.order.domain.OrderStatus;
import kitchenpos.ordertable.domain.OrderTable;
import kitchenpos.order.domain.OrderType;
import kitchenpos.product.domain.Product;

import java.math.BigDecimal;
import java.time.LocalDateTime;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kitchenpos.application;

import kitchenpos.infra.KitchenridersClient;
import kitchenpos.global.infra.KitchenridersClient;

import java.math.BigDecimal;
import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kitchenpos.application;

import kitchenpos.infra.PurgomalumClient;
import kitchenpos.global.infra.PurgomalumClient;

import java.util.Arrays;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kitchenpos.application;

import kitchenpos.domain.MenuGroup;
import kitchenpos.domain.MenuGroupRepository;
import kitchenpos.menugroup.domain.MenuGroup;
import kitchenpos.menugroup.infra.MenuGroupRepository;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down
Loading