Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏪 운세 편의점

24시간 열려 있는 나의 운세 가게. 사주팔자 · 오늘의 운세 · 일일 타로 · MBTI 결합 해석을 담은 웹 앱입니다. 엽전으로 매일 조금씩 사서 보는 편의점 컨셉으로 만들었습니다. 빌드 도구 없이 순수 HTML/CSS/JS로 만들어져 어디서든 바로 실행됩니다.

🔗 배포 주소: https://gnuinu.github.io/saju/

실행 방법

# 아무 정적 서버로 열면 됩니다
python3 -m http.server 8000
# → http://localhost:8000 접속

index.html을 브라우저에서 직접 열어도 동작합니다.

배포

main 브랜치에 푸시하면 .github/workflows/deploy-pages.yml이 자동으로 엔진 테스트를 돌리고 GitHub Pages에 배포합니다. 테스트가 실패하면 배포되지 않습니다.

이 저장소는 Pages 설정이 완료되어 있습니다. 포크해서 쓰실 경우에만 아래가 필요합니다. Settings → Pages → SourceGitHub Actions로 한 번 지정해 주세요. Actions의 GITHUB_TOKEN으로는 Pages 사이트를 새로 생성할 수 없어 (Resource not accessible by integration) 최초 1회는 수동 설정이 필요합니다.

주요 기능

기능 설명 과금
오늘의 운세 내 사주 × 오늘의 일진(간지) 조합으로 매일 달라지는 개인화 운세. 총운/재물/애정/직장/건강 + 행운 아이템 무료
내 사주 사주팔자 네 기둥, 일간 해설, 오행 밸런스, 십신, 대운(10년 주기), 12운성, 공망, 신살 무료
심층 사주 리포트 십신 상세 · 직업 · 연애 · 배우자성 · 올해 세운/현재 대운 🪙 20냥 (영구)
주간 운세 7일 흐름 + BEST/주의 날짜 + 총평 🪙 10냥 (주 단위)
일일 타로 메이저 아르카나 22장, 정/역방향 해석 1장/일 무료, 추가 🪙 5냥
MBTI × 사주 16유형 × 일간 결합 해석, 시너지 점수 무료
궁합 보기 두 사주를 네 항목으로 비교. 총점·항목 점수는 무료 상세 풀이 🪙 30냥 (상대별 영구)
용어 사전 화면의 한자어를 눌러 뜻풀이 확인 (40여 개) 무료
음력 생일 입력 윤달 포함. 입력 즉시 양력 환산을 보여 줌 무료
영수증 공유 카드 오늘의 운세와 궁합을 편의점 영수증 이미지로 저장·공유 무료

과금 구조 (엽전 시스템)

손님은 엽전으로 계산합니다. 광고를 보거나 매일 출석 도장을 찍으면 엽전이 쌓입니다.

  • 획득: 첫 방문 +30냥, 매일 출석 도장 +5냥, 광고 시청 +3냥 (일 3회)
  • 사용: 주간 운세, 심층 리포트, 타로 추가 뽑기, 궁합 상세 풀이
  • 충전/정기권: 계산대에 패키지 UI 준비됨 (결제 연동 전 "준비 중" 상태)

광고/결제 연동 지점

실제 서비스 전환 시 js/store.js의 두 함수만 교체하면 됩니다.

  • showRewardedAd(onComplete, onCancel) — 현재는 5초 카운트다운 데모 모달(AdPlaceholder). AdMob/카카오 AdFit 등 리워드 광고 SDK 호출로 교체.
  • purchasePackage(pkgId, onSuccess, onFail) — 현재는 "준비 중" 안내. 인앱결제(IAP) 또는 PG 결제 모듈로 교체. 상품 정의는 IAP_PACKAGES 참조.

구조

index.html        앱 골격 (온보딩·탭·모달)
css/style.css     밤하늘 테마 스타일 (모바일 우선)
js/saju.js        만세력 엔진 (간지·절기·십신·오행, 시드 RNG)
js/lunar.js       음양력 변환 (삭·중기 계산, 윤달 판정)
js/data.js        해석 콘텐츠 (일간 10종·오행·십신·운세 템플릿)
js/fortune.js     일별/주간 운세 생성 (결정적 시드 → 같은 날 같은 결과)
js/tarot.js       메이저 아르카나 22장 + 뽑기
js/mbti.js        MBTI 16유형 × 사주 결합 해석
js/match.js       궁합 (일지·일간·오행·띠 4축 비교)
js/store.js       엽전·출석 도장·광고·결제 스캐폴딩 (localStorage)
js/receipt.js     영수증 공유 카드 (오늘의 운세 / 궁합 2종, Canvas)
js/app.js         UI 로직
tests/test.js     엔진 검증 테스트 (node tests/test.js)
docs/             다음 기능 구현 준비 문서

