피드로 돌아가기
Building a Saju Engine: Case Study with Karina's Birth Chart Algorithm
Dev.toDev.to
Backend

60^4 조합의 결정론적 상태 머신 기반 Saju 계산 엔진 설계

Building a Saju Engine: Case Study with Karina's Birth Chart Algorithm

HYUN SOO LEE2026년 4월 20일6intermediate

Context

UTC 타임스탬프를 Gregorian, Lunar, Sexagenary 등 다중 캘린더 시스템으로 변환해야 하는 복잡한 도메인 제약 존재. 기존 LLM의 확률적 응답 대신 1,500년 된 고전 알고리즘의 정확한 구현을 통한 Deterministic한 결과 도출 필요.

Technical Solution

  • ETL 패턴을 적용한 'Extract(Timestamp) → Transform(Calendar) → Load(Analysis)' 파이프라인 구축
  • Julian Day 기반의 Epoch Offset 연산을 통한 Sexagenary Cycle 위치의 정밀한 계산
  • Pure Function 기반의 Ten Gods Classification 알고리즘을 통해 오행 간의 상생/상극 관계를 행렬로 구조화
  • Element Weighting 시스템을 도입하여 각 Pillar의 가중치 합산 및 백분율 분포 산출
  • PHP/MySQL 기반의 결정론적 상태 머신 설계를 통한 모델 드리프트 및 데이터 오염 원천 차단

- 도메인 규칙이 명확한 경우 LLM보다 결정론적 알고리즘(Deterministic Algorithm)을 통한 신뢰성 확보 검토 - 복잡한 시간/날짜 변환 시 표준 UTC 기준의 Julian Day 변환 프로세스 도입 고려 - 복잡한 비즈니스 로직을 순수 함수(Pure Function)로 분리하여 테스트 가능성과 예측 가능성 증대

원문 읽기