처음엔 무모하게 계산을 시도했었다. 단순히 태양과 달의 거리와 각각의 황경 황위만 가지고 어떤 관계식을 유도하려고 했다. 겨우 몇 줄(10줄 미만) 안되는 루틴이었다. 그렇게 해서 뽑은 결과와 실제 결과와 어느 정도 비슷하게 나왔으나 찾아내지 못하는 일식월식 (eclipses)도 있었다. 제대로 계산을 해봐야겠다 생각을 하고 마음 먹고 계산을 시도한 결과 이젠 동영상까지 그릴 수 있게 되었다.
일식이나 월식 현상은 어린 아이들도 이해하기 쉬운 아주 간단한 현상이다. 그러나 이게 천문계산으로 들어가게 되면 만만찮은 작업이다. 달과 태양의 위치 계산부터 시작된다.
월식은 계산하기 비교적 쉽다. 다이어그램까지 그리는데도 며칠 안걸렸다. 그런데 일식은 세세한 상황까지 계산을 해야하는 거라 비교적 까다로웠다.
1차적으로 합삭일에서 일식여부를 판정한다. 그런 다음 베젤요소를 계산하고 세세한 상황을 계산하게 된다. 그런데 1차 일식판정에서 일식후보가 되었음에도 상세 계산에서는 일식이 안되는 경우도 발생한다. 1차 판정법이 충분치 않다는 것이다. 이런 부분은 책에 나와있지 않다. 계산하는 과정에서 알게 된 사실이다.
일식이나 월식 계산에 있어 상수(constants)들이 있는데 어떤 상수값을 사용하느냐에 따라 일식타입이 바뀔 수도 있고 월식이 사라지는 경우도 발생한다. 그 값은 주로 달과 지구의 비율인 k 값에 기인한다. 또 다른 값은 달의 중심차다. 천체력(ephemeris)은 질량중심을 기준으로 위치계산을 수행한다. 하지만 일식이나 월식은 형태중심으로 계산해야 한다. 그 차이는 아주 미미하지만 그 차이로 인해 계산결과에 있어 시간상 1-3초 가량의 차이를 준다.
보통 일식(월식)계산에 있어서는 베젤요소를 미리 계산해놓고 나중에 필요한 베젤요소만 읽어서 계산을 수행한다. 그런데 이런 방식으로 계산을 하게 되면 달의 중심차를 계산에 넣기가 까다로와진다. 중심차 보정은 황경황위에서 해주어야하기 때문이다. 그래서 내 경우에는 베젤요소는 실시간으로 계산하고 그 보다 더 기초적인 요소를 파일로 저장해 놓고 불러온다. 그 기초적인 요소는 황경황위다. 베젤요소 계산하는 건 거의 시간을 안잡아 먹기 때문에 이런 방식이 훨씬 더 계산에 융통성을 준다.
기본 요소로 황경황위값을 텍스트 파일 보다는 바이너리 파일로 저장해서 불러온다. 그러면 다이렉트하게 원하는 시점의 요소를 불러올 수 있어서 몇 천년 전의 특정 해의 값이나 몇 천년 후의 특정 해의 값을 가져오는데 거의 속도차가 없다. 텍스트파일로 하게 되면 순차적으로 읽어서 처리하거나 바이너리 서치를 해야하는데 시간이 비교적 오래 걸린다. 순차적으로 읽어오는 것은 파일 뒷부분으로 갈 수록 느려지고, 바이너리 서치는 약간 복잡해진다. 바이너리 파일 구조가 중요한데 자료구조에 대한 지식이 좀 필요하다. 디비 작동 방식을 이해하면 구현하기 어렵지 않다.
일식월식 서비스를 공언해놨는데 단순히 수치계산결과를 보여주는 것은 큰 의미가 없다고 본다. 일식과 월식은 우리가 눈으로 관찰할 수 있는 거시 현상이다. 그것만으로도 큰 눈요기감이다. 그런 비쥬얼적인 결과물이 없는 수치만의 결과는 아무런 재미도 없고 흥미를 유발하지 못한다. 일반인들 입장에서는 수치 보다는 눈으로 보는 즐거움이 더 크기 때문이다. 조금 더 정교하게 다듬는 일만 남았다. 천문현상에 관심있는 학생 일반인 전문가들까지 즐길 수 있는 일식월식 서비스가 되도록 할 것이다.
국내에 이미 훌륭한 사이트가 있었다면 굳이 내가 할 필요는 못느꼈을 것이다. 아무리 나라가 작기로서니 한 국가에 이런 서비스가 없다는 것 자체가 불만스러웠다. 한국천문연구원 사이트에 일식월식 메뉴가 있으나 일식도나 월식도는 나사에서 만든 것들이다. 그걸 보고 나서 약간 황당했다. 여러가지 정황으로 보건데 솔직히 계산결과도 천문연구원에서 직접 한 것 같지 않다. 계산결과를 보면 나사의 결과와 똑같기 때문이다. 실제 계산을 수행해보면 알겠지만 1초 미만단위까지 완벽하게 똑같이 나올 수가 없다. 서비스 범위도 일식은 60년(1991-2050), 월식은 120년(1951-2070) 밖에 안된다. 어째든 마음에 안든다.
누군가 열정이 있으면 하는 것이다. 열정은 그 자체로 충분한 가치가 있다.