브라우저 기반 명리학 도구. 사주팔자(四柱八字), 자미두수(紫微斗數), 서양 점성술 출생차트(Natal Chart)를 백엔드 없이 클라이언트에서 계산합니다.
- 사주 만세력 — 고영창님의 Perl 진짜만세력을 김정균님이 PHP로 포팅한 것을, 2018년 11월 황장호가 Java와 Python으로 포팅하여 사용해오다가, 2026년 2월 Claude Code (Opus 4.6)로 TypeScript로 포팅
- 자미두수 명반 — lunar-javascript 라이브러리 기반으로 Claude (Opus 4.5)가 중국어 문헌을 리서치하며 구현
- 점성술 출생차트 — Swiss Ephemeris의 Moshier 이론을 순수 TypeScript로 포팅
- 60갑자 기반 4주 계산 (시주, 일주, 월주, 년주)
- 십신, 12운성, 지장간
- 합충형파해 관계 분석 (삼합, 반합, 방합 포함)
- 신살 (양인살, 백호살, 괴강살)
- 대운 10개 (순행/역행 판단)
- 일운/월운 트랜짓 (합/충/형 감지)
- 음력 자동 변환
- 명궁/신궁 계산
- 14주성 배치 (紫微계 + 天府계)
- 보성/살성 배치
- 사화 (化祿/化權/化科/化忌)
- 성요 밝기 (廟/旺/得/利/平/陷)
- 전통 4×4 명반 그리드 레이아웃
- 대한 12개
- 유년 운세 (유년명궁, 유년사화, 12유월)
- Swiss Ephemeris Moshier 이론 기반 행성 위치 계산 (순수 TypeScript)
- 10개 행성 + 키론 + 남/북교점 위치 (별자리, 도수, 역행)
- 하우스 시스템 선택 (Placidus 기본, 10종 지원)
- ASC/MC/DESC/IC 앵글
- 5대 메이저 애스펙트 (합, 육합, 스퀘어, 트라인, 충)
- 출생 위치 입력 (위도/경도, 서울 기본값)
- AI 에이전트용 텍스트 복사 (사주 + 자미두수 + 출생차트 일괄 복사)
- 사용 가이드 및 용어 설명
- 시간 모름 모드 (3주 계산)
- 모바일 반응형
# 의존성 설치
bun install
# 개발 서버
bun dev
# 빌드
bun run build
# 테스트
bun test- React 19 + TypeScript 5
- Vite 7
- Tailwind CSS 4
- lunar-javascript (음력 변환)
- Vitest (테스트)
계산 엔진을 npm 패키지로 사용할 수 있습니다. → @orrery/core
import { calculateSaju } from '@orrery/core/saju'
import { createChart } from '@orrery/core/ziwei'
import { calculateNatal } from '@orrery/core/natal'
const input = { year: 1993, month: 3, day: 12, hour: 9, minute: 45, gender: 'M' as const }
// 사주팔자
const saju = calculateSaju(input)
saju.pillars.forEach(p => console.log(p.pillar.ganzi)) // 乙巳, 壬辰, 乙卯, 癸酉
// 자미두수 명반
const ziwei = createChart(1993, 3, 12, 9, 45, true)
console.log(ziwei.mingGongZhi) // 명궁 지지
console.log(ziwei.wuXingJu.name) // 오행국
// 서양 점성술 출생차트
const natal = await calculateNatal(input)
natal.planets.forEach(p => console.log(`${p.id}: ${p.sign} ${p.degreeInSign.toFixed(1)}°`))
console.log(`ASC: ${natal.angles.asc.sign}`)AGPL-3.0이 뭔가요? (쉬운 설명)
- 개인적으로 사용 — 본인 컴퓨터에서 마음대로 실행하고 수정해도 됩니다.
- 소스 코드를 읽고 공부 — 코드를 보고 배우는 건 언제든 환영합니다.
- 수정·개선 후 재배포 — 코드를 고쳐서 다시 배포할 수 있습니다. 단, 아래 조건을 지켜야 합니다.
- 같은 라이선스(AGPL-3.0) 유지 — 이 코드를 수정하거나 포함해서 배포할 때, 그 결과물도 반드시 AGPL-3.0으로 공개해야 합니다.
- 소스 코드 공개 의무 — 일반적인 GPL과 달리, AGPL은 웹 서비스로 제공하는 경우에도 소스 코드를 공개해야 합니다. 예를 들어 이 코드를 수정해서 웹사이트로 운영하면, 사용자가 요청할 때 수정된 소스 코드를 제공해야 합니다.
- 변경 사항 명시 — 원본에서 무엇을 바꿨는지 알 수 있도록 표시해야 합니다.
- 저작권 표시 유지 — 원본의 저작권 표시와 라이선스 문구를 지우면 안 됩니다.
- 소스 비공개 상태로 서비스 운영 — 이 코드를 수정해서 웹 서비스를 만들면서 소스를 공개하지 않는 것은 라이선스 위반입니다.
- 다른 라이선스로 변경 — AGPL 코드를 MIT, Apache 등 더 허용적인 라이선스로 바꿔서 배포할 수 없습니다.
마음껏 쓰되, 수정하거나 서비스로 제공할 경우 소스 코드를 AGPL-3.0으로 공개하세요.