피드로 돌아가기
How I Built a Vedic Panchang Engine in TypeScript — Swiss Ephemeris, Meeus Fallback, Zero External APIs
Dev.toDev.to
Backend

Zero-API 기반 Swiss Ephemeris 및 Meeus Fallback 구조로 15ms 내 천체 계산 구현

How I Built a Vedic Panchang Engine in TypeScript — Swiss Ephemeris, Meeus Fallback, Zero External APIs

Adi Kumar2026년 5월 17일15advanced

Context

외부 API 의존성으로 인한 레이턴시와 비용, 정확도 저하 문제를 해결하기 위해 서버 사이드 자체 계산 엔진 필요성 대두. 고정밀 천체 데이터 산출을 위해 Native Module 기반 라이브러리와 Pure TS 폴백 로직의 공존이 필수적인 상황.

Technical Solution

  • Swiss Ephemeris(C 라이브러리 래퍼)를 Primary 엔진으로 채택하여 sub-arcsecond 수준의 정밀도 확보
  • Native Module 실행 불가 환경(Edge/Browser) 대응을 위해 Meeus 알고리즘 기반의 Pure TypeScript Fallback 엔진 설계
  • JD(Julian Day)를 공통 입력값으로 사용하는 인터페이스 표준화를 통해 두 엔진 간의 계산 일관성 유지
  • 동일 JD에 대한 중복 쿼리 방지를 위해 6자리 소수점 반올림 기반의 Memoization Cache 레이어 구축
  • Next.js ISR을 활용해 24시간 주기로 정적 페이지를 갱신하며 계산 부하를 최소화하는 배포 전략 적용

1. Native 모듈 의존 시 Edge Runtime 등 제약 환경을 위한 Pure JS/TS 폴백 로직 설계 여부 검토

2. 도메인 특화 계산 시 부동 소수점 정밀도 이슈 해결을 위한 표준 입력값(예: Julian Day) 정의

3. 고빈도 동일 입력값 쿼리가 발생하는 연산 과정에 Memoization Cache 적용 고려

원문 읽기