도리안의 2025년 개발기 #174 - 유닛 테스트에서 발생했던 API 연동 오류

유닛 테스트에서 발생했던 API 연동 오류

No. 174
2025. 10. 24 (금) | Written by @dorian-dev

오늘의 개발기

나는 개발하면서 유닛 테스트를 하고 있고, 특별한 문제가 없는 한 그렇게 하고 있다. 이번에 개발하는 앱은 동료가 개발했던 것이라 테스트 환경을 새로 구성했다. API 연동 함수들을 만들었고, 그 중 하나를 테스트 했다. 결과는...... 아래와 같은 오류가 발생했다.

NetworkError(networkErrorType=SerializationError, messageTitle=null, message=Fields [mission_idx, mission_name, mission_desc, reward_ticket, icon_path, status, progress_rate] are required for type with serial name '(package).EventMissionEntity', but they were missing at path: $.result.data.result.lists[0])

그냥 봐서는 뭐가 잘못되었는지 이해할 수 없었다. 도대체 무엇이 잘못된 것인지... 나중에 알게 된 원인은 API 연동 함수의 리턴 타입이 잘못되었기 때문이었다. API가 여러개 있었고, 응답 JSON 데이터들의 포맷들이 비슷했다. 이들의 데이터 클래스 이름들도 비슷할 수 밖에 없었고, 혼동스러울 수 밖에 없었다. 유닛 테스트 단계에서 머물러 있었다면, 개발이 진행되지 않는 문제가 있었다. 일단 화면에서 데이터를 읽는 코드를 작성하고 디버그 테스트를 해보았다. 그 과정에서 API 연동 함수의 리턴 타입이 잘못되었다는 것을 알았다. 엉뚱한 타입을 선택한 것이었다. 다행히 원인을 빨리 찾고 해결했다.

과거를 되돌아보니 위와 같은 NetworkError는 경험한 적이 없었다. 최근 1년 동안에는 여러 API들을 한꺼번에 연동할 필요가 없었기 때문이었다. 하나씩 구현하면 되었으니 그런 오류를 만날 기회조차 없었다. 이번 시행착오를 앞으로도 또 겪을 수 있으니 잘 정리해 두자.


지난 2025년 개발기


Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Sort:  

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-dev님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.079
BTC 63264.99
ETH 1671.73
USDT 1.00
SBD 0.42