택일(擇日)은 어떻게 계산하나
/days 뒤의 산수 — 만세력이 아니라 코드에서 읽었어요.
복키의 날짜 도구(택일, /days)는 모두에게 같은 길흉일을 알려주는 만세력을 안 써요. 대신 당신의 사주 명식을 딱 한 번 세우고, 앞으로 45일의 후보 날짜 전부를 그 명식 하나와 대조해 점수를 매겨요. 그날의 오행이 당신 명식의 용신과 맞으면 점수를 얻고, 그날의 지지가 당신의 일지와 육합(六合)을 이루면 점수를 얻고, 목적에 맞는 별(사업이면 재성, 여행이면 역마 등)을 가지면 점수를 더 얻어요 — 반대로 지지가 당신과 충(六冲)하면 그날은 통째로 빠져요. 화면에 뜨는 다섯 날짜는 그렇게 훑은 45일 중 점수가 가장 높은 다섯이에요.
pickGoodDays() 함수는 맨 위에서 getFourPillars(생년월일, 생시)를 딱 한 번 부르고, 그 뒤 계산은 전부 이 결과 하나를 읽어요 — 일간, 용신·기신(저희 용신 글이 설명하는 억부·조후 산법 그대로), 그리고 당신의 일지까지요. 이게 중요한 이유는 명식 안에 '나'를 나타낼 수 있는 지지가 하나가 아니기 때문이에요 — 연지와 일지는 다른 자리예요 — 그래서 점수를 매기는 계산 전체가 어느 명식을 읽는지 하나로 맞아야 해요. 안 그러면 같은 생일을 두고 화면 둘이 조용히 다른 말을 하게 돼요. 사실 예전에는 안 맞았어요. 이 글을 준비하며 코드를 다시 읽다가 찾았어요: 용신·기신은 getFourPillars(생시 포함)로 세우면서, 역마가 읽는 연지는 생시를 버리는 별도의 계산으로 다시 세웠어요. 대부분의 생일에서는 둘이 같은 답을 냈지만, 입춘(양력 2월 4~5일 무렵)이 해를 가르는 경계라 그 근처 생일 중 생시가 있으면 두 계산이 갈리는 경우가 있었어요. 1990년 2월 4일 20시 출생으로 실측하면 — 올바른 명식은 연지가 오(午)라 역마가 신(申)인데, 생시를 버리는 쪽 계산은 연지를 사(巳)로 잡아 역마가 해(亥)로 나왔어요. 같은 사람, 같은 날짜인데 복키 화면 두 개가 다른 별을 보여준 거예요. 지금은 함수 하나가 명식 하나만 읽도록 고쳤고(커밋 ac1fea1, taekil.ts:234), 1990-02-04 사례를 회귀 테스트로 못 박아 뒀어요.
1995년 3월 20일 07시 25분 출생이 2026년 9월 1일부터 여행 날짜를 물었다고 해 볼게요. 모든 후보 날짜는 기본 점수 60에서 시작해요. 2026년 9월 4일은 그날의 오행이 금(金)인데 이 명식의 용신에 금이 들어 있어서 +14점을 얻어요. 그날의 지지는 사(巳, 뱀)인데, 이 명식(연지 해/돼지)의 역마를 yeokmaBranch()로 구하면 뱀이 나와서 +12점을 더 얻어요 — 합계 86점으로 45일 중 가장 높아요. 이틀 전인 2026년 9월 2일은 같은 용신 금으로 +14점을 얻고, 지지(묘/토끼)가 일지(술/개)와 육합을 이뤄 +10점을 얻어 84점으로 근소한 차이의 2위예요. 이건 확률이 아니에요 — 같은 45일을 같은 명식 하나에 대고 높은 순으로 줄 세운 것뿐이에요.
목록이 45개로 채워지지 않게 막는 규칙이 둘 있어요. 첫째는 하드 스킵이에요 — 그날의 지지가 당신의 일지와 충(六冲)하면, 오행이 아무리 좋아도 점수를 매기기도 전에 통째로 빠져요. 위 예시 명식(일지 술/개)에서는 45일 창 안의 진(辰, 용) 지지 날 넷이 전부 그렇게 빠지는데, 그중 2026년 9월 3일은 우승한 날과 같은 용신 금(金)을 가지고 있었는데도 결과에 안 나타나요. 둘째는 '채워 넣지 않는다'는 규칙이에요 — 기본 60점에서 더 붙는 게 아무것도 없는 날은 목록에서 그냥 빼요. 이 예시에서는 45일 중 24일만 점수가 붙어요. 화면에 뜨는 다섯은 억지로 채운 다섯이 아니라 진짜 상위 다섯이에요.
복키는 전통 통서(通書)를 참고하지 않아요 — 건제십이신도, 황도·흑도일도, 손 없는 날도 없어요. 모든 점수는 후보 날짜의 기둥과 당신 명식 사이의 관계에서만 나와요. 결혼 날짜는 배우자 별만 봐요(남성이면 재성, 여성이면 관성, 성별을 모르면 둘 다) — 두 명식을 맞춰 보는 온전한 궁합도 아니고, 만세력이 갖고 있는 더 긴 결혼 금기 목록도 아니에요. 점수 자체도 확률이 아니에요 — 86점이 '86% 확률로 좋은 일이 생긴다'는 뜻이 아니고, 복키는 점수가 높은 날이 좋은 결과를 보장한다고 말한 적이 없어요. 그리고 이 도구는 당신의 실제 일정을 몰라요 — 오늘(당신의 시간대 기준)부터 45일 안에서 고를 수 있는 날을 줄 세울 뿐이에요.