오늘의 운세 사주 무료로 보는 앱, 토스 '운세 한 잔' 만들어 출시했습니다

운세 앱이나 사이트를 보면 대부분 비슷합니다. 들어가면 가입부터 시키고, 화면 절반이 광고고, 정작 결과는 누구한테나 똑같이 나오는 두루뭉술한 문장 몇 줄입니다. 생년월일을 받아놓고도 실제 사주를 계산하는 게 아니라 그냥 띠나 별자리로 적당히 돌리는 경우가 많습니다. 예전부터 그게 좀 아쉬웠습니다. 기왕 생일을 받을 거면 진짜 만세력으로 계산해서 사람마다 다른 결과가 나와야 하지 않나 싶었습니다. 그래서 사주 명리 계산 엔진을 직접 짜고, 그걸 토스 미니앱으로 붙여서 운세 한 잔이라는 앱을 만들었습니다. 며칠 다듬어서 오늘 토스 앱인토스에 정식 출시했고, 이 글은 그 과정을 정리한 기록입니다.

 

그냥 랜덤이 아니라 진짜 만세력으로 계산합니다

가장 공을 들인 부분은 사주를 실제로 계산하는 엔진입니다. 사주팔자는 태어난 연월일시를 각각 천간과 지지로 바꿔서 네 개의 기둥, 그러니까 연주 월주 일주 시주로 세우는 건데 생각보다 경계 처리가 까다롭습니다.

 

연주는 양력 1월 1일이 아니라 입춘을 기준으로 해가 바뀝니다. 그래서 2월 4일 입춘 전에 태어났으면 전년도 간지로 잡아야 합니다. 월주도 마찬가지라 매월 1일이 아니라 절기가 드는 절입일을 기준으로 넘어갑니다. 이걸 무시하고 그냥 달력 날짜로 계산하면 경계에 걸친 사람들 사주가 통째로 틀어집니다.

 

일주는 날짜만으로 정해지는데, 음력이든 양력이든 율리우스 적일(JDN)로 환산한 다음 60간지를 순환시키는 방식으로 구했습니다. 기준점은 2000년 1월 7일이 갑자일이라는 사실을 앵커로 잡았습니다. 시주는 시두법을 그대로 옮겨서, 일간에 따라 자시의 천간이 정해지는 규칙으로 계산했습니다. 음력으로 생일을 넣는 분들을 위해 음력을 양력으로 환산하는 변환도 따로 만들었습니다.

 

오늘 운세는 오행 상생상극으로 뽑습니다

기둥을 다 세우고 나면 일간, 즉 태어난 날의 천간을 그 사람의 본질로 봅니다. 명리에서 일간을 자기 자신으로 보는 전통 방식입니다. 일간의 오행이 목 화 토 금 수 중 무엇인지 정해지면, 오늘 운세는 오늘 날짜의 간지인 일진과 내 일간 사이의 상생상극 관계로 풀어냅니다.

 

예를 들어 내 일간이 목인데 오늘 기운이 수에 해당하면 수생목으로 나를 도와주는 날이라 점수가 높게 나오고, 반대로 나를 극하는 기운이 오는 날이면 조심하라는 쪽으로 기웁니다. 이달 운세는 월건으로, 올해 운세는 세운으로 같은 계산을 적용합니다. 그래서 오늘과 이달과 올해 흐름이 각각 다르게 나옵니다.

 

행운의 색이랑 방향도 신경 쓴 부분입니다. 이것도 랜덤이 아니라 그 사람한테 맞는 오행에 맞춰 정합니다. 오행마다 대응하는 색과 방위가 정해져 있어서, 목이면 청록과 동쪽, 화면 붉은색과 남쪽 하는 식으로 보완하면 좋은 색과 방향을 뽑아줍니다.

 

궁합이랑 띠별 랭킹도 같은 엔진에서 나옵니다

엔진을 한 번 제대로 만들어두니 다른 기능은 거기서 파생시키면 됐습니다. 궁합은 두 사람의 일간 오행이 서로 상생인지 상극인지를 보고, 거기에 띠끼리의 조화를 더해서 점수를 냅니다. 띠별 랭킹은 열두 띠를 각각 오늘 일진과 대조해 점수를 매기고 순위로 정렬한 것입니다. 출근길에 내 띠가 오늘 몇 위인지 슬쩍 보는 재미가 은근히 있습니다.

 

맞게 계산하는지 테스트로 못 박아뒀습니다

사주 계산은 한 군데만 틀려도 결과 전체가 어긋나기 때문에 검증 테스트를 따로 짰습니다. 음력에서 양력으로 환산한 설날 날짜가 실제 달력과 맞는지, 2000년 1월 7일이 갑자일로 떨어지는지, 그리고 1990년 6월 15일 오시 생이 경오년 임오월 신해일 갑오시로 정확히 나오는지 같은 케이스를 박아두고 빌드할 때마다 돌립니다. 재미로 보는 앱이라도 계산이 틀리면 의미가 없으니까요.

 

토스 미니앱으로 만든 이유와 출시 과정

앱을 토스 안에서 도는 미니앱으로 만든 이유는 단순합니다. 플레이스토어나 앱스토어에 따로 올리고 설치를 시키는 순간 사람들이 잘 안 들어옵니다. 운세 한 번 보겠다고 앱을 설치하기는 부담스러우니까요. 토스 미니앱은 토스 앱 안에서 검색하면 바로 열리고, 토스 계정으로 인증되니 회원가입도 없습니다. 화면은 리액트 네이티브 기반의 그래나이트 프레임워크로 짰습니다.

 

출시 과정은 생각보다 단계가 많았습니다. 미니앱을 콘솔에 등록하고, 앱 이름과 카테고리, 로고, 스크린샷 같은 정보를 채우고, 인앱결제 상품을 등록한 다음 검토를 요청합니다. 토스 쪽 심사를 통과해야 그때 출시 버튼이 열립니다. 중간에 출시 노트에 콘솔 예시 문구가 그대로 들어가 있어서 모르고 내면 반려되는 함정 같은 것도 있었는데, 그런 자잘한 것들을 하나씩 정리하고 나서야 출시까지 왔습니다.

 

수익화는 최대한 정직하게 잡았습니다

수익은 광고와 인앱결제 두 가지로 받습니다. 다만 기본 운세는 그냥 무료로 보게 두고, 깊은 풀이나 내일 운세처럼 한 단계 더 들어가는 것만 광고를 한 번 보면 그날 하루 열리게 했습니다.

 

광고조차 보기 싫은 분들을 위해 프리미엄을 한 번 결제하면 광고 없이 계속 쓸 수 있게 했고요. 처음에는 결제 호출이 시뮬레이션으로만 동작하다가, 토스 정산을 통과하고 콘솔에 실제 상품을 등록하면서 진짜 결제로 연결했습니다. 그 전까지는 결제 버튼을 눌러도 돈은 안 빠지고 그냥 풀리는 상태였거든요.

 

이렇게 사주 계산 엔진부터 토스 출시까지 한 바퀴 돌고 나니, 작은 앱이라도 챙길 게 꽤 많다는 걸 다시 느꼈습니다. 운세 한 잔은 토스 앱에서 운세 한 잔으로 검색하면 바로 보실 수 있습니다. 직접 만든 거라 빠진 부분도 있을 텐데, 써보시고 계산이 이상하거나 있으면 좋겠다 싶은 기능이 보이면 편하게 알려주시면 반영하겠습니다.

Top