DONE‎ > ‎

한국 음력 iCalendar

다음 캘린더가 음력을 등록할 수 있도록 되어 있지만 .ics 파일에는 음력이 한 번만 나오고 반복 처리되지 않는 문제가 있다 2010년 6월부터 CalDAV 동기화를 지원하면서 음력도 같이 지원한다. 기존에 웹에서만 잘 나오던 음력 기념일을 제대로 표현해준다. 웹에서 등록하고 다른 데서 확인하는 식에는 전혀 불편함이 없게 되었다.


개인적으로 온라인 달력 서비스에서 음력 지원이 되지 않는 것에 대해 불편하게 생각해왔기 때문에 음력 지원의 가능성을 모색해왔으나 (세계 각지의 고유한 역법까지 고려하지 않더라도) 당장 음력만도 대한민국의 음력과 중국의 음력이 다르고 간단한 수식만으로는 산출해내는 것이 불가능하다고 한국천문연구원에서 밝히고 있는 만큼 기존 달력 서비스에서 음력을 지원하기란 요원한 일이라고 결론을 내렸다.

현실적으로 선택 가능한 방법은 양력 기준의 달력 서비스에 음력 날짜를 등록하여 함께 볼 수 있도록 하는 것이다. 실제로 매년 그 해의 음력 달력을 iCal 포맷으로 만들어 배포하는 분들이 있는데 그 내용을 보면 보름마다 날짜를 두어 종이 달력을 보듯이 직접 날짜를 계산하도록 하고 있다. 하지만 이는 사용자의 지속적인 관심이 필요한 것으로 달력 서비스가 지향하는 일정관리 보조라는 의미를 제대로 살리지 못하고 있다.

필요한 것은 특정 음력 날짜가 양력으로 언제인가 하는 것이다. 양·음력 대응표가 있다면 음력 날짜에 대응하는 양력 날짜를 매년 추출해 출력하면 된다. 그래서 Django로 만들었다가 Google App Engine으로 재작성하였다. 필요한 동작 자체는 매우 단순하여, 달력을 호출하는 주소에 직접 날짜를 명기해주면 그 음력에 해당하는 양력 날짜가 iCal 형식에 맞게 출력된다. 파일로 저장하거나 직접 온라인의 .ics 주소를 등록하면 된다. (이때 구글 달력에 .ics 주소를 그대로 등록하면 한글로 표기한 설명이 모두 깨지는데 다음 캘린더에서 제공하는 .ics도 마찬가지로 깨지는 것으로 보아 구글 측에서 한글을 제대로 수용하지 못하는 것으로 생각된다. URL이 아닌 파일은 잘 처리된다.) 이를 위해 클라이언트를 구분해 한글과 영문을 달리 표기하는 처리가 필요하다.

부가적으로 날짜를 설정하기 쉬운 인터페이스를 생각한다면 자바스크립트를 적절히 활용해 날짜 설정을 매끄럽게 할 수 있도록 하고 설정된 날짜의 달력 파일 주소를 쉽게 가져다 쓸 수 있도록 해야 할 것이다. 혹은 여기에 더하여 생성된 달력 자체를 화면에서 직접 확인할 수 있도록 하는 것도 생각할 수 있겠지만 웹페이지에 달력을 표시하고 유동적인 내용을 표시하는 것이 오히려 달력 파일 생성보다 복잡한 수준이라서 중요도는 높지 않다.

기초 자료가 되는 양·음력 대조표를 DB 형태로 구축한 것이 2009년 6월이고, 실제 iCal 생성은 2010년 4월에 완성했으며 부가적인 인터페이스를 만드는 것은 2010년 6월에 일단락되었다. 날짜별로 설명을 덧붙이는 것은 굳이 사용자 계정을 생성하는 데까지 가지 않고 호출하는 주소에 변수를 넘기도록 하여 그 변수가 설명으로 나오도록 하였다.

http://korean-lunar-ical.keizie.net 에서 확인할 수 있다.
(구글 앱 엔진에 quota 초과로 접속이 되지 않는 문제가 발생하여, 다시 자체 서버로 옮김)
Comments