리액트를 공부하고 있는 요즘 최근 진행하였던 프로젝트의 jQuery 부분을 리액트로 변경하면서 리액트에 대한 이해도와 함께 숙련도를 올리고자 개인적으로 토이프로젝트를 진행하였다.
Spring Boot를 이용해 간단한 백엔드 서버를 만들고 테스트를 하던 중 데이터가 제대로 넘어오지 않는 상황이 발생하였다.
정확히는 서버는 정상응답이라고 데이터를 넘겼으나 내부를 보니 아무런 데이터가 없었다.
위와 같이 데이터의 갯수는 맞게 넘어오는데 **내용이 텅텅 빈 채**로 넘어왔다.문제의 원인은, 엔티티 선언부의 @Getter
어노테이션의 부재가 문제였었다.
필자의 짧은 지식으로 문제의 원인을 유추해보자면, 데이터는 정상적으로 가져왔으나. private
으로 선언된 필드로 인해, 이를 매핑해주는 jackson
이 엔티티 필드의 데이터에 접근할 수 없어, 매핑이 완료되었다고 판단하여 빈 껍데기만 전달해준게 아닌가 싶다.
문제의 원인을 더 정확히 알아보기 위해 jackson
에 대한 정리가 필요할 것 같다. 더해서 Spring이 관리하고 있는 객체의 정보를 넘겨주기 위해서는 개발자 스스로 Mapper를 생성하여 넘겨주지 않는 이상, Getter
메서드는 꼭 작성하는 코드를 작성할 수 있도록 해야겠다.
정말 간단한 문제였고, 사소한 실수로 인해 발생한 문제였지만 이를 해결하기 위해 2시간 가량이 걸렸던걸 생각하면 다시는 겪고싶지 않은 문제다.