피드로 돌아가기
The Three Conditions for Seeing the ISS — A Browser-Only Visibility Calculator with Spherical Trigonometry
Dev.toDev.to
Frontend

200줄의 Spherical Trigonometry로 구현한 실시간 ISS 가시성 계산기

The Three Conditions for Seeing the ISS — A Browser-Only Visibility Calculator with Spherical Trigonometry

SEN LLC2026년 5월 1일7intermediate

Context

단순한 위치 표기만으로는 ISS 가시성 판단이 불가능한 물리적 제약 존재. 기존 API의 HTTPS 미지원 및 필수 데이터(Altitude) 누락으로 인한 아키텍처적 한계 발생.

Technical Solution

  • api.wheretheiss.at 도입을 통한 HTTPS 통신 확보 및 Altitude, Solar Point 데이터의 단일 Call 획득
  • Haversine distance와 OES Triangle 기반의 Law of Cosines를 적용한 Elevation 계산으로 지평선 위 위치 여부 판별
  • ISS의 태양광 반사 원리를 이용해 API의 visibility 필드 값으로 Earth's shadow 진입 여부 확인
  • 관측자 위치와 Sub-solar point 간의 구면 삼각법 수식을 통한 태양 고도 산출 및 -6° 임계치 적용으로 하늘의 어두움 정도 판별
  • SGP4 Propagator 및 TLE 데이터 처리를 배제하여 런타임 복잡도를 낮춘 Browser-only 경량 설계
  • GeoJSON 데이터 배제 및 Equirectangular Projection 적용을 통해 번들 크기 최소화 및 렌더링 최적화

- 외부 라이브러리 도입 전, 핵심 로직을 단순 수식으로 대체 가능한지 검토 - 데이터 시각화 시 고정밀 지도 데이터 대신 좌표계 투영법(Projection) 변경을 통한 성능 최적화 고려 - 복잡한 예측 시스템보다 현재 상태(Right Now)에 집중한 MVP 설계로 개발 비용 절감

원문 읽기