Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
버스 API
지하철 API
tikxml ksp 미지원
경기도 API는 XML로 데이터를 보내주고 있어, tikxml라는 라이브러리를 이용해 데이터 클래스로 변환하고 있다.
분명히 이전에 잘 파싱된 것을 확인했는데, 저번 주부터 XML 데이터를 파싱하지 못하는 문제가 발생했다.
라이브러리 문제라고 생각해서 JaxB도 찾아보고, SimpleXML도 찾아봤지만, 변환이 잘 되지 않았다.
그래서 다시 tikxml를 사용하도록 롤백했다. 에러 문구를 다시 천천히 확인해보니 TypeAdapter가 생성되지 않았다는 말이 있었다.
Converter에 의해 Adapter가 자동 생성되어야 하는데, 되지 않았다는 것은 애노테이션과 관련된 문제라는 생각이 들어서 해당 라이브러리 문서를 찾아보니 Type Converter를 커스텀으로 직접 구현하는 부분에 대한 설명이 있었다.
https://github.com/Tickaroo/tikxml/blob/master/docs/AnnotatingModelClasses.md#type-converter
하지만... 직접 Adapter를 구현한다면 라이브러리를 사용하는 의미가 없다는 생각이 들어서 만들지는 않았다.
애노테이션 관련해서 변경한 부분이 무엇이 있을까 생각해보니 빌드 관련 설정을 바꿀 때 모두 ksp로 변경했었다.
그래서 kapt로 바꿔봤는데, 잘 동작한다.....
이 문제를 해결하기 위해 10시간 이상은 소비한 것 같은데... 너무 허무하다.
배운점이 있다면, 무조건 적인 마이그레이션은 피해야겠다는 점이다. 공식 문서에서 ksp로 변환하라는 글을 보고 바꿨던 건데, 이것이 문제가 될 줄은 몰랐다.
https://developer.android.com/build/migrate-to-ksp
공식 문서 설명에도 라이브러리가 KSP를 지원하는지 확인하라고 첫 문단에 Bold로 적어뒀지만, tikxml는 공식 라이브러리가 아니라는 생각에 안일하게 넘어갔던 것 같다....
해당 라이브러리가 KSP를 지원하도록 오픈 소스 기여를 하고 싶지만, 내 실력을 벗어나는 작업이고, 아직 취준 중이기 때문에 시간이 없다...
그래서 Issue에 지원을 부탁하는 글만 남겼다.
Tickaroo/tikxml#160