방법과 경계
계산, 근거, 해석, 검증
이 문서는 저희가 만세력(命盤)을 세우고 해석하는 방식, 어떤 기준을 채택하는지, 어떤 결론에 유파 간 차이가 있는지, 그리고 저희가 분명히 하지 않는 일을 밝힙니다. 마케팅 문구가 아니라 검증할 수 있는 설명이어야 합니다.
네 단계 절차
- 01Calculate
계산: 만세력은 알고리즘이 세웁니다
역법 환산, 절기 시각, 시간대, 진태양시 보정, 사주 사기둥의 천간과 지지, 지장간, 대운의 순역과 기운 시점은 모두 결정론적 알고리즘으로 계산되어 구조화된 필드에 기록됩니다. 언어 모델은 이 단계에 관여하지 않으며, 생년월일에서 사주를 직접 추론하는 것도 허용되지 않습니다.
- 02Evidence
근거: 결론은 근거를 항목별로 제시할 수 있어야 합니다
일간(日干) 강약, 십신(十神) 구성, 합·충·형·해, 조후(調候)와 격국은 모두 개별적으로 확인할 수 있는 근거 항목으로 출력됩니다. 어느 월령인지, 어디에 통근했는지, 어느 간지가 발동했는지까지 제시합니다. 점수는 이런 근거의 내부적 표현일 뿐이며 판단 자체가 아닙니다.
- 03Interpret
해석: AI는 표현을 맡고 계산은 맡지 않습니다
언어 모델은 구조화된 근거를 읽을 수 있는 해석으로 옮기고, 그 결론이 성립하는 조건을 밝힙니다. 유파 간 차이가 있을 때는 차이점과 현재 적용하는 우선순위를 밝히며, 그중 하나를 유일한 정답으로 포장하지 않습니다.
- 04Validate
검증: 출력 전에 일관성과 경계를 점검합니다
해석을 생성한 뒤에는 그것이 구조화된 근거 항목으로 소급되는지 확인하고, 주제 경계에 따라 고위험 내용을 걸러냅니다. 일관성 검증(용신·희신·기신·구신이 서로 겹치지 않아야 한다는 점)은 취용 단계의 하드 제약입니다. 조후표가 제시한 보조 오행이 「기신을 생하는 오행」과 겹치면 기능 정의에 따라 다시 지정하며, 120개 일간×월지 조합 전체에 회귀 검증을 적용합니다.
엔진 버전 및 변경 이력
계산 결과를 바꾸는 알고리즘 수정이 있을 때마다 엔진 버전을 올리고 여기에 기록합니다. 저장된 명반의 버전이 현재 버전과 다르면 오래된 결과로 간주해 다시 계산합니다. 이때 함께 저장된 동일한 출생 정보로 다시 계산하므로 진태양시 같은 기준이 유실되지 않습니다. 초기 기록에 필요한 필드(연·월·일·시·분)가 없어 충실히 재계산할 수 없는 드문 경우에는 추측하지 않고 원래 명반을 그대로 유지합니다. 문구와 스타일 변경은 버전을 올리지 않습니다.
변경 이력
- v52026-09-25
Almanac auspicious hours now use the twelve day-officers
영향 범위: Almanac
Auspicious hours were previously inferred from whether the day had more 宜 (suitable) entries than 忌 (avoid) entries. That heuristic was directionally wrong: on 2026-09-25 it listed five inauspicious (黑道) hours as auspicious and marked the day's only 青龍 auspicious hour (庚子) as inauspicious. Auspicious hours now follow the yellow-path/black-path (黃道/黑道) property of the twelve day-officers. When the engine cannot compute them it returns a degraded flag and the page says so rather than inventing hours. The same day, two byte-identical almanac implementations (web and engine package) were merged into one so the two runtimes cannot disagree.
- v42026-09-20
Year pillar now switches at 立春; leap-month charts cached separately
영향 범위: BaZi · Zi Wei Dou Shu
The year pillar used to change over at the lunar new year (正月初一), which produced a wrong year pillar for anyone born between 立春 and the lunar new year. It now switches at 立春 (the start of spring). Separately, the Zi Wei Dou Shu cache key now includes isLeapMonth — leap-month and ordinary-month charts previously shared one key and could contaminate each other, which is why the cache version moved from v3 to v4.
- v32026-09-20
Hour stem now derived by the five-rat rule (五鼠遁)
영향 범위: BaZi
The hour stem was offset for some hours. It is now derived from the day stem using the five-rat rule (五鼠遁) throughout.
- v22026-09-20
Fixed a crash in computeBaziAccurate for certain inputs
영향 범위: BaZi
Certain combinations of birth information made the chart function throw, which took down the whole result page.
- v12026-09-20
Introduced engine versioning (backfilled starting point)
영향 범위: All
There was no version concept before this; cache invalidation relied on manually editing a string. v1 is a backfilled starting point so later versions have a reference.
재현 가능한 검증
아래 수치는 저장소에 있는 명령으로 직접 재현할 수 있습니다. 알려진 차이점도 테스트로 고정해 두었습니다. 통과만 보고하는 테스트 목록은 의미가 없고, 어디가 다른지 말해 주는 목록이 의미가 있습니다.
- 엔진 회귀 테스트 (divination-core, bun test)
- 110
- 웹 및 모바일 테스트 (bun test lib apps/mobile) · 29 개 파일
- 215
합계: 325 · 2026-09-29
테스트가 고정한 구체적 동작
- 일주 기준점: 1949-10-01 = 甲子. 이전 구현은 庚申/戊子를 반환했고 호스트 시간대에 따라 결과가 흔들렸습니다.
- 모든 子시의 시간(時干)이 오서둔(五鼠遁)을 따릅니다. 이전 구현은 회전 배열 인덱스 오류로 *모든* 子시의 천간이 틀렸습니다.
- 연주는 음력 정월 초하루가 아니라 立春에 바뀝니다.
- 윤달 생일은 윤달 당일에 배정되어야 합니다. 2023년 윤2월 20일 실측에서 이전 구현은 30일 어긋났습니다.
- **알려진 차이는 명시적으로 고정했습니다**: 23:00에는 일주가 바뀌지 않으며(조자시/야자시는 실제 유파 차이), 절기일 경계는 초 단위가 아닌 근사표를 사용합니다. 이는 알려져 테스트에 기록된 동작이며, 발견되지 않은 결함이 아닙니다.
테스트 통과는 구현이 우리가 명시한 기준과 일치한다는 뜻일 뿐, 이 방법 자체가 과학적으로 검증되었다는 근거는 아닙니다.
저희가 채택한 기준
사주에는 근거가 뚜렷한 전통적 방식이 여러 가지 있습니다. 저희 원칙은 한 세트를 고정하고, 기록하고, 확인할 수 있게 하는 것입니다. 페이지마다 다른 규칙을 쓰지는 않습니다.
- 시간 기준
- 기본값은 입력하신 시계 시간입니다. 진태양시(眞太陽時)는 선택적 보정으로, 사용자가 활성화하고 출생지 경도가 제공된 경우에만 경도와 균시차에 따라 조정하며, 조정된 시간을 결과에 기록합니다.
- 연주 경계
- 입춘(立春)의 정확한 시각에 전환하며, 1월 1일도 음력 설도 사용하지 않습니다.
- 월주 경계
- 12절(節氣)의 정확한 시각에 전환하며, 음력 월과는 무관합니다.
- 자시(子時) 날짜 전환
- 늦은 자시를 당일로 볼지 다음 날로 볼지는 유파 차이이며, 두 방식 모두 사용자가 있습니다. 저희 구현은 한 가지 규칙을 고정해 일관되게 적용합니다. 다른 방식에 익숙하시다면 일주와 십신이 전체적으로 이동하므로, 이를 통해 차이를 확인하실 수 있습니다.
- 강약과 취용(取用)
- 부억(扶抑)과 조후(調候)는 각각 따로 계산하며, **두 층의 결론을 모두 명반 결과에 제시합니다**. 두 방향이 다를 때는 차이점, 현재 어느 층을 채택하는지, 그리고 그 이유를 밝힙니다. 차이 자체는 오류가 아닙니다. 부억은 일주가 감당할 수 있는지를, 조후는 계절의 한난조습을 봅니다 — 서로 다른 질문입니다.
- 경계선 명반
- 일주 강약은 여러 가감 항목을 하나의 원점수로 합산한 뒤 75 / 60 / 40 / 25로 등급을 나눕니다. 원점수가 어떤 임계값의 3점 이내에 들면 결과에 직접 표시하며, 두 등급으로 구분합니다. 넘어가면 다른 취용으로 바뀌어 오신(용신 / 기신 / 희신 / 구신 / 한신)이 달라지는 경우와, 등급 이름만 바뀌는 경우입니다. 이 구분은 추론이 아닙니다 — 취용 분기를 가정 등급에서 평가할 수 있는 순수 함수로 분리했고, 임계값 양쪽에서 오신을 각각 계산해 글자까지 비교합니다. 자체 표본에서 약 40%의 명반이 어떤 임계값의 3점 허용 범위에 듭니다.
저희가 하지 않는 일
건강
질병 진단, 신체 상태 판단, 치료 조언을 제공하지 않습니다. 건강 문제는 전문 의료인과 상담하시기 바랍니다.
투자와 재무
주식, 펀드, 암호화폐의 매매 시점을 제공하지 않으며 구체적 가격도 예측하지 않습니다. 재무 결정은 규제를 준수하는 금융 정보를 근거로 하시기 바랍니다.
법률
법률 의견을 제공하지 않으며 소송 결과도 판단하지 않습니다.
신변 안전
위험, 사고, 수명에 대해 단언하지 않습니다. 안전이 걸린 문제는 현실에서 전문가의 도움을 구하시기 바랍니다.
중대한 인생 결정
결혼, 이민, 퇴사 같은 결정의 유일한 근거로 명리 결론을 삼지 않습니다.
결정론적 예언
구체적 사건의 날짜와 결과를 약속하지 않습니다. 명리는 저희 정의상 전통문화 참고 프레임워크이며, 현대 과학의 타당성을 갖춘다고 주장하지 않습니다.
알려진 한계
- 출생 시간이 부정확하면 시주와 관련된 결론의 신뢰도가 뚜렷하게 떨어집니다. 시진이나 절기 경계에 가까울수록 특히 그렇습니다.
- 유파 차이는 「해결」될 수 없고 설명될 수만 있습니다. 저희는 차이가 있는 곳을 표시하며 숨기지 않습니다.
- 경계선 명반을 표시하지만, **표시한다고 해서 결론이 견고해지는 것은 아닙니다**. 점수가 임계값에 가까우면 가중 기준이 달라질 때 반대 방향의 용신이 나올 수 있고, 이 불확실성은 없앨 수 없고 설명할 수만 있습니다. 넘어갈 때 용신이 바뀌는지는 **명반별로 계산해 둔 값**이며 추정이 아닙니다. 다만 그것 역시 현재 기준 아래에서의 답일 뿐입니다.
- 일부 조후 조합의 구신(仇神) 라벨은 기능 기준으로 대체 지정됩니다(고전 조후 보조 오행은 희신으로 우선 보존). 따라서 엄격한 「기신을 생하는 오행」 정의와는 조금 다릅니다. 이런 조합에서는 「취용 근거」를 기준으로 삼으시기 바랍니다.
- AI 해석은 표현이 어긋날 수 있습니다. 어떤 해석이 근거 층에서 뒷받침을 찾지 못한다면 만세력과 근거 필드를 기준으로 삼으시기 바랍니다.
- 저희는 오류 정정을 받습니다. 만세력이나 규칙에서 오류를 발견하시면 피드백 채널로 알려 주시면 이후 버전에서 수정합니다.
자주 묻는 질문
AI가 사주를 잘못 세울 수 있나요?
만세력은 결정론적 알고리즘이 세우고 구조화된 필드에 기록되므로 항목별로 확인할 수 있습니다. AI는 해석 층만 담당하므로 만세력 오류와 해석 편차는 서로 다른 종류의 문제입니다. 전자는 재현하여 검증할 수 있고, 후자는 근거 층으로 재검토할 수 있습니다.
왜 대형 모델이 직접 만세력을 세우게 하면 안 되나요?
역법 환산, 절기 시각, 시간대 보정은 정밀한 규칙과 역사 데이터에 의존하므로 언어 모델이 안정적으로 재현할 수 없습니다. 결정론적 계산을 알고리즘에 맡기는 것이 재현되지 않는 오류를 줄이는 핵심입니다.
결과가 제가 아는 명리 선생님과 다른데, 어느 쪽이 맞나요?
대부분은 잘못 계산한 것이 아니라 기준이 다른 경우입니다. 흔한 차이는 진태양시 사용 여부, 자시 날짜 전환 규칙, 강약 가중치, 취용 프레임워크에서 옵니다. 항목별로 확인하실 수 있으며, 저희가 채택한 규칙은 이 방법 안내 페이지에 공개합니다.
유파 차이는 어떻게 다루나요?
차이점과 현재 적용하는 우선순위를 밝힙니다. 부억과 조후 두 층을 모두 계산해 결과에 제시합니다. 두 층이 일치하면 결론이 서로 독립적인 두 경로로 뒷받침된다는 뜻이고, 다르면 각각 무엇을 취하는지, 현재 어느 층을 채택하는지, 왜 그런지를 설명합니다.
두 층의 결론이 서로 모순되면 어떻게 하나요?
용신, 희신, 기신, 구신이 서로 겹치지 않는 것은 취용 단계의 하드 제약이며, 120개 일간×월지 조합 전체에 회귀 검증이 적용됩니다. 서로 동일해지는 경우는 결함으로 보고 수정합니다.
결과를 과학적 예측으로 보시나요?
아닙니다. 명리는 저희 정의상 전통문화 참고 프레임워크이며, 그 과학성에 대해 단언하지 않고 현실의 전문적 판단을 대체하도록 권하지도 않습니다.
관련 항목
방법과 경계 · 2026-09-20