공부하는 안경딸기

[Retrofit2] retrofit response 가 null, 0 본문

TanTanBody

[Retrofit2] retrofit response 가 null, 0

안경딸기 2021. 10. 4. 21:37

(결론은 맨 아래로)

 

어쩌다 보니 front에서 back으로 데이터를 요청하는 코드도 구성하게 되었다.

그래서 사용한 기술이 Retrofit2라는 기술인데 이게 안드로이드를 개발할 때 REST API를 보다 쉽게 사용할 수 있게 해준다고 한다.

 

잘 모르는 Kotlin이랑 Retrofit2를 사용하느라고 떠듬떠듬해서 잘 따라가고 있었는데 이상한 문제를 만났다.

GET을 통해서 데이터를 가져오는데 데이터 값이 다 null, 0 이런 식으로 만 넘어왔다.

처음에는 back에서 보내는 값이 문제인 줄 알고 back의 소스코드를 쥐 잡듯이 뒤져봤는데 딱히 문제는 없었다. 그렇다면 JSON 형식이 이상한가 해서 JSON 반환 값도 봤는데 여기도 문제가 없었고... 계속 생각하다가 DTO 파일을 확인해봐야겠다는 생각이 어제 자기 전에 딱 들었다. 그래서 오늘 하루 종일 DTO 파일을 back과 같이 만들고 진행했다.

 

그러다가 내가 처한 상황이랑 똑같은 상황에 직면한 사람이 쓴 글을 찾았다. (외국 사이트인 것 같은데 억지로 번역해놔서 읽기 더 힘들어...)

 

https://www.python2.net/questions-188979.htm

 

kotlin - 데이터 클래스에서 Retrofit respone null

코 틀린에 대한 초보자입니다. 내 첫 번째 프로젝트는 나머지 API를 소비하는 것입니다. 나는 이미 개조를 사용하여 만들었습니다. 그러나 응답을 로깅 할 때 문제가 있으며 데이터 클래스가 null

www.python2.net

 

결론을 말하자면 JSON의 KEY 이름이랑 Kotlin의 DTO의 value 이름이 일치해야 했다. 나는 완전 다르게 적어놔서 JSON으로 값을 가져와도 어디에 넣어야 할지 모르고 있었던 거다. 그래서 @SerializedName("XXX")을 사용해서 JSON의 KEY값을 알 수 있게 해 줬다. (애초에 back에 만들어둔 변수명이 마음에 안 들어서 front의 Data Class에는 이쁘게 잘 만들어서 바로 알 수 있는데 망친 변수명으로 돌아가기는 그래서...)

Comments