• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@JsonIgnore 사용과 관련하여 질문드립니다.

22.11.24 09:25 작성 조회수 490

0

안녕하세요! @JsonIgnore 사용과 관련하여 궁금한 것이 있습니다.

API 결과를 반환할 때 엔티티를 바로 노출하지 않는 이유가 API 스펙의 안정화 및 순환참조 에러에 따른 Stackoverflow 에러를 방지하기 위함이라고 배웠는데요.

그런데 강의를 보면 domain에서 Delivery의 Order 와 Member의 Orders와 OrderItem의 Order에 여전히 @JsonIgnore를 사용하고 있네요.

DTO로 반환하는 경우와 별개로 늘 @JsonIgnore는 사용을 해줘야 하는 것인가요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.11.24

안녕하세요. JUNN님, 공식 서포터즈 y2gcoder입니다.

영한님의 강의 특성 상 단계를 진행해나가며 기존의 코드에서 개선하거나 보완하는 방향으로 나가는 경우가 많습니다. 그래서 api 엔드포인트들 중 v1이 들어가는 것들은 엔티티를 반환하는 경우들입니다. 이 때 위에서 말씀하신 부분을 방지하기 위해 @JsonIgnore를 그대로 넣어놓으신 것으로 보입니다.


감사합니다.

우선 답변 감사합니다!

저도 y2gcoder님께서 하신 말씀대로 이해를 하고 있었고 그래서 @JsonIgnore 어노테이션을 다 지운 상태로 v2를 만들고 호출했더니 Stackoverflow 에러가 나더라구요. 그래서 제공해주신 소스코드를 보고 @JsonIgnore를 질문에서 명시한 곳에 추가를 했더니 그 때부터는 v2를 호출해도 Stackoverflow 에러가 안 나더라구요.

혹시 이 부분은 왜 그런 것일까요?

y2gcoder님의 프로필

y2gcoder

2022.11.24

저도 y2gcoder님께서 하신 말씀대로 이해를 하고 있었고 그래서 @JsonIgnore 어노테이션을 다 지운 상태로 v2를 만들고 호출했더니 Stackoverflow 에러가 나더라구요. 그래서 제공해주신 소스코드를 보고 @JsonIgnore를 질문에서 명시한 곳에 추가를 했더니 그 때부터는 v2를 호출해도 Stackoverflow 에러가 안 나더라구요.

 

v2를 호출하셨는데 그러셨다면 혹시 디버깅해보시겠습니까?

디버깅이 어려우시다면 제게 프로젝트 공유를 부탁드리겠습니다.

 

y2gcoder님의 프로필

y2gcoder

2022.11.24

안녕하세요. JUNN님, 공식 서포터즈 y2gcoder입니다.


전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.

구글 드라이브 업로드 방법 링크

주의: 업로드시 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

https://drive.google.com/file/d/11xi8R0tuk8EkYzHHvSr5ob5lWnpPvQ4T/view?usp=sharing

링크를 보내드립니다.

 

  1. 실행방법은 로컬 환경에서 인텔리제이로 실행해서 돌렸습니다.

  2. 제공해주신 소스코드의 domain 패키지를 보고 @JsonIgnore 어노테이션을 제 프로젝트의 domain 패키지의 클래스에 추가하였던 것을 주석처리 해놓았습니다. OrderApiController에서 V2를 호출하였을 시 스택오버플로우 에러가 나는 것을 확인하시고 이에 대한 해결방법을 알려주시면 감사하겠습니다.

 

감사합니다.

y2gcoder님의 프로필

y2gcoder

2022.11.24

image

이렇게 화면이 뜨고 있는데 혹시 한 번 더 요청 드려도 될까요?

 

아 그런데 파일을 보내놓고 JsonIgnore를 다 주석처리한 상태에서 V2를 제가 다시 호출하니 이제는 스택오버플로우 에러가 안 나고 정상적으로 응답이 오네요!

그래도 한 번 다시 파일을 보내드릴까요?

y2gcoder님의 프로필

y2gcoder

2022.11.24

저도 뭔가 꼬인게 있나 하고 파일 요청드린 거라.. 빌드 다시 해서 괜찮으신거면 다행입니다 :)