Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 1.45 KB

Entity-대신-DTO로-반환.md

File metadata and controls

17 lines (10 loc) · 1.45 KB

Entity 대신 DTO로 반환

클라이언트에 데이터를 반환할 때는 다음과 같은 이유로 Entity를 그대로 반환하지 말고 DTO로 변환해서 반환하는 것이 좋다.

  1. 클라이언트에 Entity를 반환하면 클라이언트가 Entity를 알게 되고, Entity의 변경이 클라이언트에 직접 영향을 미친다.

    • DTO를 써서 둘을 분리해서 간접화하고 변경 영향 범위를 좁히는 것이 좋다.
  2. Entity는 해당 Entity의 모든 정보를 담고 있으므로 정보 과노출

    • DTO로 필요한 항목만 골라서 반환하는 것이 좋다.
  3. 양방향 연관관계가 있는 Entity는 JSON으로 직렬화하다가 무한루프 발생

특히 2번 항목의 경우 처음에는 양방향 관계가 없어서 그냥 Entity로 반환해도 전혀 문제가 없다가, 나중에 양방향 연관관계가 추가되면 잘 돌던 코드 여기저기서 JSON 직렬화하다가 무한루프가 발생할 수 있다. 그리고 이미 DTO를 써야할 곳에도 Entity가 사용되고 있고, Entity를 써야할 곳에도 Entity가 사용되고 있어서 찾기도 고치기도 힘들다.

따라서 처음부터, 무조건 DTO를 반환하게 기준을 잡는 것이 좋다.