2P by colagom 20시간전 | ★ favorite | 댓글 2개

사주캣 - 자체 만세력 엔진으로 만든 사주 분석 서비스

명리학(사주팔자) 및 개발 관련 지식이 거의 없는 상태에서 클로드와 함께 만든 사주 분석 서비스입니다.

일주일쯤 전에 데모버전 완성해서 글 작성했었는데 그때에 비해 분석내용을 두 배 이상 업그레이드했습니다!!(클로드의 짠내나는 한도때문에 거금 100불을 플렉스해서 퀄리티를 높혔습니다...)

왜 만들었나

사주 앱들을 써보면 "신강이니 좋습니다" 정도의 결과만 나오고, 왜 그런 판정이 나왔는지 과정이 보이지 않습니다. 명리학이 미신이든 통계든 간에, 판정 로직을 투명하게 보여주면 사주를 "학습하는 도구"가 될 수 있지 않을까 생각했습니다.

기술적으로 재미있었던 것들

만세력 직접 구현: npm의 만세력 라이브러리(@fullstackfamily/manseryeok)를 써봤는데 절기 경계일에 ~21% 오차가 나서, KASI(한국천문연구원) 데이터 기반으로 자체 만세력 엔진을 만들었습니다. 진태양시 보정까지 포함해서 43개 테스트 케이스를 통과합니다.

합충형해파 시각화: 사주의 8글자 사이에 합(合)/충(沖)/형(刑)/해(害)/파(破) 관계가 있는데, 이걸 시각적으로 보여주는 게 생각보다 까다로웠습니다. 인접한 기둥 사이만 표시하면 시주-연주 같은 비인접 관계가 누락되는 문제가 있어서, 각 관계를 개별 카드로 분해하는 방식으로 풀었습니다.

일일 운세 로직: 오늘 일진(日辰)과 사용자 사주 4기둥 사이의 충합 관계 + 십이운성 + 천간 십성을 종합 점수화합니다. 길/흉 가이드가 서로 모순되지 않도록 480개 조합을 자동 검증하는 스크립트도 만들었습니다.

DeepSeek 간지 환각 해결: DeepSeek API를 사주 상담 채팅에 쓰는데, "2026년은 을묘년"이라고 환각을 일으킵니다 (정답: 병오년). 프롬프트에 간지 계산법과 예시를 넣어서 역산하도록 유도했습니다.

스택

  • 프론트: Vite + React (단일 App.jsx ~4300줄...)
  • 백엔드: Node.js + Express + SQLite
  • AI: DeepSeek V3 (채팅), Gemini Flash (심층분석)
  • 만세력: 자체 saju-core.js + KASI 절기 데이터
  • 한자 렌더링: HanziWriter (서예풍 한자)
  • 서버: Contabo VPS

구조

무료 탭(고양이 캐릭터)에서 기초 사주 분석을 보여주고, 유료 탭(바리만신 캐릭터)에서 심층 해석을 제공합니다. 일단 무료 유료 나눠놓기는 했는데 돈 받기는 민망한 퀄리티라 전부 무료입니다!! 사주를 잘 모르는 사람도 단계별로 배울 수 있도록 고양이가 해설해주는 설명 카드를 곳곳에 넣었습니다.

피드백 몇 마디 해주시면 정말 도움 많이 될 것 같습니다!!!

디자인도 좋고 퀄리티가 높네요!

와 감사합니다!!