TEAM PROJECT · 5주 · 5인

따라가요 DDARUNG FLOW

도착할 때, 따릉이가 있을까?

현재 재고만으로 알기 어려운 도착 시점의 대여 가능성을 예측하고, 후보 대여소를 비교하는 데이터 기반 의사결정 지원 서비스.

김선호 · 조장 · 데이터 파이프라인 · 통합 · DevOps

01 · 문제

지금 보이는 재고가 도착할 때도 남아 있을까?

대여 시점의 재고 정보만으로는 이동 후 도착할 시점의 대여 가능 여부를 알기 어렵습니다. 사용자가 필요한 수량과 도착 예상 시간을 기준으로 후보 대여소를 비교하도록 돕는 것이 프로젝트의 문제였습니다.

5주 동안 5명이 만든 팀 프로젝트입니다. 서비스는 예측 결과를 예약 보장으로 표현하지 않고 현재 재고·거리·이동시간과 함께 보여줍니다.

02 · 지표와 분석 범위

도착 시간과 필요한 자전거 수로 대여 가능성을 비교

H1–H4
60 · 120 · 180 · 240분 도착 horizon
1–5대
필요 수량별 대여 가능성
화면 결과
예측 확률 · 현재 재고 · 거리 · 이동시간

모델 개발과 평가는 Data/ML 담당 팀원이 수행했습니다. 저는 모델 자체를 개발한 것으로 주장하지 않으며, 수집·품질, 전달과 릴리스 검증에 참여했습니다.

프로젝트 전체 분석 근거: 기준 README · 공개 Notion

03 · 데이터 수집과 품질

수집 결과와 다음 단계에서 쓸 수 있는 데이터를 구분

따릉이·날씨 API와 Airflow 실행 흐름을 연결하고 Raw → Quality → Curated 단계로 분리했습니다. 원본은 보존하고 품질 기준을 통과한 데이터만 후속 단계로 넘기도록 구성했습니다.

  • 정상 재고 0대는 유효한 관측으로 보존하고 누락·음수·파싱 오류는 구분
  • 재실행 때 중복이 생기지 않도록 처리하고 timeout·실패 경계 확인
  • OCI Object Storage에 manifest·lineage·checksum을 대조하고 행 보존 및 immutable upload 확인
  • 원격 객체는 169개 HEAD metadata와 본문 표본 2개를 read-back 검증

프로젝트 전체의 과거 재고 6,152,132행 검사와 월별 최저 대여소 ID 결합률 99.6427%는 팀 검증치입니다. 개인 성과나 현재 운영 지표가 아닙니다.

04 · 본인 기여

조장 · 데이터 파이프라인 · 통합 · DevOps

데이터 수집·품질

Python/Airflow API 수집 연결과 Raw → Quality → Curated 흐름을 구현·구성·검증했습니다. 정상 0과 누락·오류, 재실행·timeout 경계를 확인했습니다.

스토리지 전달

OCI Object Storage의 데이터·artifact 전달, manifest·lineage·checksum, 행 보존 및 remote read-back 검증을 맡았습니다.

통합·배포

팀원 작업을 통합 기준에 맞춰 PR로 묶어 병합 PR 407건 중 366건을 올리고 관리했습니다. Docker·OCIR·OCI Staging 배포, CI/CD와 롤백 절차를 확인하고, 테스트한 커밋과 배포한 커밋이 같은지 SHA로 검증했습니다.

팀원 역할: 황준형 Data/ML, 선경원 Backend/API/DB, 유제훈 Frontend/Admin 시각화, 김로운 Consumer/Admin UI입니다. 모델 개발과 팀원 Backend·Frontend 구현을 제 성과에 합산하지 않습니다.

05 · 실제 화면과 시스템 흐름

화면 이미지와 팀 전체 아키텍처는 공개 저장소의 기존 자산을 사용했습니다.

따라가요 대여소 상세 화면: 대여 가능성, 현재 재고, 거리와 이동시간
고정 sample data 기반 포트폴리오 데모입니다. 실시간 운영 재고를 표시하지 않습니다. 데모 열기
따릉이·날씨 APIAirflow RawQualityCurated·Object StorageAPI·대여소 화면
따라가요 팀 전체 아키텍처: 외부 데이터, Data/ML, Spring 서비스와 사용자 화면
팀 전체 서비스 구조 · GitHub 원본

06 · 검증과 한계

개발 근거와 운영 범위를 분리

  • Airflow DAG 통합 테스트 32개와 DAG 등록 검사를 확인했습니다. 해당 시점 pipeline 전체 검사 중 기존 근거 검사 1건은 실패로 남아 별도로 기록했습니다.
  • 수집 DAG는 schedule=None인 로컬 수동 실행 단계입니다. 24시간 자동 운영이 아닙니다.
  • Curated 66,467,477행·135 partitions는 팀 전체 검증치입니다. 원격 객체 169개는 메타데이터를 모두 다시 읽었고, 본문은 표본 2개만 확인했습니다.
  • 배포 검증 환경은 OCI Staging입니다. 실제 운영(production) 규모의 무중단 운영을 뜻하지 않습니다.
  • 예측은 예약·실제 대여 보장이 아니며 반납 예측·자전거 전용 routing·실과금 완료 기능이 아닙니다.

모델과 각 팀원 기여의 경계를 보존합니다. 근거 기준 commit · 공개 Notion