8체질부터 주역까지, 9개 운명 도메인을 한 곳에서.
AI와 고전이 만나 당신의 오늘을 해석합니다.
운명:8은 9개 운명 도메인을 단일 모바일 웹앱에 통합한 플랫폼입니다. 8체질 자가진단, 타로, 사주, 운세, 연애 매칭, 관상, 손금, 꿈해몽, 주역 — 각 분야를 AI·고전 엔진으로 실제 분석하고 상담사 톤 해설까지 자동 생성합니다.
기존 운세 앱들이 광고·결제 유도에 바쁘다면, 운명:8은 무료로 고전과 AI의 만남을 체험하는 데 집중합니다. 이 가이드는 운명:8이 어떤 기술로 9개 도메인을 해석하는지, 그리고 어떻게 써야 내 삶에 실제로 쓸모가 있는지 정리합니다.
운명을 읽는 방법은 크게 세 갈래로 나뉩니다.
이 네 축을 9개 도메인으로 세분화해서, 사용자가 원하는 관점 어디서든 자신의 오늘을 해석할 수 있도록 설계했습니다.
생년월일 · 성별 · 질문 · 사진(얼굴·손바닥) · 꿈 텍스트 등 도메인별 최소 입력. 모든 데이터는 브라우저 localStorage에만 저장, 서버 송신 없음.
각 도메인 전용 엔진이 고전 규칙을 적용합니다. 사주는 십간십이지, 주역은 64괘, 관상은 face-api.js CNN, 손금은 Gemini Vision.
총운 / 연애 / 재물 / 건강처럼 카테고리 축으로 점수를 산출합니다. 각 점수는 0~100 스케일로 비교 가능하도록 정규화.
Gemini 2.5 Flash가 상담사 톤으로 400~600자 해석문을 작성합니다. 점수 뿐 아니라 생애기(학업/경력/성숙/지혜)별 보이스까지 반영.
연애 매칭은 체질 궁합 + 띠 궁합 + 오형 매칭을 삼중 교차. 단일 점괘가 아닌 여러 축의 합의로 신뢰도를 보강합니다.
v7.5는 9개 도메인이 각각 따로 노는 구조였다면, v8은 한 화면에서 9엔진을 동시에 읽도록 통합됐습니다.
"운세 앱"이 아니라 고전+AI 통합 운명 플랫폼으로 정체성을 명확히 하기 위해. 한자의 권위와 한글 뜻풀이의 친근함을 같이 살려서 — 미신 같지 않으면서 깊이 있는 톤을 만드는 게 v8의 핵심 가설.
운명:8은 고전과 AI로 가능성의 지도를 그립니다. 미래를 단정하지 않고, 오늘의 선택이 어떤 방향으로 기우는지 관점을 제공합니다.
점수가 낮게 나왔다고 낙심할 필요 없습니다. 각 카드는 "오늘 어디에 더 주의할까"를 알려주는 나침반일 뿐. 결과 카드 하단의 AI 해설에서 실질적 행동 팁을 확인하세요.
15+4문항 자가진단
질문 + 3카드 해석
십간십이지 8자
생년별 5년 예측
체질+띠 삼중
face-api CNN 분석
Gemini Vision
상징 5축 + 점수
64괘 + 변괘
이레한의원 강의록 기반. 성격·체형·질병·식성 15문항 + 카드형 본능 4문항으로 8체질(금양/금음/목양/목음/토양/토음/수양/수음) 판별.
결과: 체질별 GOOD/BAD 식품, 생활수칙, 성격 프로필, 직업 궁합, 강의록 기반 쌍 비교까지.
메이저 아르카나 기반. 질문 입력 → 3장 무작위 뽑기(정·역 포함) → 과거/현재/미래 배치. 카드 조합과 정역에 따라 점수+티어+AI 해설.
활용: 중요한 결정 앞에서 관점 정리용. "이 제안을 받아도 될까?" 같은 구체적 질문에 더 좋은 답.
생년월일시 → 연·월·일·시주 4기둥 계산 → 천을귀인·도화살·공망 등 신살 추출. 일간(태양격) 중심으로 십성(비견/겁재/식신/상관...) 관계 분석.
탭: 총운 / 연애 / 재물 / 건강 / 직업 / 건강 6개. 탭 전환 시 AI 해설 재생성.
사용자의 5개 띠 동기 생년(예: 양띠 67/79/91/03/15)을 각기 다른 카드로 보여줍니다. 생애기(학업·경력·성숙·지혜)별 보이스를 입혀 같은 띠라도 카드가 전부 다름.
STAGE_VOICE 16개 프리픽스로 생애기 톤 차별화 — 학업기엔 "학생 시기의 당신에겐 —", 경력기엔 "커리어를 쌓는 지금 —" 식으로. v8에서는 십이지 카드형 인트로(寅卯辰…) + 띠별 결과 화면이 페어로 동작.
Mode A: 내 체질·띠로 Top3 이상형 추천. Mode B: 두 사람의 생년월일로 궁합 점수(6축 분해).
교차 검증: 체질 궁합(금양+목음 등) · 띠 궁합 · 손 오형 매칭 모두 합산. 단일 점괘보다 견고.
브라우저에서 실행되는 TensorFlow.js 신경망으로 실제 얼굴 68개 랜드마크를 추출. 오형(金木水火土) 판별 + 10부위 분석 + 기색 추정.
사진은 서버에 올라가지 않습니다. 전부 브라우저 내부 처리. v8에서 인플레이스 캡처 UX 도입 — 가이드 프레임 그 자리에 캡처 사진이 inject되고 가이드/팁/액션이 한번에 사라져 결과로 매끄럽게 전환.
손바닥 사진 → Cloudflare Pages Functions 프록시 → Gemini 2.5 Flash Lite가 생명선·두뇌선·감정선·운명선·결혼선과 지문·손 오형을 실제 판독.
Gemini가 불확실한 경우 ⚠️ "AI 판독 불확실" 배지 자동 표시 — fallback ≥2 → confidence: 'low' 반환. 밝은 곳에서 정면 재촬영 유도.
꿈 이야기를 한두 문장으로 입력 → 5개 상징축(물·동물·사람·장소·행위)으로 분해 → 한국 전통 꿈풀이 + Gemini 상담사 톤 해설.
태몽·길몽·흉몽만이 아니라 심리적 맥락까지 반영. 같은 뱀꿈이라도 상황에 따라 해석이 달라짐.
질문 → 6효 동전점(또는 무작위 추출) → 본괘·변괘 확정. 각 괘는 카테고리(사업/연애/건강/결정)별로 다른 주석을 제공.
변괘가 있는 경우 "지금은 A인데 B로 변한다"는 시간 축 해석까지. 고전 주역의 괘사·효사를 현대어로 풀어 제공.
운명:8은 10,000줄 단일 HTML 파일입니다. 번들러·프레임워크 없이 순수 ES5 JavaScript로 9개 도메인을 구현했습니다. 빠른 로딩 + PWA 오프라인 캐시 + 단일 파일 배포의 장점.
| 도메인 | 엔진 | AI 역할 |
|---|---|---|
| 8체질 | 규칙 기반 점수 | 결과 상담사 톤 해설 |
| 타로 | 카드 조합 규칙 | 질문 맥락 해석 |
| 사주 | 십간십이지 연산 | 탭별 개인화 해설 |
| 운세 | 생년 × 생애기 | 카드별 차별 문구 |
| 매칭 | 삼중 궁합 점수 | Top3 조합 이유 |
| 관상 | face-api.js CNN | 오형+10부위 해석 |
| 손금 | Gemini Vision | 판독 + 신뢰도 배지 |
| 꿈 | 상징 5축 | 심리 맥락 생성 |
| 주역 | 64괘 규칙 | 괘사·효사 현대어 |
관상은 온디바이스(브라우저 내부), 손금은 Cloudflare Functions 프록시 경유. 사진은 절대 Sean의 서버에 저장되지 않습니다. Gemini 요청은 일회성, 응답 후 즉시 폐기.
HTML은 network-first, 정적 자원은 cache-first. 새 배포 시 캐시 키(VERSION)가 바뀌어 구 캐시 자동 삭제. skipWaiting + controllerchange로 자동 리로드.
Gemini API 키는 Cloudflare 환경변수에만 저장. 클라이언트 코드·git 이력에 노출 0. 프론트는 /api/palm-analyze 같은 동일 오리진 엔드포인트만 호출.
모든 alert() 9곳을 커스텀 Toast로 교체. 모바일 UX 저해 없이 부드러운 피드백. 운세는 학업/경력/성숙/지혜 4단계 생애기별로 다른 톤의 해설.
Gemini 응답이 스키마 벗어날 경우 필드별 default로 폴백. 2개 이상 폴백되면 confidence: 'low' 반환, 클라이언트가 ⚠️ 경고 배지로 사용자에게 고지.
v8 디자인 시스템: #06070A 배경 + #D4AF37 골드 액센트 + 카드 rgba(18,20,26,0.78). 폰트는 Inter(본문) / JetBrains Mono(숫자) / Noto Serif KR(한자) 3종 분리.
한자는 작게(권위·장식), 한글 뜻풀이가 큼(주연 메시지). 예: 큰 타이틀 "재물이 피어나는 해" + 작은 부제 "사주명리 · 食神生財". 미신적 톤 없이 깊이를 만드는 핵심 패턴.
관상·손금 캡처 흐름이 새로 짜졌습니다. 기존: 가이드 프레임 → 별도 결과 화면 점프. v8: 가이드 프레임 그 자리에 캡처 이미지가 inject되고 gs-captured 클래스로 가이드/팁/액션 한꺼번에 hide.
label 패턴으로 iOS Safari click 우회 + 인공지연 제거 + 마커(정렬용) 제거. 4사이클 정합 끝에 도달한 패턴.
홈에서 9개 엔진을 4그룹 × 3타일로 한 번에. 正統(사주·주역·자미) / 象徵(타로·꿈·운세) / 時點(월운·세운·대운) / 緣·體(궁합·관상·손금). 각 타일은 점수 + ▲▼ 변화량.
RAG 950케이스(자평진전·연해자평·삼명통회·적천수)와 함께 표시 — "이 풀이가 어디서 왔는가"를 사용자가 즉시 확인.
npx wrangler pages deploy dist --project-name=unmyeong --branch=main 한 줄. 배포 즉시 unmyeong.pages.dev 반영. 롤백도 wrangler deployment list로 과거 배포 URL 바로 복구 가능.
운명:8은 프레임워크 없이 순수 HTML + JS로 만든 단일 파일 앱입니다. 빌드 도구·Node 서버·데이터베이스 없이도 9개 도메인 + AI 해설 + PWA까지 구현 가능하다는 걸 보여주려 이 구조를 택했습니다. 이 탭은 처음부터 끝까지 어떤 순서로 쌓아올렸는지를 공개합니다.
HTML/CSS/JS 기초를 아는 1인 개발자. 프레임워크 경험 없어도 OK. 각 단계마다 "이때 막히면 이렇게" 팁 포함.
*.pages.dev 서브도메인 사용초기 비용 0원. Cloudflare 무료 티어는 하루 100,000회 요청, Gemini 무료는 분당 15회 호출까지 허용.
9개 도메인을 각각 <section id="view-xxx">로 나누고 기본은 display:none. 현재 뷰 전환은 location.hash로 제어.
SPA 라우터 라이브러리 불필요. window.onhashchange로 view-* 토글.
DB 없음. 사용자 체질·사주 결과는 STATE 오브젝트로 관리 후 localStorage.setItem('unmyeong_state', JSON.stringify(STATE)). 앱 시작 시 로드.
중요한 필드만 저장하고 나머지는 세션 메모리. 이미지(얼굴·손)는 저장하지 않음.
홈 화면 9개 카드 그리드. 각 카드 터치 → location.hash = '#view-tarot' 같은 식. 뒤로가기는 브라우저 기본 기능 그대로.
뒤로가기 제스처를 직접 구현하지 마세요. history.pushState만 잘 쓰면 모바일 뒤로가기가 자연스럽게 동작.
AI를 붙이기 전에 모든 도메인이 고전 규칙만으로 결과를 내도록 만듭니다. AI는 해설 레이어로 나중에.
입력: 생년월일시 → 연주·월주·일주·시주 4기둥 산출. 갑자년표·월주 공식·일주 만세력(JS 함수 테이블)·시주 공식. 핵심 코드 200줄 정도.
만세력 데이터는 1900~2100 정도 배열 하나로 커버. 외부 API 필요 없음.
메이저 22 + 마이너 56 카드 오브젝트 배열. shuffle() → 3장 slice → 각 카드마다 50% 확률로 reversed 플래그. 카드 조합별 가중치는 테이블로.
6효를 각각 2.5% 확률로 노양/노음(변효)으로 돌림. 본괘 이진코드 → 괘사 테이블 조회. 변효가 있으면 변괘까지 같이 제공.
문항별 답을 8체질 × 문항 가중치 매트릭스에 내적. 최고점 체질이 결과. 체질별 식단·수칙 테이블은 이레한의원 강의록 기반으로 구조화.
Cloudflare Pages는 functions/ 폴더를 자동으로 서버리스 API로 배포. /api/commentary 엔드포인트가 프론트에서 fetch 가능.
키는 env.GEMINI_API_KEY로만 접근. 클라이언트 코드에는 키 노출 0.
"당신은 30년 경력 운명 상담사입니다. 400~600자, 존댓말, 점수는 언급하지 말고 카테고리 축으로 말하세요." 식으로 톤과 길이를 명시. JSON 스키마로 응답 강제.
Gemini의 response_mime_type: 'application/json' 옵션으로 구조화 응답 강제. 파싱 실패 방어.
/api/palm-analyze는 이미지를 Gemini 2.5 Flash Lite에 전달. 응답 스키마에 lines·fingers·handShape 필드 정의. 필드 벗어나면 fallback 카운터 증가.
fallback ≥2 → confidence: 'low' 반환. 프론트는 이 플래그로 ⚠️ 배지 표시.
face-api.js를 CDN으로 로드. 모델 4개(~4MB)는 /models 경로에 정적 배포. 얼굴 사진을 캔버스로 처리 후 68 랜드마크 추출. 서버 송신 없음.
name, short_name, icons 192/512, display: 'standalone', theme_color. HTML에 <link rel="manifest"> 추가하면 끝.
sw.js에 VERSION 상수 + install/activate/fetch 핸들러. HTML은 network-first(항상 최신), 정적은 cache-first(빠른 로딩).
새 배포 때 VERSION 문자열만 바꾸면 구 캐시 자동 삭제. 핵심 한 줄.
skipWaiting() + clients.claim() + 메인에서 controllerchange 감지 시 location.reload(). 사용자 개입 없이 새 버전 자동 반영.
무작정 리로드하지 말고, 진행 중 입력이 있다면 Toast로 "새 버전 준비됨" 안내 후 유저 확인.
npx wrangler pages deploy dist --project-name=unmyeong --branch=main. 30초 안에 unmyeong.pages.dev 반영. main 브랜치가 프로덕션 — 다른 이름은 Preview로 감.
wrangler 성공 메시지만 믿지 말고 curl -s https://unmyeong.pages.dev | grep VERSION으로 실제 반영 확인. 엉뚱한 브랜치에 배포한 적 실제로 여러 번 있음.
npx wrangler pages deployment list --project-name=unmyeong로 전체 배포 이력 확인. 특정 deployment를 다시 프로덕션으로 올리기 한 번에 가능.
v7.5 → v8.3.7 진화: STAGE_VOICE 16 프리픽스 / 손금 confidence 배지 / alert→Toast 교체 / 9엔진 통합 점수판(4그룹 매트릭스) / 다크 핀테크 + 한자·한글 이중 레이어 디자인 시스템 / 인플레이스 카메라 UX / 7일 기운 차트 / 오행 레이더 / 삼합·육합 궁합 매트릭스 / 자평진전·연해자평 등 고전 인용 RAG. 버전 차이는 ver-badge에 한 줄 기록 → 사용자도 현재 버전 인지.
배포할 때마다 VERSION 문자열 업데이트 필수. 안 하면 PWA 캐시 때문에 사용자는 구버전 계속 봄.
v7.5는 "9개 도메인이 각자 잘 작동하는 앱"이었습니다. v8은 그것들을 한 화면에서 동시에 읽히는 운명 플랫폼으로 재구성합니다. 같은 엔진, 다른 정체성.
운세 앱들의 보라·파스텔 톤을 버리고 다크 핀테크 + 골드를 채택. #06070A 배경에 #D4AF37 골드 액센트. JetBrains Mono로 점수·델타를 디지털 자산처럼 표기. Noto Serif KR로 한자에 권위.
"운명을 자산처럼 다룬다"는 메시지. 미신 같지 않으면서 깊이 있는 톤이 핵심 가설.
큰 타이틀=한글 뜻풀이("재물이 피어나는 해"), 작은 부제=한자·엔진명("사주명리 · 食神生財"). 한자는 작게 골드, 한글이 주연. 외국인 친화적이면서도 동양 고전의 권위는 살림.
홈 화면에 4그룹 × 3타일 매트릭스. 正統 사주·주역·자미 / 象徵 타로·꿈·운세 / 時點 월운·세운·대운 / 緣·體 궁합·관상·손금. 각 타일에 점수 + ▲▼ 어제 대비.
한 화면에서 9개 엔진의 합의를 본다 → 단일 점괘에 흔들리지 않음.
오늘의 천간지지(예: 丙午) + 음양오행(陽의 火) + 한 줄 뜻("태양처럼 빛나는 날") + 점수 + 7일 스파크라인 + 4칩(방위·색·수·시).
木火土金水 5각형 차트로 오늘의 오행 균형 시각화. 자동 진단 멘트 — "불(火) 기운이 센 날 · 필요한 건 물(水) = 차분함" 식.
v7.5: 캡처 → 별도 결과 화면 점프 (전환 끊김). v8: 가이드 프레임 그 자리에 사진 inject + 가이드·팁·액션 일괄 hide(gs-captured 클래스).
label 패턴으로 iOS Safari click 우회 + 인공지연 제거 + 마커(정렬용) 제거. 4사이클 시행착오 끝에 도달한 패턴.
운세·매칭의 궁합 띠 추천이 엔진 compat.good에 의존하던 걸 폐기. 三合(寅午戌·申子辰·亥卯未·巳酉丑) 4국 + 六合(子丑·寅亥·卯戌·辰酉·巳申·午未)을 12지 고정 적용.
결과: BEST·三合 / 三合 / 六合 3태그로 TOP 3 추천. 같은 띠에는 같은 매칭 — 일관성 확보.
자평진전·연해자평·삼명통회·적천수 4개 고전에서 950케이스 RAG. 결과 카드에 한문 인용 + 한글 번역 + 출처를 같이 표기. 사용자가 "AI가 만든 말"이 아니라 "고전 어디서 왔다"를 즉시 확인.
홈 화면 매트릭스에서 한 영역만 보지 말고 4그룹 합의를 보세요. 정통(사주·주역·자미)이 다 높은데 시점(월·세·대운)이 낮으면 — "타고난 그릇은 좋은데 지금 때가 아닌 시기".
▲▼ 변화량은 어제 대비. 며칠 추적하면 흐름이 읽힙니다.
"이 사람과 결혼해도 될까?" (X) → "이 사람과의 관계에서 내가 지금 주의할 점은?" (O)
예/아니오 질문보다 관점 질문이 더 유용한 해석을 끌어냅니다.
정면, 밝은 자연광, 안경·모자 없이, 표정 없이. 머리카락이 이마를 가리지 않게.
face-api가 68개 랜드마크를 잡아야 정확도 높아집니다. 각도 틀어진 사진은 오형 오판 가능.
손바닥 전체가 프레임에 들어오게, 손가락 끝 포함. 밝고 균일한 조명. 선이 또렷이 보이도록.
흐린 사진이면 ⚠️ 배지가 뜹니다. 그때는 더 밝은 곳에서 재촬영 후 다시 업로드.
"큰 뱀이 물을 건너 내 품으로 왔어" 한두 문장이면 충분. 감정·장소·대상 포함 시 더 정확.
너무 짧으면 상징 추출이 약해지고, 너무 길면 초점이 흐려집니다. 두 문장 원칙.
주역은 중요한 결정에 쓰세요. "오늘 점심 뭐 먹지?" 말고 "이 회사로 이직해야 할까?" 수준.
같은 질문을 여러 번 반복하지 마세요. 주역은 "첫 답이 진짜 답"이라는 원칙이 있습니다.
네. 9개 도메인 전부 무료. 향후 결제 기능은 추가될 수 있지만 기본 분석은 영구 무료.
아니요. 관상은 브라우저 안에서 처리되고, 손금은 Gemini로 한 번 프록시된 뒤 즉시 폐기. Sean 서버에는 저장 안 됨.
운세·주역은 날짜(일진)가 변수로 들어가기 때문. 타로는 카드가 매번 무작위. 사주·체질·관상은 본래 고정.
고전 규칙은 엄격히 적용, AI 해설도 전문가 톤. 다만 삶의 최종 결정은 본인의 몫. 참고 자료로 활용하세요.