@senspond

>

개발기>App 개발기

사주 만세력 JAVA 백엔드 개발 - 3 - 만세력 DB 구축하기, 24절기, 절입조정, 서머타임, 야자시/조자시 개념

등록일시 : 2024-01-28 (일) 10:22
업데이트 : 2024-01-28 (일) 05:07
오늘 조회수 : 17
총 조회수 : 4520

    프로그램 개발을 위한 만세력 DB 구축하기, 24절기, 절입조정, 서머타임, 야자시/조자시 개념을 정리해본 글입니다.

    안녕하세요. 오랜만에 작성하는 글입니다. 이번 글은 만세력 DB를 구축하는 방법과 24절기, 절입조정, 서머타임, 야자시/조자시 개념등을 정리해보겠습니다.


    만세력 DB 구축하기

    만세력 DB를 구축하는 방법을 소개해볼까 합니다.


    실제사례

    실제로 어떤 개발자는 이 데이터를 기준으로 달력과 만세력 앱을 개발했다고 밝히고 있네요.


    음양만세력 - 음력, 양력, 간지, 절기, 만세력 표시 – Apps bei Google Play



    공공데이터 포털 - 한국천문연구연 API

    공공데이터 포털에 로그인해서 다음 API 사용요청을 합니다.






    저쪽 사이트에 오타가 있는데.. 음력일정보 조회 라고 써있지만. 사실 양력일정보 조회입니다.


    예를 들어 양력 1900년 07월 07일은 경자년 계미일 신사일이 됩니다.



    api를 통해서 일일 트래픽 제한한도까지 매일 데이터를 수집해서 DB에 적재하도록 하여 구축할 수 있겠습니다.

    하지만, 이정보는 양력/음력 날짜에 대해서 천간지지를 표기해줄 뿐이고 절기력이 아닙니다. 따라서 정확한 만세력을 만들기 위해서는 24절기 절입일 정보를 따로 수집해야 합니다.



    대부분의 만세력은 한국천문연구원에서 발표한 24절기 절입시간을 기준으로 절입조정을 하고 있고 동경 135 (E135)도 기준으로 만들어진 시각입니다.

    사주팔자를 산출하기 위하여서는 월을 적용하는 것이 아니라 반드시 절기를 기준으로합니다. 태양은 하루에 1도씩 동에서 서쪽으로 이동을 하여 365.2422일 걸려 1공전 하는것이 일년입니다.

    일년은 12달이고 한달을 시작되는 날을(절)이라고 하고 그달의 중간을(기) 라고 하여 일년은 24 절기가 됩니다.


    사주팔자를 구할때 전통명리학에 따라서 계산하게 되면 양력/음력을 기준으로 하는 것이 아니라 절기력을 기준으로 월을 산정하기 때문에 절입조정을 하게 됩니다. 그러니까 실제 현시대에 사용하고 있는 음양력 달력과... 전통사주명리학에서 사용하는 달력이 서로 다르다는 거죠. 즉, 만세력 DB는 절입조정을 하기 위해 절입일이 같이 표기된 음양력이 필요합니다.


    천문우주지식정보 사이트

    달력자료 | 달력자료(월력요항) | 생활천문관 | 천문우주지식정보 (kasi.re.kr)



    양음력 데이터는 여기서 가져올 수 있고요. 24절기 데이터도 가져올 수 있는데, 최대 선택가능 년도가 2004년이네요.




    절입조정,서머타임, 야자시/조자시 개념

    프로그램을 개발하는 사람의 입장에서 특정분야의 프로그램을 개발하려면 해당분야의 도메인 지식이 있어야 합니다. 아무리 코딩테스트 알고리즘을 잘 풀고... 코드를 잘 짠다고 해도 해당 도메인 지식이 없다면 제대로 된 프로그램을 만들 수가 없죠. 그런경우가 생각보다 굉장히 많습니다.


    절입조정

    다시 한번 애기를 하자면, 사주팔자를 구할때 전통명리학에 따라서 양력/음력을 기준으로 하는 것이 아니라 절기력을 기준으로 월을 산정하기 때문에 천문연구원 양음력 데이터를 가지고 절입조정을 하게 됩니다.


    예를 들어 양력 1955-08-08 16:20 분에 서울에서 태어난 사람이라고 가정 했을때

    천문연구원 데이터를 기준으로 조회하면 을미(乙未)년 계미(癸未)월 신축(辛丑)일이 됩니다.



    그런데 만세력 앱들에서 보면 같은날 16시 20분에 때어난 사람은 갑신(甲申)월이고 16시 10분에 태어난 사람은 계미(癸未)월입니다. 무슨 애기이냐면 동경 135도 기준으로 절입일 입추(入秋)가 시작되는 시간 1955년 8월 8일 16:14 시간을 적용해

    절입조정을 했기 때문입니다. 전통명리학에 따라 사주를 세우게 된다면 절입조정은 필수입니다.


    서머타임 조정

    서머타임은 과거 한국정부에서 주로 여름철에 표준시간을 가감해 당겨쓰는 제도였습니다. 그런데 그로인해서 그 당시 태어난 사람들의 사주팔자를 세울 때 이시간을 적용하느냐 마느냐 같은 논쟁이 생겨버렸습니다.


    그래서 이 시간대에 태어난 사람들의 시간을 조정해서 사주를 세우는 방법이 서머타입 조정입니다.


    야자시/조자시 조정

    자시를 해당일의 자시를 두개로 쪼개서 (야자시 / 오후 11시 30분 - 오전12시 30분), (조자시 / 오전 12시 30분 - 오전 1시 30분) 두 가지로 나눠 야자시인 경우 해당일, 조자시인경우 다음날로 판단하여 사주팔자를 산출하는 방식입니다


    그런데, 이를 적용하느냐 마느냐에 따라서 자기 자신을 나타나는 일주가 달라져 버리고 완전히 다른 사주팔자가 되버리는 경우가 생깁니다. 그래서 이 야자시/조자시 개념을 적용해야 하는지는 학자들 사이에서도 의견이 분분한데, 이러한 논쟁이 발생하게 된 근본적인 이유는 요즘 시간개념 기준으로는 서구의 시간개념을 쓰고 있기에 하루의 시작과 끝은 밤 12시(00시) 지만, 과거 동양의 달력으로 보자면 하루의 시작과 끝은 자시가 되기 때문에 발생한 문제라고 볼 수 있겠습니다.


    전통적으로 동양에서는 하루의 시작을 자시로 보았지만, 일찍히 서구문명을 받아들인 일본에서 하루에 시작을 자시가 아닌 12시로 생각하면서 야자시/조자시 개념을 만들어 내었고 그것이 한국으로 전파되어 온것으로 알고 있습니다. 저또한 개인적으로 인정하지 않는 이론입니다.


    개발진행 상황

    만세력 DB를 만들어서 절입조정, 야자시 적용여부 까지 적용해 삼주를 뽑는것을 만들었습니다.

    앞서 설명한 개념들을 로직에 적용했습니다.



    년주,월주,일주 까지 가져왔고 데이터가 맞는지 시중에 출시된 만세력 앱과 비교해가며 확인해보고 있습니다.

    이제 추가적인 로직을 만들어서 시주를 계산해서 넣어줘야 하는데요.

    시주를 계산하려면 또 도메인지식이 필요합니다. 그외 대운수, 세운수 등을 뽑으려면 또 명리학 이론을 알아야하고요.

    다음 시간에 정리해보도록 하겠습니다.


    senspond

    안녕하세요. Red, Green, Blue 가 만나 새로운 세상을 만들어 나가겠다는 이상을 가진 개발자의 개인공간입니다.

    댓글 ( 0 )

    카테고리내 관련 게시글

    현재글에서 작성자가 발행한 같은 카테고리내 이전, 다음 글들을 보여줍니다

    @senspond

    >

    개발기>App 개발기

    • 앱개발 애드몹 광고송출 안되는 오류 Ad failed to load : 3.. 광고실패 처리 필요성

      앱개발 애드몹 광고송출 안되는 오류 Ad failed to load : 3를 겪어보면서 써본 글입니다.
        2024-09-15 (일) 10:37
      1. 사주 만세력 JAVA 백엔드 개발 - 1 - 음양과 오행, 천간과 지지 조회 API 개발

        사주명리학 이론을 바탕으로 음양오행, 천간과 지지를 JAVA 프로그래밍으로 표현해본 내용입니다.
          2023-09-05 (화) 10:50
        1. 사주 만세력 JAVA 백엔드 개발 - 2 - 오행의 상생/상극 관계를 표현, 천간지지 상극관계, 육친관계 분석

          JAVA 프로그래밍으로 사주명리학의 오행의 상생/상극 관계를 표현하고 천간과 지지 간의 상극 관계, 육친관계를 분석할 수 있도록 구현해 본 글입니다.
            2023-09-06 (수) 01:10
          1. [현재글] 사주 만세력 JAVA 백엔드 개발 - 3 - 만세력 DB 구축하기, 24절기, 절입조정, 서머타임, 야자시/조자시 개념

            프로그램 개발을 위한 만세력 DB 구축하기, 24절기, 절입조정, 서머타임, 야자시/조자시 개념을 정리해본 글입니다.
              2024-01-28 (일) 10:22
            1. 사주 만세력 JAVA 백엔드 개발 - 4 - 시주 계산로직 만들기

              대한민국 표준시 동경135도, 명리학에서 시주를 세우는 법에 대한 내용을 정리해보고 JAVA 프로그램을 통해 시주를 계산해본 내용입니다.
                2024-01-28 (일) 11:55