본문 바로가기

신변잡기

압축 만세력

728x90
반응형

역학 프로그램 개발에 필수적인 것이 만세력이다.

단순히 음력,양력만 있는것이 아니고 절기에 따른 간지의 변화는 기본이고

기문둔갑을 개발한다면 초신접기를 끊어야 되고

자미두수를 개발한다면 음력기준으로 간지를 바꿔야 되고

구성학을 개발한다면 일명성은 별도의 만세력이 필요 하다.

이 모든것을 한 꺼번에 개발한다면 날짜 데이타베이스 없이 계산으로만 구현하는것은

거의 불가능에 가깝다.

따라서 만세력 데이타베이스를 구축이 필수다.

 

지금은 개발환경이 많이 좋아졌지만 초기에는 안드로이드 어플개발시에 

데이타베이스가 1GB를 초과할 수 없었다.

근데 1920년~2050년 정도의 날짜를 데이타를 음력,양력포함해서 만들고 보니

1GB가 훌쩍 넘어갔다. 물론, 당시에도 편법으로 쪼개서 넣는 방법이 있기는 했다.

 

고심끝에 데이타 내용을 줄이기로 했다.

아래에 첨부한 이미지가 그것이다.

 

한 달이면 30 ~31 row 가 필요한데 많아야 7 row 이내로 줄여서 압축했다.

월초 며칠과 월말 정도만 들어있다. 그 사이의 날짜는 코딩으로 계산식으로 구하기로 했다.

전체 용량을 1/4 로 줄여버린 것이다.

 

태세와 월건은 몰라도 일진은 디비에 집어넣을 필요가 없다. 바보가 아니라면..

일진의 경우 천간은 고유한 인덱스값을 10으로 나누어서 나머지를 구하면 되고

지지는 12로 나누어서 나머지를 구하면 된다.

  

 

 

이렇게 만들고 보니 어플 만드는데 전혀 무리가 없었다.

계산식의 착오도 없이 정확히 구해냈다.

 

간혹 만세력 디비를 좀 달라는 요청을 받기도 했지만 가져가봐야 쓰기 힘들것이라 했다.

번거로운 계산과정을 거쳐야 하니까...

 

단점이라면 내가 가끔 새로운 기능을 만들고자 할 때  내가 만든 소스지만 소스코드를 한 참 들여다 봐야 한다는 것이다.

이제 PC도 스마트폰도 성능도 좋아졌으니 좀 더 활용하기 쉬운 데이타베이스를 만들어 볼까 싶기도 하다.

 

 

 

 

 

 

728x90
반응형

'신변잡기' 카테고리의 다른 글

기문둔갑 프로그램 개발건  (4) 2021.04.15
야자시 조사시 그리고 초신접기  (0) 2021.04.06
성명학 최종 마무리  (0) 2021.03.27
성명학 추가기능  (0) 2021.03.17
자미두수 대한과 명리대운  (0) 2021.03.10