← Back to Projects

FateWeaver

MVP 완료·2025-02·fullstack
Next.js 15TypeScriptSupabaseClaude APITailwind CSSnext-intlLemon Squeezy
FateWeaver

Overview

사용자의 생년월일시를 입력받아 동양 사주팔자(만세력 기반)와 서양 타로 카드를 Claude AI가 융합 해석하는 글로벌 운세 서비스입니다. AI가 신비로운 현자 페르소나로 개인 맞춤형 리딩을 제공하며, 6가지 리딩 유형(기본 사주, 타로, 궁합, 10년 운세, 월간, 연간)을 지원합니다. 한국어/영어 다국어와 무료/프리미엄($6.99/월) 구독 모델로 운영됩니다.

Key Features

01사주팔자 계산 엔진: 만세력(한국천문연구원 데이터) 라이브러리로 생년월일시 → 사주 변환
0278장 타로 카드 시스템: 메이저/마이너 아르카나 전체 구현, 카드별 정/역위치 해석
03AI 오라클: Claude API + 6가지 프롬프트 템플릿으로 사주와 타로를 융합 해석
04다국어 지원: next-intl로 한국어/영어 완전 분리 (URL 기반 라우팅)
05구독 결제: Lemon Squeezy 연동, 무료(일 1회) / 프리미엄($6.99, 무제한) 티어
06Google OAuth 인증: Supabase Auth로 소셜 로그인 구현
07SEO 블로그: 사주/타로/점성술 관련 3개 가이드 문서로 오가닉 트래픽 확보

Architecture

Next.js 15 App Router (SSR + Client Components) → Auth: Supabase Auth (Google OAuth) → 사주 계산: manseryeok 라이브러리 (서버 사이드) → 타로 엔진: 78장 카드 데이터 + 랜덤 드로잉 → AI 해석: Claude API (6종 프롬프트 템플릿) → 결제: Lemon Squeezy Webhook → 구독 상태 관리 → DB: Supabase PostgreSQL (유저, 리딩 히스토리, 구독) → i18n: next-intl (ko/en) → Deploy: Vercel

Results

MVP 78% 구현 완료 (Phase 4 Growth 단계)

6가지 리딩 타입 (사주, 타로, 궁합, 10년운, 월간, 연간)

한국어/영어 완전 다국어 지원

무료/프리미엄 구독 결제 시스템 완성

Challenges & Solutions

Problem

만세력 라이브러리의 출력을 AI가 이해할 수 있는 형태로 변환하는 게 복잡했음

Solution

사주 계산 결과를 구조화된 JSON으로 정규화하는 중간 레이어를 만들고, AI 프롬프트에 사주 해석 가이드를 포함시켜 정확도 향상

Problem

다국어 지원 시 AI 응답도 언어에 맞춰야 하는데, 프롬프트 관리가 복잡해짐

Solution

언어별 프롬프트 템플릿을 분리하고, AI에게 응답 언어를 명시적으로 지시하는 시스템 프롬프트 구조 설계

Problem

무료/프리미엄 사용량 제한을 서버에서 안전하게 관리해야 했음

Solution

Supabase RLS(Row Level Security) + 일별 사용량 카운터로 클라이언트 조작 불가능한 제한 시스템 구현