MPTI · 머니 포트폴리오 타입 (mpti.tiomta.com)
개요
티옴타 테스트 패밀리의
금융 자매 서비스. 돈을 대하는 결을 16가지 머니 포트폴리오 타입으로 비추는 설문형 지표. A레코드만 등록돼 있던 mpti.tiomta.com에 실제 서비스를 신규 구축.
무엇을 했는지
조사: MPTI는 미구현(커리큘럼 문서 언급만), AMTI(9813)/ABTI(9811)가 자매 참고 구현임을 확인.
포트: 9906이 aimed 상담게이트웨이(IPv4)에 점유돼 충돌 → 9907로 재등록(gateway.yaml 자동 갱신).
구축 /Users/ef/crowny-mpti/:
server.js(경량 ~95줄): 정적 + /api/health + /api/consult(제미나이 라이트 한 줄 코칭)
public/index.html: 4축×3문항=12문항 → 16유형(AMTI 택소노미 공유) + 포트폴리오 배분(주식/채권/현금/대안, 코드로 클라이언트 계산) + 제미나이 한 줄 + 강점/살필결 + 공유
클로드 밸런스 디자인 재사용(코랄·세리프·✳, 배분 바 TOAU 팔레트)
유형판정.한선: alloc() 동반(컴파일·실행 OK, JS와 패리티)
CLAUDE.md
검증: health/페이지 200, 결과(GALQ→공격 장기 퀀트, 주식68/채권13/현금2/대안18) + 제미나이 한 줄 정상, 헤드리스 인트로/결과 캡처.4축
K보존/G성장 · D방어/A공격 · S단기/L장기 · M직접/Q자동 → 16유형(KDLM~GASQ, AMTI와 코드 공유)
관련 파일
/Users/ef/crowny-mpti/{server.js,public/index.html,유형판정.한선,CLAUDE.md,.env}
- 참고:
/Users/ef/crowny-amti/ (자매), gateway.yaml(mpti.tiomta.com→9907)
잔여 이슈
- 게이트웨이 trident/health 캐시는 gateway 세션 위임(백엔드 LISTEN까지 완료).
- 16유형별 고유 카피·한국 상품 매칭(AMTI 재사용) / 공유 카드 이미지 / 티옴타 SSO·소개자 연동 / 한선씨 서버 이관.
- 투자 권유 표현 금지 디스클레이머 적용 완료.
추가: 티옴타 귀속 + 인프라 (2026-06-09)
메뉴 귀속(서브도메인 유지):
crowny-tiomta/public/data/services.json finance 카테고리에 MPTI 추가(featured, 📊, mpti.tiomta.com, total 133→134) → home-full.html 생태계 그리드에 노출.
crowny-tiomta/public/tests.html 테스트 허브에 "함께 보면 좋은 지표 → MPTI · 머니 포트폴리오" 자매 카드(https://mpti.tiomta.com 링크). 4모드 729 패밀리와 분리(서브도메인 고유 서비스 유지).
MPTI index.html은 이미 "티옴타 성향 테스트 보기" 역링크 → 양방향 연결.
게이트웨이/인증서(백그라운드 에이전트 위임 중):
증상: tiomta.com HTTPS(8443) 503 — 백엔드 9878 정상이나 게이트웨이 trident/health 캐시가 옛 다운 상태 물고 있음 추정.
mpti.tiomta.com 인증서: .tiomta.com 와일드카드 재사용 또는 신규 발급 필요(Cloudflare 미사용).
별도 에이전트가 게이트웨이(/Users/ef/crowny-gateway, bin/cli.js)에서 처리 중.
주의: 작업 중 tiomta(9878)가 종료 신호 받아 1회 다운 → 재기동함. 게이트웨이 리로드가 백엔드에 영향 줄 수 있어 모니터 필요.인프라 검증 결과 (2026-06-09, 직접 확인)
tiomta.com 복구 완료 ✓: HTTPS 8443 → 200, 실제 콘텐츠("티옴타테스트…") 정상. 원인은 게이트웨이 stale health 캐시였고, crowny-infra 워치독이 게이트웨이를 16:40 재시작하며 자동 해소.
mpti.tiomta.com 라우팅 ✓: 8443 → 200 (gateway.yaml mpti.tiomta.com→9907).
mpti.tiomta.com 인증서 ✗(처리중): 현재 SNI 응답 cert = CN=aimed.tiomta.com(SAN: aimed.)로 폴백 → 브라우저 이름불일치 경고. mpti SAN 없음.
인증서 메커니즘: gateway ssl.certDir = /Users/ef/crowny-data/certs/certbot/live/crownybus.com(기본), 서비스별 cert는 crownyos 자체 CA(/Users/ef/crowny-data/certs/crownyos-ca.pem + -key.pem)로 발급해 certbot/live/<svc>/에 배치(aimed 존재). Cloudflare/외부 CA 미사용.
남은 작업: aimed와 동일 패턴으로 mpti.tiomta.com(CN/SAN) cert를 crownyos-CA로 발급 → 게이트웨이 SNI 등록 → SIGHUP 무중단 리로드. (게이트웨이 세션/백그라운드 에이전트 담당)
주의: 게이트웨이 재시작이 백엔드(9878/9907)에 영향 줄 수 있음 — 워치독이 복구하나 모니터 필요. 백엔드는 SIGHUP 무중단만 권장.최종 해결 (2026-06-09, 게이트웨이 에이전트 + 검증)
모두 200·올바른 인증서로 완료.
- tiomta.com → 200 ✓ (원인=백엔드 9878 다운, 도메인세션 기동 후 trident 헬스 자동복구). 인증서 SAN에 tiomta.com + www/crowny.org + 7서브도메인 포함.
- mpti.tiomta.com → 200, **cert CN=mpti.tiomta.com / SAN mpti.tiomta.com·*.mpti.tiomta.com ✓. 기존 cert가 CN=crowny-dist로 잘못 발급돼 있던 것을 node-forge로 재발급(
scripts/gen-mpti-cert.js). 자가서명, crownyos 방식(Cloudflare 미사용).
- 게이트웨이 근본버그 2건 수정(전 tiomta 서브도메인 인증서 영향): ①
lib/gateway.js https.createServer에 base cert/key+SNICallback 병용 시 SNICallback 무시 → base 제거 SNICallback만. ② lib/ssl.js _createSelfSignedBatch가 domains[0]로 전 도메인 덮어쓰던 버그 → 도메인별 생성. (라이브 반영, 정식배포 시 pkg.crowny.org 퍼블리시 필요)
- 검증 주의(중요): 게이트웨이 HTTPS 테스트는
curl --resolve <도메인>:8443:127.0.0.1 https://<도메인>:8443/ 사용. -H "Host:" https://127.0.0.1:8443은 SNI=127.0.0.1이라 TLS 실패로 000(가짜 실패)**.