PROJECT
막차 경로 탐색 및 알림 서비스 개발
2025.02 ~ 진행 중
Github Link, 구글 스토어
Spring Boot 3.4.x
Kotlin 2.x
JPA
MySQL 8.0
Redis
프로젝트 목적
사용자가 손쉽게 막차 경로를 조회하고, 원하는 시간에 알림을 등록하여 안전하게 귀가할 수 있도록 돕기 위한 서비스입니다.


.png)

1. 막차 경로 탐색 응답시간 최적화
상황
막차 경로 탐색은 서비스의 핵심 기능이지만 요청 “한 건”에 평균 200회가 넘는 외부 API 호출이 연쇄적으로 발생하는 무거운 작업입니다. 이로 인해 병목 현상이 심화되어 응답 속도가 크게 지연되고, 사용자 경험에 심각한 불편을 초래했습니다.
실행
- API 호출 패턴 분석 및 캐싱:
- 범용 캐싱 : 1차적으로 외부 API 응답 결과를 캐싱하여 반복적인 네트워크 I/O를 제거하였습니다.
- 패턴 분석 기반 캐싱 : 유사 지역 사용자들이 동일 역/정류장의 시간표를 반복적으로 조회한다는 패턴을 찾아, 역/정류장별 시간표 데이터를 캐싱하였습니다.
- 코루틴 기반 비동기 호출 최적화: 대량(200+)의 외부 API 호출을 비동기적으로 동시에 실행하여, 응답 지연 시간을 최소화했습니다.
- SSE 스트리밍 방식 전환: SSE 스트리밍 방식 도입으로 병렬 처리된 계산 중 완료된 결과를 실시간 전송하여 사용자 체감 응답 시간을 대폭 단축했습니다.

막차 경로 탐색 시퀀스 다이어그램
결과

코루틴 적용 전/후 경로 계산 완료 시간 비교(MTT - 각 테스트 2초 딜레이 포함)