← 목록
기타 2026-06-09 9KB 읽기 9분

티옴타 공유·소개자 시스템 (729 결 카드)

개요

tiomta.com(:9878) 서비스를 정상화하고, 티옴타테스트 결과를 729가지 결 카드로 공유하는 소개자(referral) 시스템을 구축했다. 제미나이 플래시 라이트 기반 기본 상담을 티옴타 컨텍스트로 강화했다.

무엇을 했는지

1. 서비스 정상화

  • :9878이 죽어 있어(응답 000) 재기동. .env(GEMINI 키) 로드 후 node server.js.
  • health/진단/제미나이 모두 정상 확인.
  • keepalive 버그 수정: tiomta-keepalive.sh가 .env 없이 재시작해 제미나이 키가 빠지던 문제 → 재시작 전 .env 자동 로드하도록 패치.

2. 기본 상담 (제미나이 플래시 라이트 + 티옴타 컨텍스트)

  • POST /api/consult 신설: gemini-flash-lite-latest에 티옴타 시스템 프롬프트(9유형·729좌표·결 관점, 평가/진단 금지) + 대화 히스토리 + (선택)테스트 결과를 주입.
  • 기존 /api/ai/lite는 컨텍스트 없는 raw 호출 → 환각 발생. /api/consult가 상담 전용.

3. 729 결 카드 + 공유/소개자

  • 티옴타테스트(test.html, 120문항·6좌표)는 T/O/A 3진 × 6자리 = 729 verse를 산출 → 그대로 카드번호 1..729.
  • verseToCard(): 각 자리 T=0/O=1/A=2(U→1), base3 폴드 +1.
  • POST /api/share/create (로그인 불필요): 결과를 카드로 영속화. ref 파라미터로 소개자 체인 기록(소개자 invitees +1).
  • GET /api/share/:id (공개): 소개자의 기본 테스트 결과(동기/상태/접점 라벨 + 카드).
  • GET /api/share/:id/detail (로그인 필요, 401 게이트): 6차원 전체 해석.
  • /r/:idshare.html 랜딩.

