Avatar 창조적이고 생산적이고 싶은 개발자

#6 JPA 실무 - 컨트롤러 구현

Entity를 Controller에서 직접 받거나 model attribute로 내려주면?

  • Validation 어노테이션 등으로 지저분해짐
  • 화면을 보여주기 위한 코드로 인해서 지저분해짐
  • 실제로 Entity를 받을 만큼 심플한 로직은 잘 없음
  • Entity는 최대한 순수하게 핵심 로직에만 디펜던시를 가지도록 설계해야 유연한 엔티티가 가능해짐.
  • api는 절대 엔티티를 반환하지 않는다.

controller에서 service 호출 시 Entity vs ID

  • Controller에서 엔티티에 대한 의존관계를 가지지 않는게 좀 더 유연하게 코드를 작성할 수 있음
  • 커맨드 성 메소드의 경우는 Transaction, 영속성 컨텍스트 관리 차원에서도 서비스 레벨에서 엔티티를 조회하는게 더 좋음
  • 조회는 어떻게 해도 되지만 되도록이면 엔티티는 서비스에서 영속성 관리를 하는 것으로