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

김정배님의 프로필 이미지
김정배

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 검색 기능 개발

도메인에 정의된 메서드를 클라이언트 단에서 직접 접근할 경우 어떤 문제가 있나요?

작성

·

161

0

분명 강의중에 설명해주셨던 내용같은데,,, 넓은 범위를 복습하다보니 내용을 찾기가 어려워서 잘문 남깁니다.

 

강의 내용에서는 주문을 생성할 때, orderService 계층의 order() 메서드를 호출하여 orderItem 을 생성하고, 이는 내부적으로 createOrder 를 다시 호출해서 디비에 저장되는 식으로 코드를 짰습니다.

 

그런데 문득 클라이언트 단에서(예를 들어 controller 계층에서) order.createOrder 를 직접 접근하면 어떤 문제들이 있을지가 궁금해졌습니다.

예릃 들어 아래 제 테스트 코드 처럼요.

이런 설계가 안좋아보이긴 하나, 마땅히 생각나는 문제가 없어서 질문드립니다.

@Test
@DisplayName("Direct access thru Order Domain")
@Transactional
@Rollback(value = false)
public void directAccess(){
    Item bread = new Bread(
            "red bean", 100, 2000, "a", BreadSize.LARGE
    );
    itemService.createItem(bread);

    Order order = new Order();
    orderService.createOrder(order);
    OrderItem orderItem = OrderItem.createOrderItem1(bread, bread.getItemPrice(), 20);
    order.addOrderItem1(orderItem);
}



답변 1

0

안녕하세요. 정배님, 공식 서포터즈 y2gcoder입니다.

문제가 있느냐고 물어보시면 문제가 있지는 않습니다 :)

다음 링크(클릭)의 AI 답변과 링크들을 읽어보시길 권해드립니다!

감사합니다.

김정배님의 프로필 이미지
김정배

작성한 질문수

질문하기