4. 프론트엔드

  • public/share.html 신규: 소개자 초대 화면 + 729 카드 비주얼(T/O/A/U 색·도형) + 기본 결과 + CTA 2종.
  • 🎴 나도 해보기/test.html?ref=:id (로그인 없이)
  • 🔒 …님의 티옴타 자세히 보기 → detail 호출, 401이면 인라인 로그인(email/password → /api/auth/login → crowny_token 저장 → 재시도).
  • public/test.html 통합: ?ref= 캡처, 결과 시 공유 생성 → 카드번호 표시 → 공유하기(소개자 되기) 버튼(navigator.share/클립보드).
  • 검증

    • 공유 생성 → 카드 #147(TOAUTA), 기본 공개 OK, detail 무로그인 401 OK.
    • 소개자 체인: B(ref=A) 생성 → A.invitees=1 확인.
    • .한선 동반(공유카드.한선) 컴파일·실행 → 카드 147 (JS와 패리티 일치).
    • share.html/test.html 임베드 JS 문법 검사 통과.

    관련 파일

    • /Users/ef/crowny-tiomta/server.js — consult/share 라우트, verseToCard, share 저장
    • /Users/ef/crowny-tiomta/public/share.html — 공유 랜딩(신규)
    • /Users/ef/crowny-tiomta/public/test.html — ref 캡처 + 공유 생성/버튼
    • /Users/ef/crowny-tiomta/공유카드.한선 — 729 카드 로직 동반(컴파일 OK)
    • /Users/ef/crowny-tiomta/tiomta-keepalive.sh — .env 로드 패치
    • 데이터: data/shares/<id>.json

    잔여 이슈

    • detail의 6차원 해석은 현재 라벨 나열 수준 → 제미나이 메인으로 풍부한 서술 생성 가능.
    • 소개자 보상(맘/포네) 연동 미구현 — invitees 카운트만 기록.
    • 카드 #N별 고유 디자인/이름(729종) 데이터셋 미작성(verse-tree.json 연계 여지).
    • 한선씨 게이트웨이(:9898)로 점진 이관 대상(현재 잔여 Node.js).

    추가: 클로드 밸런스 GUI/UX 개선 (2026-06-09)

    사용자 요청 — "클로드를 사용하는 것 같은 밸런스의 GUI/UX, 이모지도 클로드 연계 서비스처럼 미투전략".

    적용 디자인 시스템 (warm kraft + coral)

    • 배경: 크라프트 아이보리 #F4F2EC / 카드 #FBFAF7 (클로드.ai paper 톤)
    • 프라이머리 액센트: 클로드 코랄/클레이 #D97757 (기존 골드는 O·옴 시그니처로 보존)
    • 디스플레이 폰트: 세리프(Tiempos/Georgia/Nanum Myeongjo) — 헤딩·카드·시나리오. 본문은 Söhne/Pretendard
    • 다크모드: 보라-블랙(#0F0D14) → 클로드 웜브라운(#1F1E1C/#262521)
    • 이모지 미투: 클로드 스파클 모티프 중심(헤더 마크·카드 워터마크·공유 버튼). 🔗🔔🎴 등 잡다한 이모지 정리, 테마토글 🌙→☾
    • TOAU 시그니처 보존: T(녹)·O(금)·A(코랄레드)·U(보라) 데이터 컬러 유지

    적용 파일

    • public/share.html — 전면 재디자인 (공유 랜딩)
    • public/test.html — 인라인 토큰 라이트/다크 교체 + 세리프 헤딩/시나리오 + 공유 카드/버튼 이모지 정제

    검증 (헤드리스 크롬 스크린샷)

    • /tmp/share_light.png, /tmp/share_dark.png, /tmp/test_light.png — 라이트/다크 모두 클로드 연계 룩 확인. JS 문법 통과, 서빙 200.

    추가 2: 글리프·폰트 정제 + index 동기화 (2026-06-09)

    사용자 지정 디테일:

    • TOAU 글리프: 티 △ · 옴 ○ · 타 ▽ → 속 빈(hollow) 중립색(초록·빨강 제거), 한글 자모(ㅁ·ㅇ) 느낌. 음만 작은 채워진 원 ●. SVG fill:none;stroke:currentColor (음=fill:currentColor r≈3.6). 슬롯·답변 컬러 배경 중립화.
    • 폰트: 문항(시나리오·질문)+대화(버블) 폰트 통일(sans, 세리프 금지). 답변 글씨 +10%(→15~15.5px), 문항·대화 −10%(버블 13.5px·시나리오 14.5px·질문 12.5px). 디스플레이 헤딩/카드/모달 제목만 세리프.
    • index.html(=/ 진입) 동기화: 구버전 베이지+채운색 → 클로드 밸런스로 통일. 시작 모달 제목·버튼 초록→보라 그라데이션 제거(세리프 코랄), 헤더 그라데이션 코랄→골드, --bg3 alias 추가.
    적용: public/index.html, public/test.html, public/share.html — 3페이지 일관. 검증: /tmp/share_v2.png(글리프), /tmp/test_preview.png(답변·문항·대화), /tmp/index_v2.png(모달). JS 문법 통과.


    추가 3: TOAU 4모드 테스트 패밀리 (2026-06-09)

    사용자 요청 — 같은 729 결과, 도출 방식만 다른 4가지 테스트(TOAU). 한 번 한 사람이 다른 것도 해볼 수 있게.

    4모드 (4상균형3진 매핑)

    모드문항게이트경로
    티 T △빠른 테스트6 (1/좌표)무료/flow.html?mode=fast
    옴 O ○스탠다드(현재)120무료/test.html
    타 A ▽놀이 테스트(아이)6 이모지무료/flow.html?mode=play
    음 U ●딥 테스트12프리미엄(tier∈premium/pro)/flow.html?mode=deep
    ※ "스탠다드(음)"은 옴(O) 오타로 판단 — 음은 딥 전용.

    구조

    • 공용 러너 flow.html: fast/play/deep 한 파일. 모드별 문항은행(Q_FAST/Q_PLAY/Q_DEEP), 6좌표 dominant 집계 → verse → /api/share/create → 729 카드 + 공유. deep은 /api/me tier 체크로 게이트(비프리미엄 업셀+로그인).
    • 허브 tests.html: 4모드 카드(속 빈 글리프 △○▽ + 음 ●), 기본/유료 배지, ?ref 통과, 교차 진입.
    • 결과 동일성: 모든 모드가 TYPE_MAP/STATE/ITF 동일 맵으로 6좌표→동일 729. cardNo 검증(TTTTTT→1, TOAUTA→147).
    • 교차 유도: 각 결과에 "다른 방식으로 또" 버튼. index 모달·test 결과에 허브 링크. flow 결과에 나머지 3모드 버튼.
    • index.html 표준 동기화: / 진입 표준 테스트에도 공유카드(createShareIdx/doShareIdx) 이식 — test.html과 동일 동작.

    관련 파일

    • public/flow.html(신규·러너), public/tests.html(신규·허브)
    • public/test.html(허브 링크), public/index.html(공유 이식 + 모달 허브 + 결과 허브)

    검증 (헤드리스)

    • /tmp/hub.png(4모드), /tmp/fast.png(티 카드UI), /tmp/deep_gate.png(음 프리미엄 게이트), /tmp/play.png(타 이모지). JS 5파일 문법 통과, 공유생성 cardNo 정상.

    잔여

    • 딥 결과의 detail 깊은 서술(제미나이 메인) / 놀이 결과 아동용 표현 / 표준(test.html)·index.html 테스트 엔진 이중구현 통합 여지.

    추가 4: 테스트 정교화 (2026-06-09)

    • 빠른(티): 6→27문항(9×3라운드). 전 연령용 재미있는 시나리오, 라운드 진행감("라운드 N/3"), 좌표당 4~5표로 정확도↑.
    • 놀이(타): 아이 눈높이 쉬운 말 + 큰 히어로 이모지(64px) + 큰 글씨(26px) + 큰 선택지(이모지 34px).
    • 딥(음): 12→18문항(좌표당 3개), 내성적 다층 질문, 6문항×3라운드 페이싱.
    • flow.html roundSize 로직(라운드 표시·라운드브레이크 격려 화면) 추가. 헤드리스 검증 완료.