[Spring Boot] Infinite recursion (StackOverflowError) 오류 날 때

KosMos·2023년 2월 8일



발생 원인

코드를 보면 알다시피 UserMember 클래스에 Account 변수가 있고, Account에 UserMember 변수가 있다.

그래서 Jackson 라이브러리에서 UserMember JSONObject를 만드는 도중 아래의 과정을 무한 반복하는 것이다.

UserMember 클래스의 getter 조회 -> getAuthorities를 실행해 List 반환받음 -> 각 Account 클래스의 getter 조회 -> getUserMember를 실행해 UserMember를 반환 받음 -> UserMember 클래스의 getter 조회 -> ...

@JsonIgnore 어노테이션을 추가하면 Jackson에서 JSONObject를 만들 때 해당 변수는 추가하지 않는다.

0개의 댓글