- 목적: 사용자가 지하철을 이용할 때, 정확한 막차 시간과 실제 도착 가능 경로를 안내하여 막차를 놓치지 않도록 도와주는 앱
- 배경: 단순 시간표만으로는 '지금 탑승하면 목적지까지 갈 수 있는지' 판단하기 어려움
- 대학생 대상 사용자 조사 결과, 정확한 막차 시간 정보 부족과 시간 확인 미흡이 주요 원인
- 해결하고자 한 문제:
- 분기역, 환승, 종착역 등 노선 구조를 고려한 경로 판단
- 최근/즐겨찾는 경로 설정 기능 부재
- 막차 알림 기능의 필요성
- 주요 기능:
- 간편한 출발-도착 설정으로 막차 시간 확인
- 자주 가는 경로 저장 및 빠른 재사용
- 실시간 막차 알림 기능 제공
- 기간: 2023.11.01 ~ 2023.12.14 (약 6주)
- 팀 구성: 3명
- 박지윤: UI/UX 설계 및 구현, 사용자 관련 DB 설계, 즐겨찾기 및 최근 경로 기능
- 김다은: 사용자 인증, 알림 시스템, 막차 알림 기능
- 안채연: 데이터 모델링, API 연동, 막차 시간 계산 알고리즘 개발, 데이터 통합 및 검증
- 언어: Java
- 플랫폼: Android
- 데이터베이스: Firebase Firestore
- API: ODsay API
- 비동기 처리: CompletableFuture
- 공공데이터포털 API보다 더 완전하고 정확한 지하철 데이터 제공
- 누락된 역/호선 정보 없음
- 각 구간별 소요 시간 제공 → 경로 판단에 유리
- 정확한 환승 경로, 실시간 데이터 지원
- 일부 환승 정보는 공공데이터포털 데이터를 병합하여 보완
- 유연한 NoSQL 기반 데이터 구조
- 다양한 형태의 데이터(배열, 객체 등) 저장 용이
- 복잡한 쿼리 지원 (Realtime Database보다 유리)
- 비동기 작업이 많은 구조에 적합 →
CompletableFuture와 함께 사용
- 프로젝트 초기, 전체 작업을 간트 차트(Gantt Chart) 형식으로 작성하여 주차별 일정과 역할을 시각화
- 기능을 세분화하고 UI / Server 역할 및 담당자를 명확히 배정
- 이후 매주 팀 미팅을 통해 다음을 진행함:
- 진행 상황 점검
- 이슈 및 오류 공유
- 일정 조정 및 우선순위 재정립
- 기능 개선 논의
- 일정표는 실제 작업 상황에 따라 지속적으로 업데이트하며 반영
⏱️ 막차 계산 전체 플로우
-
Apache POI (
poi-ooxml:3.9)- Microsoft Office 파일(엑셀 등) 읽기/쓰기용
-
Jackson Databind (
jackson-databind:2.12.4)- JSON 파싱 및 객체 매핑
-
ODsay 대중교통 OpenAPI





