본문으로 건너뛰기
홈으로블로그
‹ 블로그

개발기

Mileage Radar 개발기 — 한 자리 아닌, 함께 탈 좌석을 기다리는 법

개발 발행 3분 읽기

#Mileage Radar#개발기#자동화#대시보드

Mileage Radar 프로젝트 보기

Mileage Radar는 아시아나의 공식 월간 마일리지 좌석 캘린더를 주기적으로 확인해 좌석 수가 늘어난 날짜를 찾는 감시 대시보드입니다. 실시간 재고를 보여 주는 예약 도구가 아니라, 공개 캘린더의 변화를 기록하고 조건에 맞는 증가를 알리는 도구로 범위를 정했습니다.

‘좌석 있음’만으로는 부족했습니다#

여러 명이 함께 이동하려면 한 자리가 열렸다는 사실만으로는 충분하지 않습니다. 그래서 노선과 좌석 등급에 더해 1인·2인·3인 기준을 각각 둘 수 있게 했습니다. 2026년 8월 18일 첫 구현에서는 캘린더 수집기, 변화 기록, 조건별 대시보드와 자동 확인 정의를 한 흐름으로 만들었습니다. 사용자는 현재 값뿐 아니라 언제 무엇이 늘었는지를 함께 볼 수 있습니다. 월간 캘린더에 없는 실시간 재고까지 아는 것처럼 보이지 않도록 데이터 출처와 확인 시각을 보여 주는 자리도 마련했습니다.

실패를 ‘0석’으로 쓰지 않으려 했습니다#

외부 사이트를 읽는 자동화는 네트워크 지연, 접근 차단, 화면 구조 변경을 피할 수 없습니다. 이때 실패한 응답을 빈 좌석으로 저장하면 기존 기록이 거짓으로 덮입니다. 처음 세운 원칙은 수집 결과의 모양과 출처를 검증하지 못하면 데이터베이스와 마지막 확인 시각을 그대로 두는 fail-closed였습니다.

하지만 현재 코드를 다시 대조하니 접근이 막혔을 때 공식 좌석 수가 아닌, 결정론적으로 만든 대체 스냅샷을 성공으로 반환할 수 있는 경로가 기본으로 남아 있었습니다. 이 값은 저장과 알림 후보로도 이어질 수 있어, 지금 구현은 아직 그 원칙을 충족하지 못합니다. 응답의 출처 필드로 구분하는 것만으로는 부족하며, 운영 확인에서는 대체 경로를 끄고 공식 응답만 상태를 갱신하게 하는 차단 장치와 테스트가 필요합니다.

알림과 상태는 함께 움직여야 했습니다#

변화를 찾았는데 알림 전송만 실패한 경우, 알림을 보냈다고 먼저 기록하면 다음 실행에서 영영 놓치게 됩니다. 그래서 알림이 성공한 뒤에만 해당 변화를 처리 완료로 남기고, 실패하면 다음 실행에서 다시 시도하게 했습니다. 같은 변화를 여러 번 처리해도 결과가 꼬이지 않도록 기준 시점과 기록 갱신도 한 묶음으로 다뤘습니다.

지금은#

Mileage Radar는 개인용 개발 단계입니다. 저장소에는 대시보드와 정기 확인을 위한 자동화 정의가 있지만, 정의 파일이 있다는 것만으로 실제 일정이 활성화된 것은 아닙니다. 실패 처리의 안전장치도 아직 완성되지 않았으므로 성공적인 운영 배포라고 단정하지 않습니다. 다음 단계는 대체 데이터를 실제 감시 경로에서 분리하고, 공식 공개 정보가 실패했을 때 모른다고 정확히 말하는 도구가 되도록 경계를 검증하는 일입니다.

이런 프로젝트, 같이 만들어볼까요?

웹 서비스 · 도구 · 자동화 의뢰를 받고 있어요.

문의 보내기