자, 일케 board를 응답하면 위험한 이유가 뭘까? Board 객체안에 있는 변수 필드의 값들을 json으로 변환하기 위해선 private이기 때문에 getter로 꺼내고, json으로 변환하는 메세지 컨버터라는 클래스가 작동해야 한다! 그러나! 지금 오픈인뷰가 true라서 getter로 때리면 레이지 로딩이 걸린다. 글쓰기를 했다고 가정하자. 그럼 Board 객체를 쓰고나서 이 Board 안에 필드로 있는 User 안 까지 모두 다 레이지 로딩으로 때려버림. 그밑에 존재하고 있는 Reply 필드도 다 레이지로딩으로 때리러 감. (근데 1번 게시글 안에는 유저 객체만 있고 댓글은 빈배열이라 왔다갔다 할 일 없어서 여기까진 괜찮다.)
그런데 Reply 객체를 제이슨으로 변환하러고 때리러 가잖아? User user를 getter 때리고, Board board를 getter 때리고 다 때리면서 json 만들다가 폭발함 -> 무한 순환 참조. 왔다갔다하면서 json 만들다가 터져버림 (연관된 객체를 제이슨으로 다 파싱하다가... 죽어버림)
빈 배열은 이런 식으로 나온다!
Share article