사주 계산 방식과 한계

  • 일주: 율리우스 적일 기반 60갑자 (2000-01-01 = 무오일 검증)
  • 년주: 입춘 기준 / 월주: 절기(節氣) 기준 / 시주: 일간 기준 오자시두법
  • 23시 이후 출생은 다음날 자시로 처리
  • 절기: 태양 겉보기 황경을 직접 계산(Meeus 천문알고리즘 + ΔT 보정)해 절기 시각까지 구합니다. 근사식(壽星公式)을 쓰지 않으므로 입춘 등 경계일 출생도 정확합니다. 같은 날이라도 절기 시각 전후로 년주·월주가 갈리는 것까지 반영합니다.
  • 한국 표준시 역사 반영: 표준자오선이 UTC+8:30이던 시기(1954-03-211961-08-09)와 서머타임 시행 기간(194851, 195560, 198788, IANA tz database 기준)에 따라 태양시 보정값을 30분 / 0분 / 90분으로 자동 조정합니다. 시주 정확도에 직결됩니다.
  • 대운: 양남음녀 순행 / 음남양녀 역행. 대운수는 순행이면 다음 절기까지, 역행이면 이전 절기부터의 일수를 3으로 나눠 산출합니다 (성별 필수)
  • 배우자성: 남자는 재성(정재·편재), 여자는 관성(정관·편관) 기준
  • 신살: 년지·일지의 삼합국 기준 도화·역마·화개, 일간 기준 천을귀인
  • 12운성: 일간별 장생 지지에서 시작해 양간은 순행, 음간은 역행으로 열두 단계를 배정합니다.
  • 공망: 60갑자를 열 개씩 여섯 순으로 나눌 때 남는 지지 두 개를 일주 기준으로 판정합니다.
  • 궁합: 일지(배우자궁)·일간·오행·띠 네 축을 각 25점으로 봅니다. 지지는 삼합/육합/충/원진/육해를, 천간은 천간합/충/상생/상극/비화를 판정하고, 두 사주를 합쳤을 때의 오행 균형과 서로의 부족한 기운을 채워 주는 정도를 반영합니다.
  • 음력: 삭(신월) 순간을 Meeus 49장으로 계산해 초하루를 정하고, "동지는 11월에 든다 / 중기 없는 달이 윤달" 규칙으로 달 번호와 윤달을 판정합니다. 한국 음력 기준인 KST(UTC+9)를 씁니다 (중국 음력은 UTC+8이라 가끔 하루 차이가 납니다). 설날·추석·윤달 실측 대조 및 1930~2030년 양력↔음력 왕복 변환으로 검증했습니다.

남아 있는 한계

  • 절기 시각은 저차항 급수를 쓰므로 실제와 수 분 차이가 날 수 있습니다. 날짜 판정에는 영향이 없고, 절기 순간 ±10분 이내 출생자만 영향을 받습니다.
  • 균시차(眞太陽時)는 적용하지 않고 평균태양시를 씁니다 (국내 만세력의 통상 관례).
  • 1930년 이전 출생은 지원하지 않습니다 (입력 범위 제한).

로드맵

  • 대운·세운 (10년 주기 운세) — 성별 기반 순행/역행
  • 신살 (도화·역마·화개·천을귀인)
  • 음력 생일 입력 (윤달 포함)
  • 결과 공유 카드 (편의점 영수증 스타일 이미지)
  • 궁합 보기 (두 사람 사주 비교)
  • 12운성 · 공망
  • 균시차(진태양시) 옵션
  • 리워드 광고 SDK 연동
  • 인앱결제/PG 연동 + 서버 측 재화 관리
  • 푸시 알림 (아침 운세 알림) — 설계 완료, 백엔드 필요

테스트

node tests/test.js   # 절기 정밀도·음력 변환·궁합·12운성·공망 등 164개 검증

⚠️ 본 앱의 운세·해석은 재미와 자기 이해를 위한 참고 자료입니다.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages