JPA를 사용하면서 기본 지식들

윤재열·2022년 10월 27일
0

JPA

목록 보기
21/21
post-custom-banner

1. Entity와 Dto를 분리해야 하는 이유

  • Entity와 관련된 코드들은 많은데 비해 DTO의 경우는 상대적으로 적습니다.

  • 그런 상황에서 Entity는 변경될 가능성이 DTO에 비해 상대적으로 적습니다.

  • 만약 Entity를 Request,Response에 사용하게 되면 변경가능성이 높아지고 동시에 같이 변경되는 코드들이 늘어나기 때문에 코드 유지보수를 생각하였을때 Entity와 Dto를 분리해야합니다.

  • 간혹 DTO는 setter가 필요하고, Entity는 setter가 없어야 하기 때문이라고 착각할 수 있는데 DTO에 setter가 없어도 값이 잘들어옵니다.

  • JOSN 타입이 아닌 경우에는 Query Parameter를 사용할 때가 있는데 이 때는 Jackson2HttpMessageConverter가 아닌 Spring WebDataBinder를 사용합니다. 이는 기본적으로 JavaBean 방식을 쓰는데 이때는 setter가 필요합니다.

2. 생성자를 이용해 D.I를 하는 이유

  • Controller에서 Service를 필드주입,Setter 주입을 이용하여 DI를 진행할 경우, Controller에 테스트를 하기 위해 임의로 만든 Service객체를 주입하려고해도 방법이 다소 어렵습니다.
    • 그래서 생성자를 이용하여 new 를 이용하여 쉽게 테스트를 진행할 수 있습니다.
  • 스프링 레퍼런스에서도 생성자로 DI를 쓸 것을 권장하기도 하며, lombok 라이브러리의 @AllArgsConstructor를 이용할 수도 있습니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/
post-custom-banner

0개의 댓글