METHOD & BOUNDARIES
계산 기준과 해석의 경계
운세 서비스에서 가장 확인하기 어려운 것은 “이 문장이 어디서 나왔는가”입니다. 그래서 ORACROSS는 계산하는 부분과 판단하는 부분과 문장을 쓰는 부분을 나누고, 그 경계를 여기에 공개합니다.
판정 규칙 버전 · 2026-07-22.11. 세 체계를 따로 계산하는 이유
사주·자미두수·서양점성술은 상품 구색이 아닙니다. 같은 질문을 세 번 독립적으로 확인하는 장치입니다. 셋은 서로 다른 시대와 문화에서 만들어졌고 계산하는 값도 다릅니다. 그래서 셋이 같은 곳을 가리키면 그것은 우연이 아닐 가능성이 높아지고, 갈리면 어디서 갈리는지가 그 자체로 정보가 됩니다.
한 체계만 보면 그 체계의 해석 전통이 곧 결론이 됩니다. 세 개를 따로 계산해 대조하면 어느 하나의 전통에 기대지 않고 무엇이 공통인지 확인할 수 있습니다.
2. 코드가 하는 일, 규칙이 하는 일, AI가 하는 일
이 셋은 섞이지 않습니다. 섞이는 순간 “AI가 아무 말이나 만든 것 아닌가”를 확인할 방법이 사라지기 때문입니다.
- 계산코드
간지·명반·행성 위치·하우스를 결정론적으로 계산합니다. 같은 출생정보를 넣으면 언제나 같은 값이 나옵니다. 현재 시각이나 무작위 값이 계산에 들어가지 않습니다.
- 판정규칙
세 체계가 같은 곳을 가리키는지, 어디서 갈리는지를 코드에 적힌 규칙으로 판정합니다. AI가 "세 체계가 같은 말을 한다"고 판단하지 않습니다.
- 문장화AI
코드가 확정한 사실과 허용된 근거만 읽어 한국어 문장으로 만듭니다. AI는 계산하지 않고, 없는 근거를 만들 수 없으며, 판정을 뒤집을 수 없습니다.
AI는 계산하지 않습니다. 그러나 해석과 추론은 AI가 합니다 — 근거에서 이어지는 판단까지 막으면 읽을 이유가 없는 글이 됩니다. 금지되는 것은 없는 사실을 만드는 것이지, 있는 사실에서 뜻을 읽어내는 것이 아닙니다.
3. 무엇으로 계산하는가
계산 기준은 docs/rules/CALCULATION-RULES.md가 정하고 계산 패키지가 구현합니다. 기준을 바꾸려면 문서를 먼저 고칩니다. 아래는 현재 적용 중인 기준입니다.
사주(명리)
lunar-typescript를 우리 표준 타입으로 정규화
- 시진 판정에 경도 기반 진태양시 보정을 적용합니다.
- 월주 경계는 달력의 달이 아니라 절기(節)를 기준으로 합니다.
- 야자시(진태양시 23:00~24:00)는 일주를 당일로 유지하고 시주만 자시로 계산합니다.
- 오행 분포는 두 기준을 함께 냅니다 — 천간 넷과 지지 본기 넷(여덟 글자), 그리고 천간 넷과 지장간 전체. 지장간 표는 인원용사 기준입니다.
자미두수
iztro를 우리 표준 타입으로 정규화
- 명궁은 음력 생월과 시진 두 값으로 정합니다. 시각을 모르면 계산하지 않고 이유를 밝힙니다.
- 열네 주성은 오행국과 생일로 자미성 자리를 잡은 뒤 그 관계를 따라 배치합니다.
- 보좌성과 사화는 태어난 해의 간지·달·시진에서 각각 나옵니다.
서양 점성술
astronomy-engine + Placidus 자체 구현
- 진태양시 보정을 쓰지 않습니다. UTC로 변환한 뒤 천문 계산합니다(표준 방식).
- 하우스는 Placidus입니다. ASC·MC는 항성시 기반 표준 공식, 커스프는 반복 수렴 계산입니다.
- 위도 66.5도 이상에서 Placidus가 성립하지 않으면 Porphyry로 대체하고 그 사실을 리포트에 밝힙니다.
외부 라이브러리의 원시 출력을 그대로 쓰지 않고 각 패키지 안에서 표준 타입으로 정규화합니다. 라이브러리를 바꿔도 결과의 의미가 흔들리지 않게 하기 위해서입니다.
4. 같은 입력이면 같은 결과가 나옵니다
계산 경로에 현재 시각·무작위 값·외부 API 호출이 들어가지 않습니다. 같은 출생정보를 넣으면 언제나 같은 차트가 나옵니다. 계산 패키지는 정답 JSON과 대조하는 골든 테스트가 통과해야 완성으로 봅니다.
판정 규칙에는 버전이 있습니다(현재 2026-07-22.1). 규칙이 바뀌면 버전이 올라가고, 이미 저장된 결과가 어느 버전으로 만들어졌는지 남습니다.
5. 이 서비스가 하지 않는 말
유리한지 불리한지는 말합니다. 그것이 물어보신 것이기 때문입니다. 다만 아래 넷은 하지 않습니다.
- 나중에 사실로 확인되는 숫자 — 특정 날짜, 금액, 확률로 사건을 찍지 않습니다.
- 질병 진단 — 건강 신호를 다루더라도 진단이나 치료 결정을 대신하지 않습니다.
- 타인의 속마음이나 행동 단정 — 관계를 다루더라도 상대가 무엇을 생각하는지 말하지 않습니다.
- 공포로 몰아가는 문장 — 불안을 키워 결제를 유도하지 않습니다.
시기의 성질은 계산되는 값이므로 말합니다(대운·세운·대한·유년이 그 부분입니다). 그러나 사건을 날짜로 찍지 않습니다. 그 둘은 다른 이야기입니다.
6. 공개 문서는 누가 쓰고 누가 검토하는가
알아보기의 문서는 아래 쓰는 사람 항목의 실명으로 발행합니다. 실재하지 않는 전문가 이름을 만들지 않습니다 — 바꿔 말하면, 실재하는 사람의 이름은 숨기지 않습니다.
문서마다 발행일과 수정일을 표시하고, 초안 구성에 AI를 사용했다는 사실을 밝힙니다. 계산 구조에 관한 서술은 실제 계산 엔진의 동작을 기준으로 씁니다 — 그 부분은 코드와 대조해 확인할 수 있습니다.
명리·자미두수·점성술의 해석 지식에 대한 검토는 별도로 표시합니다. 검토를 마친 문서에만 검토일이 붙습니다. 검토일이 없다면 아직 그 확인을 거치지 않았다는 뜻입니다. 검토하지 않은 문서에 검토 표기를 붙이지 않습니다.
7. 쓰는 사람
김건엽 · 기고 전문위원
세 체계의 계산 엔진을 직접 구현하고 검증한다. 해석보다 계산이 먼저 맞아야 한다고 본다.
주장 대신 확인할 수 있는 것을 둡니다. Labs의 공개 연구는 이 저장소의 엔진으로 직접 계산한 결과이고, 표본틀과 원자료를 함께 공개하므로 누구든 다시 돌려 같은 숫자가 나오는지 확인할 수 있습니다.
지식 문서의 계산 관련 서술은 위 사람이 엔진 코드와 대조해 씁니다. 해석 부분은 해석이라고 본문에 밝히며, 검토를 마친 문서에만 검토일이 붙습니다. 작업 이력은 GitHub에서 확인하실 수 있습니다.
8. 만드는 사람
| 서비스 | ORACROSS (https://oracross.com/) |
| 사업자 | 디멘퍼즐러(DIMENPUZZLER) |
| 대표 | 정지혜 |
| 사업자등록번호 | 831-29-01893 |
| 주소 | 서울특별시 마포구 새터산14안길 18, 303호(성산동, 엘림하우스) |
| 문의 | support@oracross.com |
계산 기준이나 문서 내용에 틀린 곳을 발견하시면 위 주소로 알려주십시오. 지적받은 내용은 확인 후 고치고, 문서의 수정일을 갱신합니다.
