

😄 수정 후 이번역 Page





😄 [침수 피해 DB작업] 길동역, 연신내역, 대방역의 침수 피해 여부

ex. 현재 위치 - 침수 피해가 있어 문구 표시Oex. 강릉 & 군자역 - 침수 피해가 없어 문구 표시X실시간 날씨 안내의 경우 기상청 초단기예보 API를 사용했다. 최근 날씨가 시간 단위로 계속 바뀌기 때문에 현재 시간을 포함해 최대 2시간 후의 날씨를 안내했다.
날씨와 더불어 추가로 제공하는 정보로는 시간당 강수량, 하늘 상태, 강수 형태, 낙뢰, 풍속을 함께 제공했다.
날씨의 경우 대한민국 기준으로 시간을 설정해야 했는데 Local에서는 문제 없이 test가 진행되었으나, 서버에서는 코드가 UTC기준으로 실행되는 오류가 발생했다.
원인파악 결과, Timezone error로 발생코드가 실행되지 않는 오류였고 직접 9시간을 더해 전송했다.
또한, 간헐적으로 timeout error가 나기도 했다. 자전거 대여 API와 동일한 error였고, 정상적으로 호출될 경우 평균적으로 1초 내외로 호출되는것을 확인했다.
OkHttpClient 시간을 1초로 줄인 뒤 for문을 10번 돌려 정상적으로 호출될 경우 바로 종료되게끔 로직을 수정해 오류의 빈도수를 최소화했다.
이 경우를 대비하기 위해 BE와 FE 모두 데이터 캐싱 작업을 진행했다.
주고 받는 데이터를 간소화하여 회원간 호출하는 데이터가 최대한 비슷하게끔 보완했다.
다른 문제점으로는 기상청에서 요구하는 x, y좌표가 일반 위도, 경도와는 다르다는 것이었다. 기획 당시 FE에서 사용자의 위치를 좌표화해서 BE로 보내주게끔 하였으나
캐싱 작업을 진행하며 FE에서는 사용자의 위도와 경도를 전달해주면 BE에서 계산하여 보내주게끔 수정했다.
😄 이번역에서 제공하는 편의 시설 목록

기존 10가지 정보 제공에서 우리는 이격 거리, 지하철 내부의 엘리베이터, 에스컬레이터 , 계단 위치, 기후 동행 카드 지원 여부 등 총 15가지의 정보 제공으로 확대했다.
이격 거리의 경우, 여성과 어린이 등 보폭과 체구가 작은 사람을 위한 서비스였는데,
여전히 이격거리가 넓어 사고가 나기 때문이다.
호선마다 지하철 량이 달랐고, 한 플랫폼(1량에 보통 4칸이다)당 이격거리가 다 달라 DB에 어떻게 기입할 것인지 고민했다.
모든 칸의 이격 거리를 제공한다면 좋았겠지만, 가시성이 떨어질 것이라 판단했다.
한 량에서 가장 취약한 이격거리를 기준으로 제공을 했으며, 추가적으로 탑승 안전칸에 대한 정보도 함께 제공했다.
이번역은 결론적으로 416개의 공공데이터를 참고하여 약 40,000건의 데이터 전처리 작업을 완료했다.

혼잡도의 경우, 서울 일부 지역에 한해서 30분 간격으로 제공했다.
안내 기준은 여유-보통-주의-혼잡-정보 없음의 5단계로 안내했다.
다만 국토교통부의 기준과 상이하여 자체 협의 끝에 기준을 세웠는데, 데이터 상에서는 혼잡상태인 역이 2~3개밖에 되지 않는 것에 의아했기 때문이다.
데이터 상으로는 출, 퇴근 시간대의 2호선 사당역, 1호선 서울역도 모두 여유 혹은 보통인 상태인데 실제로 가보면 줄이 길어 2~3대의 지하철을 보내고 겨우 타기 때문이다.
편의성을 위해 메인 화면과 지도 페이지에서 최상단에 배치하였으며,
혼잡도 상세 페이지는 이격 거리와 함께 띄워 사용자의 편의성을 극대화했다.
데이터는 현재 시간을 포함해서 앞으로의 1시간의 데이터를 같이 볼 수 있다.

😄 2024년 제 18회 공개 SW개발자대회 수상 발표




회고록 인상적이었습니다, 데이터 전처리부터 모바일까지 구현하셨다니 대단하시네요 😀늦었지만 장려상 축하드려요~