-
[TIL] Controller 에서 Entity 를 그냥 반환하면 안되는 이유 2가지TIL(Today I Learned) 2023. 1. 30. 20:05
*20230130의 회고
저번 프로젝트를 진행하던 도중 Entity를 Controller에서 그대로 반환하니 계속해서 Entity 를 반환하게 되는 무한루프에 빠지는 모습을 보게 되었다. 그 이유는 Entity 객체가 다른 Entity 객체를 참조하고 있기 때문이었는데, 이를 계기로 Controller 에서 Entity를 그냥 반환하면 안되는 이유에 대해서 정리해보려 한다.
1. Controller 에서는 Entity 를 JSON 으로 변환해서 반환할 텐데, 객체가 객체를 가지고 있으면 계속해서 서로의 toString()을 호출하기 때문에 무한루프에 빠지게 된다. 따라서 Entity를 직접 반환하면 안된다.
2. Entity는 충분히 변경될 수 있다. 만약, 변경된다면 컨트롤러의 API 스펙이 모두 바뀌어야 함 -> 매우 번거로운 일
=> 따라서 Entity 를 직접 반환하지 말고 DTO(Data Transfer Object)를 반환하도록 하자!
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] @Builder 와 @NoArgsConstructor, @AllArgsConstructor (0) 2023.02.14 [TIL] Builder 패턴 사용하기 (0) 2023.02.13 [TIL] 엔티티와 테이블의 차이 (0) 2023.01.26 [TIL] DTO에 왜 @Getter 어노테이션이 필요할까...? (0) 2023.01.18 [TIL] 인프런 JPA 프로그래밍 기본 강의내용 요약 (0) 2023.01.17