공부하는 안경딸기
[Retrofit2] retrofit response 가 null, 0 본문
(결론은 맨 아래로)
어쩌다 보니 front에서 back으로 데이터를 요청하는 코드도 구성하게 되었다.
그래서 사용한 기술이 Retrofit2라는 기술인데 이게 안드로이드를 개발할 때 REST API를 보다 쉽게 사용할 수 있게 해준다고 한다.
잘 모르는 Kotlin이랑 Retrofit2를 사용하느라고 떠듬떠듬해서 잘 따라가고 있었는데 이상한 문제를 만났다.
GET을 통해서 데이터를 가져오는데 데이터 값이 다 null, 0 이런 식으로 만 넘어왔다.
처음에는 back에서 보내는 값이 문제인 줄 알고 back의 소스코드를 쥐 잡듯이 뒤져봤는데 딱히 문제는 없었다. 그렇다면 JSON 형식이 이상한가 해서 JSON 반환 값도 봤는데 여기도 문제가 없었고... 계속 생각하다가 DTO 파일을 확인해봐야겠다는 생각이 어제 자기 전에 딱 들었다. 그래서 오늘 하루 종일 DTO 파일을 back과 같이 만들고 진행했다.
그러다가 내가 처한 상황이랑 똑같은 상황에 직면한 사람이 쓴 글을 찾았다. (외국 사이트인 것 같은데 억지로 번역해놔서 읽기 더 힘들어...)
https://www.python2.net/questions-188979.htm
결론을 말하자면 JSON의 KEY 이름이랑 Kotlin의 DTO의 value 이름이 일치해야 했다. 나는 완전 다르게 적어놔서 JSON으로 값을 가져와도 어디에 넣어야 할지 모르고 있었던 거다. 그래서 @SerializedName("XXX")을 사용해서 JSON의 KEY값을 알 수 있게 해 줬다. (애초에 back에 만들어둔 변수명이 마음에 안 들어서 front의 Data Class에는 이쁘게 잘 만들어서 바로 알 수 있는데 망친 변수명으로 돌아가기는 그래서...)