작성
·
129
0
연관관계에서 각종 생성, 조회 등에 대해서 배울 수 있어서 좋았습니다.
그런데, 생성에 대해서 궁금증이 생겼는데요
예를 들어 주문 서비스를 만들 때 주소가 간단하다면 주소 객체를 생성과 삽입이 주문 서비스 내에서 처리가 가능합니다
(여기서 Address는 엔티티라고 가정하겠습니다!)
Address address = new Address();
address .setCity("seoul");
address .setZipCode("123123");
order.setAddress(address);
이런식으로 주문 Service에 Address 객체를 생성해서 set하면 됩니다
그런데, 혹시 Address가 너무 복잡한 로직이 필요해서
Address address = AddressService.makeAddress(addressDto);
이렇게 서비스를 한번 거쳐서 주소를 입력하도록 만든다면....
다음 중에 어떤 방식으로 구현하는게 맞을까요?
1. Controller에서 미리 Address를 만들고 주문 서비스의 매개변수에 넣어준다
*OrderController.java
Address address = AddressService.makeAddress(addressDto);
OrderService.order(orderDto, address);
2. 주문 Service 안에서 Address를 만들어서 넣는다
*OrderService.java
Address address = AddressService.makeAddress(addressDto);
order.setAddress(address);
어느 방식이 효율적일지 질문드립니다~!
답변 1
0
안녕하세요. 찬수님
저는 사실 1,2번이 상황에 따라서 장단점이 있다 생각합니다.
2번 방식이 서비스 로직에서 이런 부분을 해결하기 때문에 더 선호됩니다.
그런데 파라미터를 서비스에 추가로 넘기고 Address를 만들어야 하기 때문에 서비스 객체가 복잡해집니다.
1번 방식을 사용하면 서비스 객체가 단순해지는 장점이 있습니다.
감사합니다.