→ 합성 점수 +1.2 (양호, 상충 있음) → 생성 문장 예: "이번 달 재물운은 전반적으로 순조롭다. 다만 지출 충동이 커질 수 있는 시기이니, 계획적인 소비 성향을 살려 큰 지출은 미리 예산을 세워두면 좋다."
06 · Five Outputs
출력 5종 상세
모두 같은 병합 엔진 결과(8축 벡터 + 태그)를 시간 스코프와 주제만 바꿔 재사용한다. 콘텐츠를 5번 따로 만드는 게 아니라 1개 프로필 → 5개 렌즈로 본다.
01
오늘의 운세
8축 중 오늘 변동폭이 큰 2~3축만 발췌해 3줄 요약. 행운의 색/방향/아이템은 오행 부족분을 보완하는 색상·사물로 자동 매핑. 알림 발송용 30자 카피 별도 생성.
02
이번 달 운세
토정비결 월별 소괘 + 사주 월운을 축으로, 8축 전체를 레이더 차트로 시각화. 주차별(1~4주) 흐름 타임라인 포함, 이달의 주의 시기 1곳 하이라이트.
03
과거 6개월 ~ 앞으로 6개월
대운/세운(사주) + 토정비결 연간 흐름을 12개월 라인차트로. 지난 6개월은 "결과 되짚기" 톤(이미 지난 일과 대조), 향후 6개월은 "대비" 톤으로 문장 어투 자동 전환.
04
나의 고민 (재물/성공/애정 택1)
선택 주제에 해당하는 축(재물운/성공·커리어/애정운)만 심층 확장. MBTI 유형별 구체 행동 조언(예: INTJ+재물 고민 → "직관적 투자보다 데이터 기반 결정 선호 성향 활용") 매핑.
05
타로점 — 3카드 스프레드 × MBTI × 사주 병합
과거/현재/미래(또는 4번에서 고른 고민 주제에 맞춘 스프레드) 3장을 뽑는다. 카드 자체 의미(오픈소스 텍스트)를 그대로 쓰지 않고, 이미 산출된 8축 벡터와 교차 해석한다.
일치 시 — 카드 의미와 사주/MBTI 축이 같은 방향이면 "카드가 사주의 흐름을 다시 한번 확인시켜준다"는 확신 톤
상충 시 — 카드가 경고, 사주가 긍정이면 "큰 흐름은 좋으나 이 시기 특정 선택은 주의하라는 신호"로 스코프를 좁혀 해석 (시기 vs 선택의 차이로 모순을 해소)
텍스트 생성 — 카드명 + 정/역방향 + 교차된 8축 태그를 조합한 규칙 기반 템플릿. 향후 LLM 연동 시 이 템플릿을 few-shot 예시로 사용 가능
07 · Product Flow
전체 사용자 플로우
1 온보딩
MBTI 16문항
축당 4문항, 5점 척도
→
2 입력
성별 · 생년월일
양/음력 토글, 시간 선택
→
3 계산
병합 엔진 실행
API 변환 + 8축 정규화·합성
→
4 결과
5탭 리포트
오늘/이달/12개월/고민/타로
→
5 재방문
홈 = 오늘 탭
프로필 저장, 매일 자동 갱신
08 · Interactive Prototype
클릭 가능한 목업
아래는 실제 데이터 대신 예시값으로 동작하는 화면 흐름입니다. 질문에 답하고, 정보를 입력하면 5탭 결과를 확인할 수 있습니다.
合一運勢
네 가지 관점, 하나의 결론
MBTI · 별자리 · 사주팔자 · 토정비결을 병합해 오늘의 조언을 만듭니다. 약 16개 문항 + 기본 정보 입력에 3분 정도 걸려요.
E / I — 에너지 방향
낯선 모임에서 나는 먼저 말을 건다
기본 정보
사주와 별자리 계산에 사용돼요.
성별
생년월일 기준
생년월일태어난 시각 (선택)
음양력 변환 중...
ENTJ · 음력 1996.04.27 · 쌍둥이자리
오늘의 운세 일치 신호 3개
사주 일간의 기운이 강해지는 날. 별자리(달의 위치)도 감정적 안정을 가리켜, 오늘은 중요한 대화를 시작하기 좋다. 다만 재물운은 사주와 토정비결이 엇갈려 — 작은 지출은 괜찮지만 큰 계약은 하루 미루는 편이 낫다.
에너지
+1.6
관계운
+1.2
재물운
+0.2
이번 달 운세 2026년 8월
토정비결 월운과 사주 월주가 모두 "확장"을 가리키는 달. 새 프로젝트나 관계를 시작하기 좋은 시기지만, 셋째 주는 별자리상 커뮤니케이션 마찰(수성 영향)이 있어 계약·문서 검토는 신중히.
성공/일
+1.8
애정운
+0.6
안정성
−0.4
과거 6개월 → 앞으로 6개월
지나온 흐름 (2월~7월) — 대운상 준비기였고, 실제로도 정리·재정비의 시간이었을 가능성이 높다.
앞으로 (9월~2027년 2월) — 세운이 재성과 만나는 구간 진입. 토정비결 하반기 괘도 재물 확장을 가리켜, 10~11월 사이 새로운 수입원이나 제안이 들어올 수 있다.
어떤 고민이 가장 크신가요?
재물 — 심층 조언
ENTJ의 계획적 성향과 이번 시기 사주의 편재운이 만나, 무리한 투자보다는 기존 자산의 재배치가 유리하다. 별자리(금성)는 충동적 소비 욕구를 자극하니, 큰 지출 전 24시간 규칙을 적용해보자.
세 장의 카드를 눌러 확인하세요 (과거 · 현재 · 미래)
병합 해석
과거에 뽑힌 은둔자는 최근 대운의 "정비기"와 정확히 일치한다. 현재의 컵의 여왕은 ENTJ답지 않게 감정을 우선하라는 신호로, 사주의 관계운 상승과 겹친다. 미래의 별은 토정비결 하반기 확장운과 같은 방향 — 세 체계가 모두 "회복 후 도약"을 가리키는 드문 일치 케이스다.
09 · Privacy
개인정보 처리 정책
생년월일 + 성별 + 출생시각 + 출생지 조합은 결합 시 개인 식별 가능성이 있는 민감 정보다. "운세 서비스니까 괜찮다"고 넘기지 않고, 수집 최소화와 삭제권을 설계 단계부터 명시한다.
수집 & 저장 원칙
최소 수집 — 출생시각·출생지는 선택 입력. 필수는 생년월일(양/음력)·성별뿐
로컬 우선 계산 — 가능한 연산(오행 산출, 8축 병합)은 클라이언트에서 처리하고, 서버에는 결과 요약만 저장해 원본 조합 노출을 줄임
비식별 저장 — 생년월일은 별도 테이블에 암호화 저장, 계정 식별자와 분리 보관(키 분리)
보관 기간 — 계정 삭제 시 즉시 파기, 휴면 계정은 1년 후 자동 파기 고지 후 삭제
사용자 권리 & 예외 케이스
삭제 요청 — 설정에서 "내 사주 정보 삭제" 원클릭 제공, 삭제 시 캐시된 리포트도 함께 파기
미성년자 — 만 14세 미만은 법정대리인 동의 플로우 필요(국내 개인정보보호법 기준), 온보딩에서 생년 입력 시 자동 분기
궁합 기능의 제3자 정보 — 상대방 생년월일 입력 시 "본인 동의를 받았는지" 체크박스 필수, 상대방 정보는 요청자 계정에만 귀속되고 별도 계정 생성/알림 금지
제3자 API 전송 범위 — KASI API 호출 시 생년월일 원문 대신 최소 단위(연/월/일)만 전송, 이름·연락처 등은 어떤 외부 호출에도 포함하지 않음
설계 반영 — 온보딩 3-B(입력 설계) 화면에 "왜 이 정보가 필요한가"와 "선택 항목은 건너뛸 수 있음"을 각 필드 아래 1줄로 명시. 개인정보처리방침 링크를 생년월일 입력 필드 바로 아래 배치(약관 페이지에 묻지 않기).
10 · Accuracy QA
정확도 검증 프로세스
자체 오행/토정비결 룰엔진과 별자리 근사 계산은 검증 없이는 신뢰할 수 없다. 출시 전후 상시 대조 체계를 둔다.
검증 대상
대조 기준
방법 & 주기
음양력 변환
KASI API 응답 자체가 기준(공식 소스이므로 별도 대조 불요)
API 응답 스키마 변경 여부만 배포 전 스모크 테스트로 확인
사주 4주(년/월/일/시주)
공개 만세력 프로그램(예: 사주 만세력 표준 계산 로직) 결과값
1900~2050년 사이 무작위 200케이스 샘플링 → 4주 간지 100% 일치 목표, 월주는 절기 경계일(±1일) 케이스 별도 20건 집중 테스트
토정비결 괘 산출
전통 산출식(생년/월/일 숫자 조합 → 상/중/하괘) 원 계산식
연 1회, 신년 업데이트 시 계산식 재검증
별자리(태양궁/달의 별자리)
Swiss Ephemeris 계산 결과
월별 경계일(궁이 바뀌는 날짜) 전후 케이스 집중 테스트
병합 문장 생성
사람 리뷰(운세 콘텐츠 에디터)
상충 태그 발생 케이스는 배포 전 100% 휴먼 리뷰, 일치 케이스는 샘플링 리뷰
회귀 방지 — 위 샘플 케이스들을 고정 테스트셋으로 저장해 룰엔진 수정 시마다 자동 회귀 테스트 실행. 특히 절기 경계일·별자리 궁 경계일은 매 배포마다 재확인 대상으로 CI에 포함.
11 · Content Bank
콘텐츠 뱅크 & 반복 방지
룰 기반 문장 생성은 매일 접속하는 사용자에게 같은 문장이 반복될 위험이 크다. "오늘도 어제랑 똑같은 말"이라는 인상은 서비스 신뢰도를 가장 빠르게 깎는다.
반복이 발생하는 지점
축-태그 조합 수 한계 — 8축 × (일치/상충) × MBTI 어투(직설/완곡) 조합은 유한. 문장 템플릿이 축당 3~5개뿐이면 1~2주 내 반복 체감
오늘의 운세가 가장 취약 — 매일 열람하는 화면인데 입력 변화폭(오늘 날짜)이 8축 점수에 미치는 영향이 작아 문장이 잘 안 바뀜
같은 사용자 반복 열람 — 같은 날 여러 번 새로고침해도 결과가 바뀌면 신뢰도 하락 → 일 1회 고정 시드 필요
대응 설계
템플릿 다양화 최소 기준 — 축당 12개 이상 문장 변주(직설/완곡 × 강/중/약 강도 × 2~3 어휘 세트) 확보 후 출시
결정론적 시드 — "사용자ID + 날짜"를 시드로 문장을 선택해 같은 날 재조회 시 동일 결과 보장, 날짜가 바뀌면 자연 변경
소재 로테이션 — 오늘의 운세엔 8축 점수뿐 아니라 그날의 절기·요일·오행 상생 관계 같은 "미시 소재"를 문장에 섞어 체감 다양성 확보
Phase 3 LLM 전환의 목적 명확화 — 규칙 기반 템플릿 뱅크가 소진되는 시점을 반복 방지의 근본 해법이 아니라 "임시 완화책"으로 보고, LLM 전환 우선순위를 콘텐츠 반복 지표(재방문자의 "같은 문장 재노출률")로 트리거
측정 지표 — 재방문 사용자 기준 "지난 7일 내 동일/유사 문장 재노출률"을 QA 대시보드에 추가. 이 지표가 15%를 넘으면 해당 축의 템플릿 뱅크 확장 또는 LLM 전환 우선순위를 올린다.
12 · Error & Edge Cases
예외 & 에러 상태 설계
외부 API 의존(KASI)과 사용자 입력 특성(음력·윤달) 때문에 발생하는 예외 케이스를 화면 단위로 미리 설계해둔다.
상황
원인
처리 방식
KASI API 장애/타임아웃
공공 API 특성상 간헐적 지연·다운타임 발생 가능
직전 성공 응답을 로컬 캐시(간지 조견표는 결정론적이므로 캐시 가능) → 캐시 우선 조회 후 API는 백그라운드 재시도. 완전 실패 시 "음양력 변환 지연 중, 잠시 후 다시 시도해주세요" 안내와 함께 오늘 운세는 이전 캐시 유지
존재하지 않는 음력 날짜 입력
윤달 미체크 상태로 실제 윤달 날짜 입력, 또는 30일 없는 달에 30일 입력
입력 즉시 프론트에서 유효 날짜 캘린더만 선택 가능하게 제한(자유 텍스트 입력 금지), 윤달 존재 연도는 날짜 선택 시 윤달 옵션 자동 노출
출생시간 미상
사용자가 시간을 모름
"시 모름"으로 명시 선택 → 시주 제외 3주만 계산, 결과 화면에 정확도 라벨(예: "시주 미포함, 참고용") 상시 노출. 침묵 처리(그냥 정오로 임의 대입) 금지
MBTI 문항 응답 편중(전부 "보통")
성의 없는 응답 또는 정말 중립적 성향
한 축이라도 확신도 40% 미만이면 결과 화면에 "이 축은 응답이 모호해 별자리·사주 비중을 높여 보완했어요" 안내, 언제든 재검사 유도 배너 노출
병합 결과 8축 전부 상충
통계적으로 드물지만 발생 가능한 극단 케이스
QA 알림 트리거(자동 사람 리뷰 큐 등록) + 사용자에게는 "오늘은 여러 관점이 엇갈리는 날"이라는 별도 톤의 완충 문장 세트 사용(과신도 비관도 아닌 중립 안내)
13 · Business Model
수익모델
무료로 습관을 만들고, 심층·확장 기능에서 과금하는 구조. 운세 앱 특성상 "매일 무료로 열어보는 이유"가 확실해야 유료 전환이 따라온다.
무료 범위
MBTI 16문항 + 프로필 생성 (1회)
오늘의 운세 (일 1회, 매일 갱신) — 리텐션 핵심이므로 끝까지 무료
이번 달 운세 요약(3줄) — 상세 8축 레이더는 유료 미리보기 블러 처리
유료 범위
심층 리포트 — 이번 달 8축 전체 레이더, 과거~미래 12개월 상세 라인차트
고민상담 무제한 — 무료는 월 1회, 유료는 재물/성공/애정 무제한 전환 조회
타로 무제한 뽑기 — 무료는 일 1회 3카드, 유료는 원하는 만큼
궁합(2인 병합) — Phase 4 신규 기능, 전액 유료
전환 지점 설계 — "오늘의 운세"는 무료로 매일 습관을 만들고, 여기서 상충 신호나 흥미로운 결과가 나왔을 때 "왜 이런 결과가 나왔는지 자세히 보기" CTA로 심층 리포트(유료)를 자연 연결한다. 즉 유료화 지점은 항상 무료 콘텐츠가 만든 궁금증 바로 다음에 배치.
14 · Retention
알림 & 리텐션 설계
"오늘의 운세"가 무료이자 핵심 리텐션 장치인 만큼, 언제·어떤 문구로 다시 부를지가 사주 정확도만큼 중요하다. 과도한 푸시는 가장 빠르게 이탈로 이어지므로 빈도와 개인화를 함께 설계한다.
알림 트리거 & 시점
데일리 오프닝 — 기상 시간대 추정(과거 접속 로그 기반, 기본값 오전 8시) 1회. MBTI J형은 "오늘 계획 세우기 전에" 프레임, P형은 "오늘 하루 가볍게" 프레임으로 문구만 분기
월간 오프닝 — 매월 1일 "이번 달 운세가 도착했어요" 1회, 8축 중 가장 변동폭 큰 축 1개를 미리보기로 노출
상충 신호 발생일 — 8축 중 상충 태그가 평소보다 많은 날만 "오늘은 여러 갈래 신호가 있는 날" 알림 우선순위 상향 (희소성으로 클릭률 확보)
재방문 유도(휴면) — 7일 미접속 시 "그동안 3번의 흐름이 지나갔어요" 같은 손실 프레이밍 1회만, 이후 침묵(피로도 관리)
빈도 & 개인화 원칙
일 1회 상한 — 오늘의 운세 알림 외 부가 알림(유료 CTA 등)은 같은 날 함께 보내지 않고 익일로 큐잉
알림 문구도 콘텐츠 뱅크 공유 — 11번 섹션의 반복 방지 원칙을 알림 문구에도 동일 적용, 단 알림은 30자 이하로 압축된 별도 템플릿 세트 운용
옵트아웃 세분화 — "전체 끄기"만이 아니라 "데일리만", "월간만" 등 종류별 on/off 제공 → 알림을 아예 끄게 만드는 대신 원하는 것만 남기게 유도
홈 위젯(추후) — 앱을 열지 않아도 오늘의 운세 3줄이 보이는 위젯으로 알림 피로 없이 습관 형성 대체 채널 확보
측정 지표 — 알림 클릭률(CTR)과 함께 "알림 끄기 비율"을 동시에 추적. CTR이 높아도 옵트아웃이 늘면 문구나 빈도가 피로를 유발하고 있다는 신호로 간주하고 빈도부터 낮춘다.
15 · Competitive Positioning
경쟁 포지셔닝
국내 운세 앱 시장은 단일 체계 특화형(사주 전문, 타로 전문, 별자리 전문)과 종합 포털형(여러 콘텐츠를 탭으로 나열)으로 나뉜다. 이 서비스는 "병합 해석"이라는 세 번째 축으로 포지셔닝한다.
유형
대표 특징
한계
이 서비스의 차별점
사주 전문형
정통성·깊이 강조, 전문 용어 다수 사용
MBTI·별자리 세대(2030)에게 진입장벽 높음
사주 결과를 MBTI 언어로 번역해 전달 (전문 용어 최소화)
MBTI 콘텐츠형
가볍고 공유하기 좋은 카드형 콘텐츠
매일 반복 소비할 근거(시기성)가 약함 — 유형은 안 바뀌므로
MBTI를 "고정 성향"으로 두고 사주·별자리로 "오늘/이번 달"이라는 시기성을 결합
종합 포털형
사주·타로·별자리·MBTI를 탭으로 다 제공
탭마다 결과가 따로 놀아 사용자가 직접 종합해야 함 (이번 기획의 출발 문제의식)
탭이 아니라 하나의 8축 벡터로 병합, 일치·상충을 명시적으로 태깅해 사용자가 직접 종합할 필요 없음
핵심 메시지 (포지셔닝 문장)
"따로 보면 다른 말, 합쳐 보면 하나의 답." — 여러 운세를 이미 챙겨봤지만 결론을 못 내린 사용자에게 "정리해주는 서비스"로 각인.
초기 채널 가설
MBTI 커뮤니티(에타, 커뮤니티 카페)에서 "MBTI+사주 궁합이 다를 때 뭘 믿어야 하나" 류의 질문이 반복 발생 — 이 페인포인트를 겨냥한 콘텐츠 마케팅이 유료 전환 대비 CAC 효율 높을 것으로 가정, Phase 1 이후 검증 필요
16 · System Architecture
시스템 아키텍처
05 병합 엔진이 "무엇을" 계산하는지였다면, 여기서는 "어디서" 계산하는지를 정한다. 핵심 원칙은 결정론적 계산(오행·병합)은 클라이언트로 내리고, 외부 API 호출과 민감정보 저장만 서버가 책임진다 — 09 개인정보 섹션의 "로컬 우선 계산" 원칙을 그대로 시스템 경계로 옮긴 것.
사용자 입력은 서버를 거쳐 연/월/일 단위로만 KASI API에 전달되고, 반환된 간지·괘·카드 데이터를 바탕으로 오행 계산과 8축 병합은 전부 클라이언트에서 수행된다. 결과는 로컬에 암호화 캐시되어 같은 날 재조회 시 서버 재요청이 없다.
계층별 책임
Client
계산 & 렌더링
오행 산출, 8축 정규화·가중합성·태깅, 문장 템플릿 선택(결정론적 시드), 5탭 UI. 민감정보는 요청 순간에만 메모리에 존재
Server
중개 & 저장
KASI API 프록시(키 보호, 캐싱), 계정/암호화 생년월일 저장, 토정비결·타로 정적 데이터 서빙, 알림 발송 스케줄링
External
공식 소스
KASI 음양력·절기 API(무료), Swiss Ephemeris 알고리즘(OSS) 참고. 둘 다 결과가 결정론적이라 서버단 캐싱 효과가 큼
캐싱 전략 — 간지·절기·괘 산출은 입력(생년월일)이 같으면 결과가 항상 같은 순수함수이므로, 서버는 "생년월일 → KASI 응답" 매핑을 영구 캐시할 수 있다(같은 날짜를 입력하는 다른 사용자끼리 캐시 공유 가능, 단 캐시 키에 개인 식별자는 포함하지 않음). 이 캐시 하나로 12번 섹션의 "API 장애 시 캐시 우선 조회" 요구사항이 대부분 해결된다.
17 · Design System
디자인 시스템
이 문서와 목업에서 실제로 쓰고 있는 토큰을 그대로 구현 기준으로 삼는다. 새로 정의하지 않고 이미 검증된 값을 표준화한다.
색상 토큰
Surface
--bg #FBF3E9 · --bg-raised #FFFCF7
Accent (테라코타)
--accent #C4552C · --accent-soft #FBE6D8
Semantic (일치/상충)
--good #5C7A4E · --warn #B4622A
Semantic 색은 accent와 분리된 별도 토큰이다 — 06 병합 엔진의 "일치/상충" 태그가 accent(브랜드색)와 섞이면 상태 정보가 브랜드 컬러에 묻히므로, good/warn 두 색만 상태 전용으로 예약한다.
타이포그래피
역할
서체
용도
Display
Noto Serif KR
제목(h1~h3), 브랜드 로고 — 사주·역학 문헌이 갖는 무게감을 목표. 본문에는 쓰지 않음
Body
Noto Sans KR (Pretendard 대체)
본문, UI 라벨, 버튼 — 가독성 우선
Data
JetBrains Mono
점수(+1.6), 날짜, 축 이름, pill 라벨 — 수치·구조 정보임을 시각적으로 구분
컴포넌트 원칙
카드(.card, .rcard) — 모든 콘텐츠 단위의 기본 컨테이너. 그림자는 얕게(--shadow), 테두리는 --line 1px로 구조를 잡고 그림자는 부가 효과로만 사용
pill — 상태 태그 전용(good/warn/accent). 리스트 항목 수 표기 등 상태가 아닌 정보에는 사용하지 않음
score bar — 8축 점수는 항상 -2~+2 스케일을 0~100% 너비로 환산해 동일한 시각 문법 유지, 색은 accent 고정(good/warn은 태그에서만 사용해 점수 막대와 상태 태그가 다른 신호로 혼동되지 않게 함)
포커스 상태 — 모든 인터랙티브 요소(qopt, pbtn, 링크)에 accent 기반 outline 2px 명시, 목업 전체에 이미 적용됨
다크모드 동등성 — 라이트에서 테라코타(#C4552C)가 잉크 배경 위에서 갖는 대비를, 다크에서는 더 밝은 살구빛(#E8875A)으로 치환해 같은 채도감을 유지한다. 색만 반전하지 않고 각 테마에서 별도로 대비를 맞춘 값이므로, 향후 실제 구현체에서도 다크 팔레트를 라이트의 단순 반전으로 생성하지 말 것.
18 · API Spec
API 명세
16번 아키텍처의 "API 게이트웨이" 박스를 실제 엔드포인트로 구체화한다. 서버는 얇게 유지한다는 원칙에 따라 대부분 조회·프록시·저장 기능만 가지며, 계산 로직(오행·8축 병합)은 응답에 필요한 원재료만 내려주고 실제 합성은 클라이언트가 수행한다.
병합(8축 정규화·가중합성·태깅)과 문장 생성은 이 응답을 입력으로 받아 클라이언트에서 수행 — 서버는 "원재료"만 제공하고 "해석"은 만들지 않는다는 16번 아키텍처 원칙이 스키마에도 그대로 반영된다.
인증 & 레이트리밋 — 전 엔드포인트 JWT 기반 인증(익명 프로필도 디바이스 바인딩 토큰 발급). /v1/tarot/draw와 /v1/report/context는 무료/유료 등급별 레이트리밋 차등 적용(13번 수익모델의 "일 1회 무료" 규칙을 여기서 강제).
19 · Timeline & Resourcing
일정 & 리소스 산정
11번 로드맵의 Phase 1~4를 실행 가능한 기간과 인력으로 환산한다. 병합 엔진과 QA 테스트셋 구축이 가장 시간이 걸리는 항목이므로 이 둘을 기준선으로 삼았다.
Phase
기간
주요 산출물
필요 인력
Phase 1 MVP
6주
MBTI 16문항 온보딩, KASI API 연동, 자체 오행 룰엔진, 오늘/이번달 운세 2종, 개인정보 최소수집·삭제 플로우
FE 1 · BE 1 · 콘텐츠 에디터(운세 카피) 0.5
Phase 2 병합 고도화
5주
8축 병합 엔진 정식화, 6개월 흐름/고민상담 탭, QA 회귀 테스트셋 200케이스 구축 및 CI 편입
FE 1 · BE 1 · 도메인 자문(명리학) 0.3 · QA 0.5
Phase 3 타로 & 개인화
4주
타로 탭, 규칙 기반→LLM 문장 생성 전환(콘텐츠 반복률 트리거 기준 적용), 알림 시스템
FE 1 · BE 1 · 콘텐츠 에디터 0.5
Phase 4 궁합
3주
2인 병합 궁합 스코어, 동의 플로우, 유료 결제 연동
FE 1 · BE 1
병목 구간
Phase 1의 오행 룰엔진 — 천간지지 조견표·상생상극 로직은 코드량보다 도메인 검증이 병목. 명리학 자문 없이 시작하면 QA(Phase 2)에서 대량 재작업 위험
Phase 2의 QA 테스트셋 — 10번 섹션의 200케이스 샘플링은 자문 인력 없이는 FE/BE가 직접 검증 불가 → Phase 1 착수 시점부터 도메인 자문 컨택 필요(리드타임 확보)
병렬화 가능 구간
17번 디자인 시스템(토큰·컴포넌트)은 이미 이 문서에서 확정되었으므로 Phase 1 착수와 동시에 FE가 바로 구현 가능 — 별도 디자인 단계 불필요
18번 API 스키마가 고정되어 있어 Phase 1부터 FE/BE 목업 응답 기준으로 병행 개발 가능(BE 응답 완성 전 FE는 스키마 예시로 목업 데이터 사용)
총 기간 — Phase 1~4 순차 진행 시 약 18주(4.5개월), 도메인 자문 리드타임을 고려하면 Phase 1 착수 최소 2주 전 자문 컨택을 권장한다. Phase 3(LLM 전환)은 11번 섹션의 재노출률 지표가 임계치를 넘는 시점까지 유예해 우선순위를 조정할 수 있다.
20 · Sentence Generation Rules
문장생성 규칙 명세
05 병합 엔진은 "8축 점수 + 일치/상충 태그"까지 만들고, 11 콘텐츠 뱅크는 "문장이 반복되지 않게 변주하는 법"을 다뤘다. 그 사이, 점수가 실제로 어떤 문장으로 변환되는지의 규칙 자체가 비어 있었다 — 이건 FE/BE 모두 아니고 "문장 생성 로직"을 담당할 계층의 명세로, 지금 정해두지 않으면 설계 중 개발자가 임의로 정하게 된다.
Step 1 — 점수 구간 → 강도 등급
점수 구간
강도 등급
어휘 톤
+1.5 ~ +2.0
매우 긍정
단정형 + 적극 권유 ("~하기 좋은 날")
+0.5 ~ +1.4
긍정
단정형 ("~한 흐름이다")
−0.4 ~ +0.4
중립
관찰형 ("~한 경향이 있다")
−1.4 ~ −0.5
주의
완곡 권고형 ("~에 유의하면 좋다")
−2.0 ~ −1.5
경고
직접 권고형 ("~는 피하는 편이 낫다"), 단 공포 조성 어휘 금지
Step 2 — 태그별 문장 구조 템플릿
일치(good) 축
[체계 근거] + [강도 등급 어휘] + [행동 제안]
예: "사주와 별자리가 모두 관계운 상승을 가리킨다. 오늘은 미뤄둔 연락을 먼저 건네보자."
상충(warn) 축
[주된 신호, 60%+ 비중] + "다만" + [반대 신호] + [범위 좁히는 조건절]
예: "재물운은 전반적으로 순조롭다. 다만 지출 충동이 커질 수 있는 시기이니, 큰 지출만 하루 미뤄보자."
상충 태그의 "주된 신호"는 06 병합엔진의 가중치(사주35%·토정30%·MBTI20%·별자리15%)를 그대로 따른다 — 즉 상충 시 항상 가중치가 더 높은 체계 쪽이 문장의 주어가 되고, 낮은 쪽이 "다만" 뒤에 붙는다. 이 규칙 하나로 매번 다른 순서로 뒤섞이는 문장을 방지한다.
Step 3 — MBTI 어투 필터 (최종 패스)
Step 1~2로 만들어진 문장에 마지막으로 MBTI 축 하나(T/F)만 어투 필터로 적용한다. 축 전체를 어투에 쓰지 않는 이유는 4비트를 다 반영하면 조합 폭발로 템플릿 관리가 불가능해지기 때문 — T/F 한 축만 "직설/완곡"의 대표 신호로 채택.
MBTI 축
필터
변환 예
T 우세
결과·원인을 먼저, 조언은 짧게
"지출 충동이 커진다. 큰 지출은 미루자."
F 우세
공감 어구 선행, 조언은 부드럽게
"들뜬 마음에 지출이 늘 수 있는 시기예요. 큰 지출은 하루만 미뤄볼까요?"
담당 & 산출물 — 이 규칙표는 콘텐츠 에디터(운세 카피 담당)가 Step 1~3 템플릿을 축별 12개 이상(11번 기준) 실제로 작성하는 작업 명세서 역할을 겸한다. Phase 1 착수 시 이 표를 그대로 템플릿 작성 브리프로 전달한다.
실제 작성본 — 위 규칙을 8축 전체에 적용해 작성한 문장 템플릿 뱅크를 별도 문서로 완성했다. → 문장생성 템플릿 뱅크 v2.0 보기 — 8축 × 5강도 × 4개 어투(T직설·T완곡·F캐주얼·F권유) 기본 문장 160개, 상충 공식 4세트(전축 공용), 리스크 축 부호 역전 주의사항, 그리고 매번 같은 어투로 굳지 않도록 하는 가중 로테이션 로직까지 포함된 Phase 1 착수 즉시 사용 가능한 실행본. F권유 어투는 신한라이프 운세 서비스의 "~해보세요/~기를 바라요" 존대 권유형 구조를 벤치마킹해 우리 타깃(20~30대)에 맞게 격식을 낮춰 이식했다.
21 · Screen Spec
화면 명세
08 목업은 느낌을 확인하는 용도였다. 실제 개발 착수에는 각 화면의 필수/선택 필드, 유효성 규칙, 빈 상태(empty state) 카피가 필요하다.
"음양력 변환 중...(공공데이터포털 응답을 기다리고 있어요)" — 실패 원인 짐작 가능하게
오늘의 운세
8축 중 변동폭 상위 2~3개만 노출, 나머지는 "더보기"로 접힘
신규 가입 당일(사주 데이터 캐시 없음)엔 "첫 리포트를 만들고 있어요" 스켈레톤 노출
고민상담
재물/성공/애정 중 단일 선택, 무료 월 1회 초과 시 유료 CTA로 자연 전환(13번 반영)
이번 달 이미 사용함: "이번 달 무료 상담은 다 쓰셨어요, 다음 상담은 9월 1일에"
타로
3카드 순서 고정(과거·현재·미래), 카드 중복 방지 로직
일 1회 소진 시: "오늘의 카드는 이미 확인하셨어요, 내일 다시 만나요"
22 · Domain Data Sourcing
오행 상수표 조달 계획
04 데이터 소스에서 "천간지지 조견표 + 오행 상생상극표를 자체 개발"이라 명시했지만, 그 원자료 자체는 개발자가 창작할 수 있는 게 아니라 명리학 도메인 지식이다. 설계 착수 전에 "누가, 언제, 어떤 형식으로 주는지"를 확정해야 19번 일정의 병목(Phase 1 오행 룰엔진)이 실제로 풀린다.
필요한 원자료 목록
60갑자 조견표 — 연/월/일/시주 간지 산출용 순환표
오행 배속표 — 천간 10자·지지 12자 각각의 오행(목화토금수) 매핑
상생상극 관계표 — 오행 간 강화/억제 관계, 부족·과다 판정 임계값
십성(十星) 매핑표 — 일간 기준 다른 간지와의 관계(재성·관성 등), 재물·성공 축 산출 근거
토정비결 384괘 원문 해석 뼈대 — 괘별 원의(原義) 요약, 이후 11번 콘텐츠 뱅크의 문장 변주 기반 자료
조달 방식 & 확인 사항
담당 — 19번 리소스 산정에서 배정한 "도메인 자문(명리학) 0.3 FTE"가 1차 산출
형식 — 자문가 원고(표) → 콘텐츠 에디터가 20번 문장생성 규칙표에 맞는 구조로 재정리 → 개발자가 JSON/DB 스키마로 변환
저작권 확인 — 토정비결 원문은 공유 저작물이지만 해석문 표현 자체는 자문가 창작물이므로 활용 범위(상업적 이용, 재배포 여부)를 계약서에 명시해야 함 — 법무 확인 필요
착수 시점 — Phase 1 착수 최소 2주 전 컨택(19번 명시), 원고 납품까지 별도 리드타임 필요하므로 실제로는 Phase 1 착수 3~4주 전 컨택 권장으로 상향
설계 착수 전 확인할 것 — 이 원자료가 없으면 08 목업 수준의 "예시값"으로는 개발이 진행되지만, 10번 QA(만세력 대조 200케이스)는 원자료 없이는 애초에 시작할 수 없다. 즉 UI/API 설계는 지금 바로 진행 가능하지만, 오행 로직 구현은 자문 원고 없이 착수하면 전면 재작업 위험이 크다는 걸 설계 착수 시점에 팀 전체가 인지해야 한다.
23 · North Star KPI
북극성 지표(KPI)
11(콘텐츠 재노출률), 14(알림 CTR/옵트아웃)처럼 부분 지표는 이미 정의했다. 여기서는 그 부분 지표들이 최종적으로 무엇을 위한 것인지 상위 목표를 하나로 묶는다 — 설계 단계에서 우선순위 충돌이 생겼을 때 이 지표가 판단 기준이 된다.
North Star
주간 활성 병합 열람율
가입자 중 "오늘의 운세를 주 4회 이상 연 사용자" 비율. 병합 서비스의 핵심 가치(매일 챙겨볼 이유)가 실제로 작동하는지 보여주는 단일 지표
선행 지표
온보딩 완료율
MBTI 16문항 + 기본정보 입력을 끝까지 마치는 비율. 21번 "이어하기" 기능의 효과를 직접 측정
후행 지표
유료 전환율
13번 수익모델의 "궁금증 다음에 CTA" 설계가 실제로 작동하는지 확인하는 최종 결과 지표
지표
Phase 1 목표(가설)
측정 방식
온보딩 완료율
≥ 70%
MBTI 응답 시작 대비 기본정보 제출 완료 비율
주간 활성 병합 열람율
≥ 35%
가입 2주차 기준 코호트 추적
콘텐츠 재노출률(11번)
< 15%
재방문자의 7일 내 동일/유사 문장 재노출 비율
알림 옵트아웃률(14번)
< 8%
알림 종류별 on→off 전환 비율
유료 전환율
≥ 3%
가입 30일 내 최초 유료 결제 비율
설계 단계 활용법 — 화면/기능 우선순위가 충돌할 때(예: 21번 화면 명세 중 어떤 예외 케이스를 먼저 다듬을지) "이 작업이 온보딩 완료율과 주간 활성 열람율 중 무엇에 더 기여하는가"를 판단 기준으로 삼는다. 수치 목표는 Phase 1 실측 후 재보정한다.
24 · MBTI × Fortune Action Layer
MBTI 행동조언 결합 로직
지금까지 MBTI는 두 층에만 관여했다 — 06 병합엔진에서 8축 점수에 20% 가중치로, 20번 문장뱅크에서 T/F 어투 필터로. 둘 다 결과의 색깔을 바꿀 뿐, 같은 점수를 받았을 때 무엇을 하라고 말할지는 16유형이 다 똑같았다. 여기서는 세 번째 층 — 행동 조언 층을 추가해, 재물운이 나쁘게 나왔을 때 ISFP에게는 "지출을 자제하라"고, ENTJ에게는 "이미 세운 계획을 재점검하라"고 서로 다르게 말하도록 만든다.
왜 16유형 전수 작성이 아니라 "기능축 조합"인가
8축 × 5등급 × 16유형을 전부 채우면 640셀 — 20번 문장뱅크(160셀)의 4배다. 대신 MBTI 4비트를 독립적인 행동 성향 4개로 분해해 각각에 "취약점 보정 규칙"을 붙이고, 최종 조언 문장은 이 규칙들을 조합해 런타임에 생성한다. 콘텐츠 에디터는 4비트 × 8축 = 32개 규칙만 작성하면 되고, 16유형 조합은 자동으로 나온다.
비트
행동 성향
강점 축 (이 축이 긍정일 때 조언에 자신감 부여)
취약 축 (이 축이 부정일 때 조언에 안전장치 부여)
E
외부 행동형
관계운·성공/커리어 — 긍정 시 "적극적으로 표현/제안하라"
리스크 — 부정(변동성 큼) 시 "혼자 판단 말고 주변에 먼저 알리고 움직여라"
I
내부 정리형
자기성장·안정성 — 긍정 시 "혼자만의 시간에 정리/학습을 밀도 있게"
관계운 — 부정 시 "무리하게 사람 만나지 말고 신뢰하는 소수에게만 연락"
S
구체 실행형
재물운·성공/커리어 — 긍정 시 "구체적 숫자·일정으로 바로 실행"
애정운 — 부정 시 "감으로 판단 말고 상대의 실제 말과 행동을 다시 확인"
N
가능성 탐색형
자기성장·애정운 — 긍정 시 "새로운 가능성·관계를 넓게 탐색"
재물운 — 부정 시 "직관적 투자 대신 데이터로 한 번 더 검증"
T
논리 우선형
성공/커리어 — 긍정 시 "논리적 근거로 밀어붙여라"
관계운·애정운 — 부정 시 "옳고 그름보다 상대 감정을 먼저 확인"
F
관계 우선형
관계운·애정운 — 긍정 시 "마음을 적극적으로 표현"
재물운·성공/커리어 — 부정 시 "정에 이끌린 결정 대신 조건을 한 번 더 따져보기"
J
계획 우선형
안정성·재물운 — 긍정 시 "세운 계획을 그대로 실행"
리스크 — 부정(변동성 큼) 시 "계획이 틀어질 걸 전제로 대안(플랜B)을 미리 정해두기"
P
즉흥 대응형
리스크 — 부정(변동성 큼)이어도 "유연함이 강점이니 변화 자체를 기회로 활용"
재물운·안정성 — 부정 시 "즉흥적 지출·결정을 하루 미루는 강제 규칙 적용"
조합 생성 규칙
Step 1
해당 축의 관련 비트 선택
8축마다 위 표에서 "이 축을 강점/취약 축으로 갖는 비트"가 정해져 있다(예: 재물운 → S/N이 강점·취약, J/P가 강점·취약 후보). 사용자 MBTI에서 해당 비트값을 가져온다.
Step 2
점수 부호로 강점/취약 분기
축 점수가 긍정(+)이면 "강점 축" 조언 문장을, 부정(−)이면 "취약 축" 조언 문장을 20번 문장뱅크의 뼈대 문장 뒤에 덧붙인다. 중립(−0.4~+0.4)이면 행동조언 층을 생략하고 기본 문장만 사용한다.
Step 3
비트 충돌 시 우선순위
한 축에 관련 비트가 2개(예: 재물운은 S/N과 J/P 둘 다 관련)면, 06번 병합엔진에서 저장한 축별 MBTI 확신도가 더 높은 비트를 채택한다. 확신도가 비슷하면(차이 10%p 이내) 두 조언을 접속사로 이어 붙인다.
Step 4
어투 필터는 그대로 마지막에 적용
완성된 [뼈대 문장 + 행동조언 문장]에 20번 Step 3의 T/F 어투 필터를 마지막으로 씌운다. 즉 행동조언 층은 어투보다 먼저 정해지는 "내용" 결정 단계다.
"지출이 느는 시기다." (20번 뼈대) + "다만 이미 세운 예산 계획을 흔들 필요는 없다. 계획을 다시 점검하는 선에서 대응하자." (J 강점 조언)
어투 필터(T)
ENTJ는 T이므로 T-직설 최종 적용, 위 문장 그대로 유지
같은 −1.2점을 받은 ISFP라면: S(강점, "구체적 숫자로 바로 파악")와 P(취약, "즉흥 지출 하루 미루기") 조합 → "지출이 늘 수 있는 시기예요. 이번 주 카드 내역을 한번 구체적으로 확인해보고, 갑자기 사고 싶은 게 생기면 하루만 미뤄봐요." (F-캐주얼 어투) — 같은 점수, 다른 조언이 실제로 만들어진다.
담당 & 산출물 — 이 표(비트 8개 × 강점/취약 축)가 콘텐츠 에디터의 새 작업 브리프다. 20번 문장뱅크(160셀)에 이 32개 조합 규칙만 더하면 실질적으로 16유형 전체의 개인화된 조언이 자동 생성되므로, 원래 우려했던 640셀 전수 작성 없이도 목표(성향×운세를 진짜로 섞기)를 달성한다.
QA 필요 — 8개 비트 × 8축의 강점/취약 매핑은 지금 이 문서에서 설계자가 상식적으로 배정한 초안이다. 실제 사용자 반응(어떤 조언이 "내 얘기 같다"고 느끼는지)을 Phase 2 이후 A/B 테스트로 검증하고, 필요시 매핑을 조정하는 루프를 10번 QA 섹션의 콘텐츠 검증 항목에 추가해야 한다.
25 · Long-form Expansion
긴 글 확장 — 오늘의 운세
지금까지 20/24번의 문장뱅크는 화면에 들어갈 "뼈대 문장" 1~2개였다. 신한라이프처럼 실제 서비스가 되려면 이 뼈대 위에 총론 → 축별 심층 해설 → 근거 → 종합 조언의 살을 붙여야 한다. 오늘의 운세(가장 자주 열람되는 화면)를 기준으로 긴 글 구조를 확정하고, 그 구조로 실제 리포트 한 편을 완성했다.
긴 글의 5단 구조
① 오프닝 총론
오늘을 관통하는 한 문장
8축 중 가장 지배적인 흐름 하나를 먼저 던지고, 오늘 날짜의 사주·절기적 의미(일진)를 1문장 덧붙여 "오늘이 왜 특별한 날인지"의 근거를 먼저 제시한다.
② 축별 심층 해설
상위 3축 × 3문단
변동폭이 큰 3축을 골라 각각 [20번 뼈대 문장] → [24번 MBTI 행동조언] → [근거: 어떤 체계가 이 신호를 냈는지]를 한 문단으로 엮는다. 신한라이프의 "재물/애정/건강" 테마별 문단 구조를 8축 체계로 대체.
③ 병합 신뢰 코멘트
일치/상충을 독자에게 설명
06번 병합엔진의 태그를 그대로 문장으로 노출 — "왜 이 조언을 믿어도 되는지"(일치) 또는 "왜 조심스럽게 말하는지"(상충)를 독자가 이해할 수 있게 짧게 짚어준다. 다른 운세 서비스에 없는 이 서비스만의 차별 문단.
④ 마무리 조언 & 오늘의 실천
행운 아이템 + 한 줄 실천
오행 부족분을 보완하는 색상·방향·아이템(04번 데이터 소스의 오행 계산 결과 활용)과, 오늘 하루 안에 실행 가능한 구체적 행동 1개로 마무리해 "읽고 끝"이 아니라 "읽고 행동"으로 연결한다.
완성본 예시 — ENTJ · 1996년생 · 2026년 8월 21일
2026.08.21 금요일일치 신호 3개ENTJ · 쌍둥이자리
오늘은 '움직이는 사람에게 유리한 날'입니다. 사주로는 일간 무토(戊土)가 힘을 받는 임인월(壬寅月)의 흐름이 이어지는 날이고, 절기상으로는 입추가 지나 가을 기운이 조금씩 스며드는 시기입니다. 여름 내내 벌여둔 일들을 하나씩 정리하고 매듭짓기에 좋은 흐름이 사주 전반에 깔려 있고, 오늘 하루만 놓고 보면 특히 관계와 성공 축에서 뚜렷한 상승세가 감지됩니다.
관계운 — 먼저 건네는 말이 오늘의 열쇠
중요한 대화를 시작하기 좋은 시기입니다. 먼저 연락을 건네보세요. 사주 비겁운과 달의 별자리(물병자리) 위치가 모두 소통의 확장을 가리키고 있어, 오늘 나누는 대화는 평소보다 더 좋은 방향으로 흘러갈 가능성이 큽니다. ENTJ 특유의 직진하는 화법이 오늘은 오히려 강점으로 작용합니다 — 에둘러 말하기보다, 하고 싶은 이야기를 정면으로 꺼내보세요. 다만 상대의 반응을 살필 여유는 남겨두는 편이 좋습니다. 논리로 설득하려 하기보다, 오늘만큼은 상대가 무엇을 원하는지 먼저 물어보는 쪽이 관계를 더 단단하게 만듭니다.
근거 — 사주(비겁운 상승) · 별자리(달의 위치, 소통궁 강화) · MBTI(E축 강점 활용) 세 체계가 모두 같은 방향을 가리키는 일치 신호입니다.
성공/커리어 — 결과가 눈에 보이기 시작하는 시기
성과가 드러나는 시기입니다. 제안이나 지원을 적극적으로 밀어붙여도 좋습니다. 사주 관성이 힘을 받는 흐름이라 그동안 준비해온 일이 평가로 이어질 가능성이 높습니다. ENTJ의 J축(계획 우선형)이 강점으로 작용하는 지점이기도 합니다 — 지금까지 세워온 계획을 그대로 밀어붙이는 것이 가장 좋은 선택입니다. 새로운 방식을 시도하기보다, 이미 검증된 자신의 방식을 자신 있게 보여주는 하루로 만들어보세요.
근거 — 사주(관성 상승) · 토정비결(이달 소괘, 확장 암시) 두 체계가 일치하며, 별자리는 특별한 신호가 없어 중립입니다.
재물운 — 좋은 흐름이지만 지출엔 한 박자 쉬어가기
재물운은 전반적으로 순조로운 흐름입니다. 다만 지출 충동이 커질 수 있는 시기이니, 큰 지출만 하루 미뤄보는 게 좋습니다. 사주 재성과 토정비결 월운은 재물의 순환을 긍정적으로 보고 있지만, 별자리(금성 각도)는 소비 확대를 경고하고 있어 방향이 완전히 같지는 않습니다. ENTJ는 J축의 계획성이 강점이니, 오늘 갑자기 마음이 동하는 지출이 있다면 이미 세운 예산 계획과 한 번만 비교해보는 습관이 도움이 됩니다. 계획에 없던 지출이라면, 결정을 내일로 미루는 것만으로도 충분합니다.
근거 — 사주·토정비결은 긍정, 별자리는 주의로 갈리는 상충 신호입니다. 비중이 더 큰 사주·토정비결 쪽을 중심에 두고, 별자리 신호는 "완전히 다른 이야기"가 아니라 "같은 흐름 안의 작은 변수"로 좁혀 해석했습니다.
오늘의 실천
오행상 오늘은 화(火)의 기운이 다소 부족한 날입니다. 붉은 계열의 소지품을 하나 곁에 두거나, 남쪽 방향을 등지고 중요한 대화를 나누면 부족한 기운을 보완하는 데 도움이 됩니다. 오늘 하루 실천 하나만 고른다면 — 먼저 연락하고 싶었던 사람에게 오전 중 메시지를 보내보세요. 관계운과 성공운이 함께 상승하는 오늘, 그 한 번의 연락이 생각보다 멀리까지 이어질 수 있습니다.
구조의 재사용성 — 이 5단 구조는 21번 화면 명세의 "오늘의 운세" 화면에 그대로 적용되며, ②축별 심층 해설의 문단 뼈대는 20번(문장뱅크)+24번(MBTI 행동조언)을 그대로 조합하고 근거 문장만 추가하면 되므로 새로운 콘텐츠 자산을 만드는 게 아니라 기존 것을 문단으로 조립하는 작업이다. 이번 달 운세·6개월 흐름·고민상담·타로 4개 출력물도 같은 5단 골격(총론→심층해설→병합코멘트→마무리)을 축소·변형해 적용할 수 있다.
분량 관리 — 위 예시는 공백 포함 약 950자다. 11번 콘텐츠 뱅크의 "반복 방지" 원칙이 긴 글에서는 더 중요해진다 — 문단이 길수록 반복이 체감되는 부분(근거 설명 문구 등)도 늘어나므로, 근거 문장(예: "사주(비겁운 상승)·별자리(달의 위치)···")도 20번 문장뱅크처럼 별도의 변주 세트로 관리해야 매일 읽어도 "또 그 표현이네"가 되지 않는다. 이 부분은 아직 뼈대만 있고 변주 세트는 미작성 — 다음 작업 후보.
26 · Roadmap & Risk
단계별 로드맵
Phase 1
MVP
MBTI 16문항 + 생년월일 입력, KASI 음양력 API 연동, 자체 오행/토정비결 룰엔진, 오늘/이번달 운세 2종만 출시. 개인정보 최소수집·삭제 플로우 기본 반영
Phase 2
병합 고도화
8축 병합 엔진 정식 적용, 6개월 흐름 + 고민상담 탭 추가, 별자리(달의 별자리) 정밀도 개선. QA 회귀 테스트셋 구축 및 CI 편입
Phase 3
타로 & 개인화
타로 탭 출시, 문장 생성을 규칙 기반 → LLM 기반으로 전환(교차 해석 few-shot), 알림/공유 기능
Phase 4
궁합(2인 병합)
상대방 생년월일 입력(동의 체크 필수) → 두 사람의 8축 벡터를 교차 비교해 궁합 스코어 산출. 애정 고민 탭에서 자연 연결되는 유료 확장 기능으로 설계
핵심 리스크 — (1) 절기 기준 월주 계산 오류 시 사주 전체가 틀어짐 → KASI 절기 API 필수 연동, QA 섹션의 경계일 테스트로 상시 방어. (2) 문항 기반 MBTI가 공식 검사와 다를 수 있음 → "간이 검사"임을 명시하고 정식 결과 재입력 옵션 제공. (3) 상충 신호를 "부연 문장"으로 완충하는 로직이 부실하면 결과가 모순되게 읽힘 → 상충 태그 발생 시 반드시 QA 리뷰. (4) 궁합 기능은 제3자(상대방) 개인정보를 다루므로 동의 체크 없이는 절대 출시하지 않음.