인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

조찬수님의 프로필 이미지
조찬수

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

값 타입 컬렉션 듣다가 생성 질문합니다~

작성

·

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번 방식을 사용하면 서비스 객체가 단순해지는 장점이 있습니다.

감사합니다.

조찬수님의 프로필 이미지
조찬수

작성한 질문수

질문하기