서양 점성술은 어떻게 계산하나
무엇을, 어떻게 계산하고, 어디서 멈추는지.
서양 점성술은 당신이 태어난 그 순간의 하늘을 지도로 그려요. 쓰는 황도는 트로피컬이라 춘분점에서 시작해 원을 30°씩 열두 구간으로 잘라요. 그러니까 '별자리'는 계절을 기준으로 잰 하늘의 한 구간이에요 — 밤하늘의 별 그림도 아니고, 이름이 같은 그 성좌와도 조금 달라요. 일을 거의 다 하는 자리는 셋이에요. 태양은 변하지 않는 쪽의 나, 달은 속에서 도는 날씨, 상승궁은 태어난 그 분에 동쪽 지평선을 넘어오던 황도의 한 구간 — 세상을 마주할 때 쓰는 얼굴이죠. 이 셋을 흔히 빅3라고 불러요.
태양궁 날짜는 표예요. 그리고 표가 무엇을 대가로 하는지도 같이 적어요. 태양이 각 30° 선을 넘는 순간은 달력에 대해 하루쯤 흔들려서, 고정된 날짜 목록은 경계 부근에서 대략 하루가 어긋나요. 대부분의 사이트는 한쪽을 골라 놓고 아무 말도 하지 않는 쪽을 택해요. 복키는 대신 당신 생일의 하루 전과 하루 뒤를 같이 재요. 둘 중 하나가 다른 별자리에 떨어지면 당신 생일은 그 흐릿한 띠 안에 있는 거고, 화면이 그 사실과 이웃 별자리 이름을 함께 알려줘요 — 자신 있는 '황소자리'가 아니라 '황소–쌍둥이 커스프'로요. 흔들림이 실제로 있으니 흔들림을 보여주는 거예요.
이 둘은 표에서 나오지 않아요. 달은 에페메리스(astronomy-engine, MIT 라이선스, JPL 자료 기반)에 태어난 순간의 지심 황경을 물어서, 그 값을 30으로 나눈 구간이 달자리예요. 달은 하루에 약 13°를 움직여서 태어난 시각이 없으면 답이 추측이 되니까, 추측하는 대신 시각을 물어요. 상승궁은 장소까지 필요해요. 같은 에페메리스에서 겉보기 항성시를 받아 동경도를 더해 지방항성시를 만들고, 그날의 진황도경사를 구한 뒤, 위도를 넣어 고전 상승궁 공식을 풀어요. 테스트는 이 결과를 서로 다른 두 길로 검사해요. 계산한 점을 에페메리스 자신의 회전행렬로 되돌려 보내면 동쪽 지평선 고도 0에 놓여야 하고 — 그게 상승궁의 정의예요 — 공개된 출생차트 값과도 맞아야 해요. 상승궁은 4분에 약 1°씩 돌기 때문에 도시까지 묻는 거예요.
리턴은 그 행성이 당신이 태어나던 자리의 황경으로 돌아오는 순간이에요. 복키는 황경 차이의 부호가 바뀌는 지점을 이분탐색으로 찾고, 테스트가 그 일치를 약 0.01° 안으로 붙들어요. 주기는 토성이 29.5년쯤, 목성이 11.86년쯤에 떨어져요. 정직하게 적어 둘 결이 하나 있어요. 행성이 역행하는 동안에는 같은 도수를 최대 세 번 지날 수 있어서 리턴이 늘 하루로 딱 떨어지지는 않아요. 복키는 첫 정확 통과를 돌려주고 — 점성 실무에서 보통 그렇게 봐요 — 그렇다고 코드에 적어 뒀어요.
복키의 베다 페이지는 같은 에페메리스에서 라히리 아야남샤를 뺀 값으로 돌아가요. 같은 하늘, 다른 기준점이에요. 트로피컬은 춘분점에서 세고 사이더리얼은 항성에서 세는데, 지금 그 차이가 24° 안팎이라 보통 별자리 하나 분량이에요. 서양 태양궁과 베다 라시가 자주 어긋나는 이유가 그거고, 어느 쪽도 다른 쪽의 정정이 아닌 이유도 그거예요. 코드에서도 두 엔진을 일부러 갈라 둬요.
하우스와 어스펙트. 온전한 출생차트는 하늘을 열두 하우스로 나누고(플라시두스·홀사인·이퀄 — 어느 쪽이 옳은지 유파마다 실제로 갈려요) 행성 사이 각도를 재요. 복키는 둘 다 계산하지 않아요. 그래서 원반을 그려 놓고 차트라고 부르지 않아요. 서머타임: 출생지는 표준시 오프셋만 들고 있어서 서머타임 기간에 태어났다면 한 시간 어긋날 수 있고, 화면이 '한 시간 앞으로 해보라'고 말해요 — 조용히 틀린 채로 두지 않아요. 목록에 없는 도시: 위도·동경도·표준시를 갖춘 40곳이 전부라, 당신의 도시가 없으면 지어낸 상승궁 대신 아무 상승궁도 주지 않아요. 그리고 여기 어느 것도 판결이 아니에요 — 당신에게 등수를 매기지 않고, 다른 사람에게 점수를 붙이지 않고, 건강에 대해서는 아무 말도 하지 않아요.