티스토리 뷰
이번 주에는 지난주에 마무리를 하지 못했던 지하철 관련 API를 적용하여 작업은 하였습니다.
처음에는 실시간 도착 정보를 제거하고 시간표 기반 도착 시간을 표시하는 것으로 변경하려고 하였습니다.
그런데 제공하는 API는 전체 시간표를 페이지 처리하여 조회하는 형식이고 또한 상행/하행을 따로 조회를 해야 하는 구조입니다.
모든 조회를 하고 현재 시간에서 가장 가까운 시간표를 가져와야 하는데 서버 호출만 많아지고 별로 좋지 않은 방법이라 생각하였습니다.
그렇다고 모든 역에 대한 시간표를 미리 받아와서 앱에 저장하는 것 역시 과하다는 생각이 들었습니다.
결과적으로 둘 다 사용을 해야 하는데 어떻게 사용을 할까 고민을 하였습니다.
하얀색 영역이 서울특별시의 실시간 도착 정보를 제공하는 API에서 사용하는 코드이고
회색 영역이 서울교통공사의 API들에서 사용하는 코드입니다.
의정부를 예로 들면 하얀색에 1001000110이 StationId이고, 회색영역에서 1075가 StationCode, 110이 OuterCode입니다.
하얀색 키 조합을 보면 앞에 4자리 숫자는 호선을 의미하는 숫자이고 나머지가 외부 코드라는 걸 예측할 수 있습니다.
강남구청을 보면 1075075213 / K213으로 075213이 K의 아스키코드 값 75와 213이 결합되어 있습니다.
그런데 신설동을 보면 1092004713에서 4713은 StationCode의 값을 이용했습니다.
그래서 조합을 만들어서 사용하기에는 불안함이 생겨서 조합을 만드는 것은 포기하기로 하였습니다.
SUBWAY_ID,SUBWAY_NAME,STATN_ID,STATN_NM,STATN_CODE,OUTER_CODE
1001,1호선,1001000100,소요산,1916,100
1001,1호선,1001000101,동두천,1915,101
1001,1호선,1001000102,보산,1914,102
최종적으로 그냥 제가 두 테이블을 조합해서 데이터를 만들어서 사용하기로 결정하였습니다.
시간은 조금 걸리긴 했지만 이게 제일 확실한 방법이라 생각했습니다.
데이터가 해결되었기 때문에 다른 작업은 큰 문제없이 지행 할 수 있었습니다.
이렇게 해서 지하철 관련 화면들도 작업을 완료하였습니다.
다음 주에는 지금까지 작업한 내용들 포스팅과 Flutter로 교통화면 만들어보는 작업을 진행할 예정입니다.
'안드로이드 > 일기' 카테고리의 다른 글
2023년 3월 5주차 일기 (0) | 2023.04.02 |
---|---|
2023년 3월 3주차 일기 (0) | 2023.03.19 |
2023년 3월 1주 차 일기 (0) | 2023.03.04 |
2023년 2월 4주차 일기 (0) | 2023.02.26 |
2023년 2월 3주차 일기 (0) | 2023.02.19 |
- Total
- Today
- Yesterday
- WebView
- Android
- 웹뷰
- Android Compose
- Fast api
- Compose QRCode Scanner
- Compose Naver Map
- compose
- Gradient
- Compose 네이버 지도
- Duplicate class found error
- Retrofit
- Kotlin
- 안드로이드 구글 지도
- Row
- 안드로이드
- WorkManager
- Compose BottomSheetDialog
- Worker
- Compose BottomSheet
- column
- Compose ModalBottomSheetLayout
- Duplicate class fond 에러
- 포켓몬 도감
- Pokedex
- Compose 네이버 지도 api
- Compose ConstraintLayout
- Compose MotionLayout
- Compose BottomSheetScaffold
- LazyColumn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |