Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

막차 시간 계산 로직 변경 #4

Merged
merged 5 commits into from
Apr 12, 2024

Conversation

DoTheBestMayB
Copy link
Owner

@DoTheBestMayB DoTheBestMayB commented Mar 28, 2024

버스 API

  • 기존에 막차 시간을 잘못 계산하고 있던 로직 수정
  • 서울특별시_노선정보조회 서비스 API를 이용해 서울시와 경기도 노선 정보 조회 로직을 통합하려고 했으나, 일부 경기도 버스는 정보가 조회되지 않아, 서울시 버스 막차 시간 계산에만 활용하도록 적용

지하철 API

  • 지하철 막차 시간 조회를 위한 데이터 전처리 로직 수정

tikxml ksp 미지원

경기도 API는 XML로 데이터를 보내주고 있어, tikxml라는 라이브러리를 이용해 데이터 클래스로 변환하고 있다.
분명히 이전에 잘 파싱된 것을 확인했는데, 저번 주부터 XML 데이터를 파싱하지 못하는 문제가 발생했다.
라이브러리 문제라고 생각해서 JaxB도 찾아보고, SimpleXML도 찾아봤지만, 변환이 잘 되지 않았다.

그래서 다시 tikxml를 사용하도록 롤백했다. 에러 문구를 다시 천천히 확인해보니 TypeAdapter가 생성되지 않았다는 말이 있었다.

com.tickaroo.tikxml.TypeAdapterNotFoundException: No TypeAdapter for class com.stop.data.remote.model.route.gyeonggi.GyeonggiBusStationIdResponse found. Expected name of the type adapter is

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

@DoTheBestMayB DoTheBestMayB self-assigned this Mar 28, 2024
@DoTheBestMayB DoTheBestMayB linked an issue Mar 28, 2024 that may be closed by this pull request
@DoTheBestMayB DoTheBestMayB merged commit d4bf09f into develop Apr 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

막차 계산 로직 간소화, 사용하는 API 점검
1 participant