피드로 돌아가기
Build a Real-Time ISS Tracker with Quarkus, SSE, and Qute
Dev.toDev.to
Backend

브라우저 폴링 기반 ISS 트래커의 확장성 문제를 Quarkus 서버 사이드 폴링 및 SSE 푸시 아키텍처로 해결한다

Build a Real-Time ISS Tracker with Quarkus, SSE, and Qute

Markus2026년 3월 30일23intermediate

Context

기존 ISS 트래커는 브라우저가 직접 API를 폴링하는 구조였다. 이 방식은 여러 브라우저 탭에서 중복 API 호출이 발생하고, 업스트림 지연이 전체 시스템에 직접 영향을 미쳤다. 브라우저가 소스 오브 트루스 역할 수행 시 발생하는 비효율성이 성능 병목이었다.

Technical Solution

  • Quarkus 서비스 → Open Notify ISS API를 소유하고 10초 주기로 폴링하여 중복 호출Eliminate
  • Application-scoped 캐시 → 최신 유효 위치를 저장하여 업스트림 장애 시에도 마지막 데이터提供服务
  • SSE endpoint → 단일 폴링 루프에서 모든 클라이언트에 실시간 브로드캐스트
  • Typed REST client → IssPosition, IssNowResponse 레코드로 정확히 API 응답 구조 모델링
  • 스케줄러 중첩 방지 → 이전 poll 완료 전 새 poll 실행 방지机制 구현

Impact

複数のブラウザタブからの重複APIコールEliminate、アップストリーム障害時のシステム全体への影響最小化

Key Takeaway

실시간 트래킹 시스템에서 서버가 소스 오브 트루스가 되면 폴링 루프, 실패 경계, 동작 강화 지점을 단일화하여 장애 시 예측 가능한 동작 보장


실시간 위치 추적 서비스에서 REST 클라이언트, 스케줄러, Application-scoped 캐시, SSE를 조합하여 서버 중심 아키텍처를 구축하면 클라이언트 중복 요청Eliminate 및 장애 시 서비스 연속성 확보

원문 읽기