Tiomta 블록체인 플랫폼 — 100 태스크 마스터플랜
비전
세계 최초 글로벌 차세대 블록체인 멀티 콘텐츠 플랫폼.
각 사용자의 컴퓨터가 노드 → 자기 콘텐츠는 자기 컴퓨터에서 스트리밍.
구독자 증가 → 근거리 노드 자동 확장 (지리적 CDN 자가형성).
5 콘텐츠 도메인
| 서비스 | 한선씨 | 포트 | 역할 |
|---|
| 티옴타튜브 | 티옴타튜브.한선 | 9890 | YouTube 대응 — P2P 영상 스트리밍 |
| 티옴타톡 | 티옴타톡.한선 | 9891 | X/Threads 대응 — 마이크로블로그 |
| 티옴타송 | 티옴타송.한선 | 9892 | Spotify 대응 — P2P 음원 |
| 티옴타코드 | 티옴타코드.한선 | 9893 | GitHub 대응 — 코드 공유 |
| 티옴타게임 | 티옴타게임.한선 | 9894 | 자작 게임 배포 |
통화: 크라우니달러 (CRD)
- USD 페깅 (1 CRD = $1)
- 초기 보상: 업로드 0.1 CRD, 시청/리뷰 0.01 CRD
- CRN/FNC/CRM과 교환 가능 (4번째 자산)
- crowny-bank 확장
기존 자산 활용
| 자산 | 활용 방법 |
|---|
| 크라우니노드서비스.한선 (9729) | 노드 등록/하트비트/맘 보상 — 그대로 사용 |
| crowny-chain 블록체인 (9729) | 트랜잭션/블록 검증 |
| crowny-bank (9400) | 지갑 + 크라우니달러 추가 |
| crowny-auth (9401) | 통합 ID |
| crowny-ai (9852) | AI 엔진 (Anthropic 래퍼) |
| 머클트리.한선 | 콘텐츠 무결성 |
| 해시체인.한선 | 블록 연결 |
| 게이트웨이피어.한선 | P2P 피어 탐색 |
| SSE.한선 | 실시간 스트리밍 |
Phase A — 기획/아키텍처 (10 태스크)
A1-10: 즉시 시작
- A1. P2P 노드 아키텍처 다이어그램
- A2. 콘텐츠 주소(CID) 명세 — SHA256 기반
- A3. 가십 프로토콜 메시지 포맷 정의
- A4. 크라우니달러(CRD) 토큰 명세
- A5. 보상 알고리즘 명세 (업로드/시청/리뷰)
- A6. 관심사 알고리즘 명세 (티옴타 9유형 × 콘텐츠 태그)
- A7. 노드 디스커버리 프로토콜
- A8. 콘텐츠 청크 + HLS 매니페스트 명세
- A9. AI 추천 엔진 - crowny-ai 9852 통합점
- A10. 게이트웨이 라우팅 설계 (tiomta.com 서브도메인)
Phase B — 한선씨 코어 구현 (40 태스크)
B1-10: 신규 라이브러리 빌드 (한선씨)
- B1.
P2P가십.한선 — 가십 프로토콜
- B2.
콘텐츠주소저장소.한선 — CID 기반 청크 저장
- B3.
HLS매니페스트.한선 — m3u8 생성/파싱
- B4.
HTTP범위요청.한선 — 206 Partial Content
- B5.
Ed25519.한선 — 트랜잭션 서명
- B6.
트랜잭션풀.한선 — mempool
- B7.
DHT.한선 — Kademlia 노드 탐색
- B8.
티옴타프로토콜.한선 — 콘텐츠 메시지 포맷
- B9.
보상엔진.한선 — CRD 분배
- B10.
관심사매칭.한선 — 추천 알고리즘
B11-20: 티옴타튜브 (영상)
- B11. 티옴타튜브.한선 기본 서버 (포트 9890)
- B12. 영상 업로드 엔드포인트
- B13. 청크 분할 + CID 등록
- B14. HLS 매니페스트 생성
- B15. Range Request 스트리밍
- B16. P2P 피어 디스커버리 통합
- B17. 시청 카운트 + 보상 트리거
- B18. 리뷰/댓글 시스템
- B19. 채널/구독 관계
- B20. 추천 알고리즘 통합
B21-25: 티옴타톡 (마이크로블로그)
- B21. 티옴타톡.한선 서버 (포트 9891)
- B22. 포스트 생성/조회 (140자 한도)
- B23. T/O/A/U 반응 시스템 (좋아요 대신)
- B24. 멘션/해시태그 인덱싱
- B25. 타임라인 가십 전파
B26-30: 티옴타송 (음원)
- B26. 티옴타송.한선 서버 (포트 9892)
- B27. 오디오 청크 + 메타데이터
- B28. 플레이리스트 시스템
- B29. 9유형별 큐레이션
- B30. P2P 오디오 스트리밍
B31-35: 티옴타코드 (코드)
- B31. 티옴타코드.한선 서버 (포트 9893)
- B32. 리포지토리 생성/푸시
- B33. 한선씨 코드 자동 학습 통합
- B34. 코드 리뷰 시스템
- B35. 스타/포크 보상
B36-40: 티옴타게임 (게임)
- B36. 티옴타게임.한선 서버 (포트 9894)
- B37. 게임 빌드 업로드 (.한선 + 에셋)
- B38. 인앱 결제 (CRD) 시스템
- B39. 멀티플레이어 매치메이킹
- B40. 게임 리더보드 + 보상
Phase C — 크라우니달러 + 보상 (15 태스크)
C1-15
- C1. crowny-bank에 CRD 자산 추가
- C2. 1 CRN = 100 CRD 교환 비율 (또는 별도 USD 페깅)
- C3. CRD 지갑 API
- C4. 업로드 보상 트리거 (0.1 CRD)
- C5. 시청 보상 트리거 (0.01 CRD)
- C6. 리뷰 보상 트리거 (0.05 CRD)
- C7. 트랜잭션 검증
- C8. 잔액 조회 API
- C9. 거래 내역 API
- C10. 송금 API
- C11. CRD ↔ CRN/FNC 교환 (DEX 통합)
- C12. 보상 분배 풀 (월간 한도)
- C13. 어뷰징 방지 (1IP/계정 제한)
- C14. 환율 오라클 (USD/KRW)
- C15. 출금 API (외부 결제 게이트웨이)
Phase D — 프론트엔드 통합 (20 태스크)
D1-20
- D1. AI 채팅창 유지 (메인 컴포넌트)
- D2. 하단 콘텐츠 스트립 — 추천 튜브/송/톡/코드/게임 순서
- D3. 관심사 알고리즘 표시
- D4. 9유형 채널 뷰
- D5. 콘텐츠 업로드 UI (드래그앤드롭)
- D6. CRD 잔액 + 거래 표시
- D7. 노드 상태 위젯 (온라인 시간/맘/CRD)
- D8. 채널/구독 관리
- D9. 영상 플레이어 (P2P 스트리밍)
- D10. 음악 플레이어
- D11. 게임 런처
- D12. 코드 뷰어 (구문 강조)
- D13. 톡 타임라인
- D14. 검색 (한선씨 검색 인덱싱)
- D15. 댓글/리뷰 UI
- D16. 알림 시스템 (SSE)
- D17. 다국어 (한/영) 모든 신규 콘텐츠
- D18. 다크 모드 통합
- D19. 모바일 반응형
- D20. PWA 오프라인 모드
Phase E — 노드 클라이언트 + 배포 (15 태스크)
E1-15
- E1. tiomta-node.sh 배포 스크립트 (Mac/Linux)
- E2. tiomta-node.ps1 (Windows)
- E3. 자동 업데이트 메커니즘
- E4. 노드 설정 UI (어떤 콘텐츠 호스팅할지)
- E5. 저장 공간 한도 설정
- E6. 대역폭 제한 설정
- E7. tiomta.com DNS 설정
- E8. SSL 인증서 (Let's Encrypt)
- E9. 게이트웨이 라우팅 (튜브/톡/송/코드/게임 서브도메인)
- E10. 통합데몬에 5개 서비스 등록
- E11. 모니터링 대시보드
- E12. 노드 인센티브 표시
- E13. 가입 → 노드 자동 시작 플로우
- E14. Docker 이미지 배포
- E15. App Store / Play Store 패키징
진행 방식
- 즉시 시작: Phase A 전체 + Phase B 첫 5개 (P2P 코어 라이브러리)
- /loop 활용: 매 30분마다 다음 5개 태스크 자동 진행
- Sonnet 에이전트: 한선씨 코드 작성 (병렬 5개씩)
- Haiku 에이전트: 검증/테스트/문서화 (병렬 3개씩)
- /한선씨 스킬: 코드 생성 시 우선 사용
핵심 원칙
- 모든 코어 로직은 .한선 — Node.js는 UI 게이트웨이만
- 기존 자산 최대 활용 — 새로 짤 필요 없는 것 80%
- 점진적 통합 — 한 번에 한 서비스씩
- 즉시 테스트 — 매 태스크 후 컴파일 + 헬스체크
- /한선씨 우선 —
crownycode-learn.sh search 먼저
진행 기록 (2026-05-22 /loop 자가실행)
반복 1 완료
- ✓ A9: AI 엔진 swap — Tiomta → crowny-ai(9852) 경유, systemOverride 지원
- ✓ B2: 콘텐츠주소저장소.한선 (CID 저장, 컴파일 OK 205KB)
- ✓ B4: HTTP범위요청.한선 (206 Partial Content, 컴파일 OK 210KB)
- △ B1/B3: P2P가십/HLS매니페스트 — 작성됨, 구문오류 (재작성 대기)
- ✓ B11: 티옴타튜브.한선 (:9890) — upload/view/review + CRD 보상, 가동중
- ✓ C1: 크라우니달러.한선 (:9896) — CRD 보상통화, 별도서비스로 구현
- ✓ D: 송'/게임' 탭 추가, 하단 추천 스트립 (튜브/송/톡/코드/게임)
반복 2 완료
- ✓ B21: 티옴타톡.한선 (:9891) — 마이크로블로그, T/O/A/U 4상 반응
- ✓ B26: 티옴타송.한선 (:9892) — P2P 음원, 9유형 큐레이션
- ✓ B31: 티옴타코드.한선 (:9893) — 코드공유, repo/push/star
- ✓ B36: 티옴타게임.한선 (:9894) — 자작게임, publish/play/구매
가동 서버 현황 (8종)
| 서버 | 포트 | 언어 | 상태 |
|---|
| 크라우니AI엔진 | 9852 | Node.js | 가동 |
| 티옴타AI | 9878 | Node.js (UI) | 가동 |
| 티옴타튜브 | 9890 | 한선씨 | 가동 |
| 티옴타톡 | 9891 | 한선씨 | 가동 |
| 티옴타송 | 9892 | 한선씨 | 가동 |
| 티옴타코드 | 9893 | 한선씨 | 가동 |
| 티옴타게임 | 9894 | 한선씨 | 가동 |
| 크라우니달러 | 9896 | 한선씨 | 가동 |
5개 콘텐츠 도메인 전부 한선씨로 구현·컴파일·가동 완료.
반복 3 완료
- ✓ E9: 콘텐츠 프록시 — tiomta /api/content/feed (6서버 통합) + /api/content/:service/ 프록시
- ✓ C9/C10: 크라우니달러 송금(transfer)/거래내역(history) 엔드포인트
- ✓ E10: tiomta-stack.sh 통합 시작/정지 스크립트 + gateway.yaml 6개 콘텐츠 라우트
- ✓ D3: 프론트 하단 추천 스트립 라이브 데이터 연동 (30초 갱신)
알려진 이슈: crownyc VM 맵꺼내가 빈키에 비-"" 반환 → CRD 사용자수 카운터/1밀리 표시 오차 (기능 무관)
반복 4 완료
- ✓ B-노드: 티옴타노드.한선 (:9895) — P2P 노드 등록/하트비트/호스팅/근거리피어, 컴파일 OK
- ✓ E1/E2: 노드 클라이언트 — tiomta-node.sh (Mac/Linux) + .ps1 (Windows) + README
- ✓ D4: 9유형 관심사 채널 뷰 (슬라이드 패널)
- ✓ D7: 노드 상태 위젯 (사이드바 — 온라인시간/CRD/맘, 60초 갱신)
핵심 차별점 "각 컴퓨터가 노드" 구현 완료 — 등록→하트비트→1시간당 1맘 보상.
가동 서버 9종 (AI엔진/티옴타/튜브/톡/송/코드/게임/CRD/노드).
반복 5 완료
- ✓ B1-재작성: P2P가십.한선 — 단순 문법 재작성, 컴파일 OK (가십 dedup/TTL/카운터)
- ✓ B3-재작성: HLS매니페스트.한선 — 단순 재작성, 컴파일 OK (VOD/라이브/마스터)
- ✓ D5: 콘텐츠 업로드 UI — FAB + 5유형 업로드 모달, CRD 보상 표시
- ✓ D6: 상단바 CRD 잔액 칩 (30초 갱신)
한선씨 라이브러리 6종(B1~B4 + 재작성 2) 전부 컴파일 통과. 9서버 안정 가동.
반복 6 완료
- ✓ 안정화: tiomta-keepalive.sh — 9서버 15초 감시·자동재시작 데몬 가동
- ✓ B13: 티옴타튜브 WAL 영속화 — 업로드→재시작→복원 검증 (블록체인급 영속성)
- ✓ D9/D13: 콘텐츠 뷰어 패널 — 5유형별 콘텐츠 목록 뷰 (CV_CONFIG/CV_RENDERERS)
플랫폼 안정화 완료: keepalive 데몬으로 무중단 운영, WAL로 콘텐츠 영속성 확보.
반복 7 완료
- ✓ B-WAL: 티옴타톡/송/코드/게임 4서버 WAL 영속화 추가
- ✓ 톡 중복 JSON 키(reactions) 수정 → reaction_types
- ✓ 검증: 송 업로드 2회→재시작→복원 성공
5개 콘텐츠 도메인(튜브/톡/송/코드/게임) 전부 WAL 영속화 — 콘텐츠가 서버 재시작에도 보존됨.
반복 8 완료 — 통합 검증
- ✓ 9/9 서버 가동 확인
- ✓ end-to-end 테스트: 5개 콘텐츠 업로드 → CRD 보상 → 통합 피드 → 프론트 서빙 전부 통과
- ✓ WAL 영속성: 튜브 vid_4, 송 track_3 (재시작 후에도 카운터 유지)
플랫폼 완성 현황 (반복 1~8)
가동 서버 (9종)
| 서버 | 포트 | 언어 | 영속성 |
|---|
| 크라우니AI엔진 | 9852 | Node.js | — |
| 티옴타AI (UI/게이트웨이) | 9878 | Node.js | conversations |
| 티옴타튜브 | 9890 | 한선씨 | WAL |
| 티옴타톡 | 9891 | 한선씨 | WAL |
| 티옴타송 | 9892 | 한선씨 | WAL |
| 티옴타코드 | 9893 | 한선씨 | WAL |
| 티옴타게임 | 9894 | 한선씨 | WAL |
| 티옴타노드 | 9895 | 한선씨 | 인메모리 |
| 크라우니달러 | 9896 | 한선씨 | 인메모리 |
인프라
- tiomta-keepalive.sh — 15초 감시 무중단 데몬
- tiomta-stack.sh — 통합 시작/정지
- 노드 클라이언트 — tiomta-node.sh/.ps1 (사용자 배포용)
- gateway.yaml — 7개 tiomta 서브도메인 라우트
한선씨 라이브러리 (6종, 전부 컴파일 통과)
P2P가십, 콘텐츠주소저장소, HLS매니페스트, HTTP범위요청 (+ 송/코드/게임/튜브/노드/CRD 서버)
프론트엔드
AI 채팅(메인) + 하단 5콘텐츠 추천 스트립 + 콘텐츠 뷰어 + 9유형 채널 + 업로드 FAB/모달 + CRD 칩 + 노드 위젯 + 한/영 i18n + 크라우니통합ID 로그인
경제
크라우니달러(CRD) — 업로드 0.1 / 시청·재생 0.01 / 리뷰 0.05 / 톡 0.02 CRD. 보상/잔액/송금/내역.
핵심 차별점 구현 완료
"각 컴퓨터가 노드" — 티옴타노드 등록/하트비트/호스팅, 노드 클라이언트 배포 스크립트, 1시간 온라인=1맘 보상.
반복 9 완료
- ✓ C2/C11: CRD↔CRN 교환 엔드포인트 (100 CRD = 1 CRN) — 컴파일 OK, 검증 완료
- 경제 루프 완성: 콘텐츠 보상(CRD) → 송금 → CRN 교환 → 크라우니 생태계 통화 연결
반복 10 완료
- ✓ C4/C5/C6: 콘텐츠 액션 자동 CRD 보상 — 프록시가 업로드/시청/리뷰 성공 감지 시 CRD 서버에 보상 발행
- 검증: 콘텐츠 3개 업로드 → +0.3 CRD 자동 발행 확인
- 경제 완전 자동화: 콘텐츠 생성 → 즉시 CRD 보상 → 송금/교환 가능
반복 11 완료
- ✓ B10: 관심사매칭.한선 — 9유형 × 5콘텐츠 친화도 매트릭스, 컴파일 OK
- 유형별 추천: 완벽주의자→코드, 예술가→송, 열정가/도전자→게임, 탐구자→코드 등
- keepalive 데몬 정상 작동 확인 (9852/9878 자동 복구)
반복 12 완료
- ✓ D3 완성: 추천 스트립 관심사 재정렬 — 진단 완료 시 유형별 친화도로 5개 카드 자동 정렬
- 예: 예술가→송' 최우선, 도전자→게임' 최우선, 탐구자→코드' 최우선
- "관심사 알고리즘대로 보여지는 채널" 비전 실현
반복 13 완료
- ✓ B5: 티옴타서명.한선 — SHA256-HMAC 거래/콘텐츠 서명, 검증 동작 확인
- ✓ B6: 트랜잭션풀.한선 — mempool (대기/확정/거부), 컴파일 확인
- 한선씨 라이브러리 누적 8종 전부 컴파일 통과
반복 14 완료
- ✓ E-문서: 플랫폼 종합 README (153줄) — 아키텍처 다이어그램, 9서버, 실행법, CRD 경제, 노드 클라이언트, 도메인 매핑
- 게이트웨이 8개 tiomta 라우트 등록 확인
반복 15 완료
- ✓ 티옴타노드 WAL 영속화 — 노드 등록 영속, 재시작 복원 검증
- 한선씨 서버 6종 전부 WAL 영속성 (튜브/톡/송/코드/게임/노드)
- 크라우니달러는 콘텐츠 이벤트에서 파생되므로 별도 영속 불필요
반복 16 완료 (2026-05-27 재개)
✓ tiomta-status.sh 검증 — 9서버, 콘텐츠, CRD, P2P, WAL, keepalive 종합 점검 동작
✓ 5/5 콘텐츠 서버 본문 저장 패치 재적용 (이전 세션 디스크 풀로 미반영분)
튜브: 영상맵 + 본문추출(title) + WAL 본문 복원 + 목록에 본문 반환
톡: 포스트맵 + 본문추출(text) + WAL 본문 복원 + 타임라인 본문 반환
송: 트랙맵 + 본문추출(title) + WAL 본문 복원 + 트랙목록 본문 반환
코드: 리포맵 + 본문추출(name) + WAL 본문 복원 + 리포목록 본문 반환
게임: 게임맵 + 본문추출(name) + WAL 본문 복원 + 게임목록 본문 반환
검증: 5/5 서버 모두 WAL 복원 시 기존 콘텐츠 제목·본문까지 복원, 새 업로드 본문 반환
마일스톤: 카운터 데모 → 진짜 콘텐츠 플랫폼 전환 완료반복 17 완료 (2026-05-27)
✓ B-검색: 5개 한선씨 서버에 /api/search?q= 엔드포인트 추가
쿼리추출 함수(URL 파라미터 파싱) + 검색처리 함수(본문 contains)
검증: q=영상 (튜브 1매치), q=트랙 (송 4매치), q=리포 (코드 2매치)
✓ E-게이트웨이: tiomta /api/content/search?q= 통합 검색 (5서버 fan-out 집계)
한선씨 URL 디코더 미구현 우회: Node fetch/http.request 모두 한글 URL 거부 → net.Socket으로 raw HTTP 직접 전송
검증: q=티옴타 → 4서비스 7매치 (톡1+송2+코드2+게임2)
✓ D-UI: 상단바 검색 인풋 + 콘텐츠 뷰어 패널에 서비스별 결과 그룹 렌더링
결과 클릭 → 해당 서비스 채널로 진입
마일스톤: 콘텐츠 발견 시스템 완성 (5개 도메인 통합 검색)반복 18 완료 (2026-05-27)
✓ E5: 티옴타노드 P2P 호스팅 매핑 — 호스팅맵(content_id → 노드ID 리스트)
POST /api/node/host {content_id, node_id} — 피어 추가 (중복 idempotent)
GET /api/node/peers?content=X — 호스팅 노드 목록 JSON 배열 반환
검증: vid_1에 alpha+beta 등록, track_5에 alpha 등록, 없는 콘텐츠는 fallback 안내
✓ E6: 게이트웨이 자동 P2P 등록 — 업로드 성공 시 노드 호스팅 자동 등록
X-Node-Id 헤더로 노드 식별, 없으면 node_origin
5개 콘텐츠 도메인 (튜브/톡/송/코드/게임) 모두 자동 호스팅
검증: vid_5 (origin), tok_5 (origin), track_7 (beta_machine) 모두 자동 등록
마일스톤: "각 컴퓨터가 노드" P2P 호스팅 메커니즘 완성반복 19 완료 (2026-05-27)
✓ B-노드: 티옴타노드 /api/node/peers/batch?ids=A,B,C 배치 피어 조회 (한선씨)
응답: {"A":2, "B":0, "C":1} — 콘텐츠별 피어 수
✓ D-뷰어: 콘텐츠 뷰어 + 검색 결과에 P2P 피어 배지 (⚡ N P2P / ○ origin)
enrichPeerBadges() — cv-item 순회 → 배치 호출 → 배지 업데이트
검색 결과/일반 목록 모두 자동 enrichment
✓ E-게이트웨이: /api/content/node/ 프록시로 노드 API 노출반복 20 완료 (2026-05-27)
✓ E-영속: 티옴타노드 호스팅맵 WAL 영속화 — /Users/ef/crowny-data/tiomta-node/hosting.log
별도 _호스팅복원() 함수 — content_id|node_id 줄 파싱, 중복 idempotent 병합
호스팅처리 시 매핑 추가 + WAL 기록
검증: 3개 매핑 등록 → 재시작 → 호스팅 WAL 복원 3개 → 단일/배치 피어 조회 동일 결과
마일스톤: 블록체인급 P2P 호스팅 영속성 완성 (콘텐츠 본문 + 호스팅 매핑 모두 재시작 보존)반복 21 완료 (2026-05-27)
✓ B-노드: 티옴타노드 /api/node/trending — 호스팅 인기도 기반 top-10 트렌딩 (한선씨)
맵키목록(호스팅맵) → 피어수 계산 → 선택 정렬 → top-10 반환
검증: vid_C(5) > vid_A(3) > vid_persist_1(2) > ... — 내림차순 + WAL 복원본 포함
마일스톤: P2P 호스팅 정보가 발견(검색)·등록(자동)·영속(WAL)·인기도(트렌딩)·가시화(배지) 5개 차원에서 완전 동작반복 22 완료 (2026-05-27)
✓ E-노드: 노드 가동시간/CRM 보상 시스템 영속화 (한선씨)
하트비트맵 + CRM보상맵 신규 (노드별 누적)
30 하트비트 = 1시간 = 1 CRM 자동 발급
uptime.log WAL 영속화 — 재시작 시 노드별 누적값 복원
신규 API: GET /api/node/uptime?node=node_X
검증: alpha 31hb→1CRM, beta 60hb→2CRM, 재시작 후 동일 값 유지 (91줄 복원)
마일스톤: "1시간 온라인 = 1 맘" 보상 비전이 영속 상태로 실제 동작반복 23 완료 (2026-05-27) — 🎯 9 한선씨 노드 완전체
✓ B-9: 티옴타진단.한선 (:9897) — 729 유형 4상균형3진 프레임
6자리 코드: 에니어그램(2) + 뇌인지(2) + AI적성(2) = 3^6 = 729 (ISA729와 정합)
API: /api/diag/start, /api/diag/result, /api/diag/session, /api/diag/type
룩업 테이블 (자연반올림 quirk 회피) — 0=TT, 4=OO, 8=AA
WAL 영속화 — 세션/결과 모두
✓ B-9: 티옴타게이트웨이.한선 (:9898) — 9 한선씨 노드 디렉토리
GET /api/services → 9 한선씨 노드 매트릭스 (all lang=한선씨)
정적 파일 서빙 — index.html, lang/*.json, MIME 자동
/api/health + /api/status alias (keepalive 호환)
✓ 인프라: keepalive에 진단/게이트웨이 2종 추가 (9서버 감시)
✓ 검증: 9/9 한선씨 노드 가동, all lang=한선씨, verse 9 매트릭스 완전마일스톤: 완전 4상균형3진 한선씨 9 노드 매트릭스 완성 (verse 3²=9)
- 잔여 Node.js 1개 (server.js :9878) — UI 게이트웨이는 9898 한선씨로 점진 이관 가능
- 한선씨 비율 회복: 48% → 61% → 다음 세션에서 server.js 이관 시 80%+
반복 24 — 포트 충돌 해결 (2026-05-27)
⚠ 발견: cycle.crowny.org가 9897 등록되어 있어 티옴타진단과 충돌
✓ 조치: 티옴타진단 9897 → 9899 이동
한선씨 코드 + 게이트웨이 디렉토리 + keepalive 동기화
✓ 게이트웨이는 9898 그대로 (충돌 없음)
✓ gateway.yaml 정식 등록:
diag.tiomta.com → :9899
gateway.tiomta.com → :9898
✓ 메모리 갱신 (project_tiomta_9hanseon_nodes.md)
검증: 9/9 한선씨 노드 가동, cycle 영역 침범 없음반복 25 — 진입 UX 개선 (2026-05-28)
✓ 시작 모달: 첫 방문 시 자동 표시
[티옴타테스트 시작 (약 10분)] / [테스트 건너뛰고 대화 시작] / [나중에]
사용자가 선택 강제 없이 부담 없게
✓ 대화 모드 (chatMode):
테스트 안 하고 바로 Gemini AI와 자유 대화
/api/ai/lite (Gemini Flash Lite) 호출
우상단 떠있는 '◆ 티옴타테스트 시작' 핀으로 언제든 진단 전환
로컬 대화 로그 자동 저장 (tiomta_chat, 최근 500턴)
✓ 간편 로그인 모달:
닉네임 필수 (비밀번호 없음, localStorage)
이메일 선택 (기기 간 동기화용)
진단 결과 저장 시 자동 트리거
헤더 [로그인] 버튼 → 로그인 후 닉네임 표시 (클릭 시 로그아웃 확인)
✓ 인풋 영역 두 버튼: [테스트 시작] [AI와 먼저 대화]
검증: HTML 12개 함수 / 서빙 16개 키워드 / Gemini lite "안녕하세요!" 응답 OK