← 목록
기타 2026-05-18 7KB 읽기 7분

기질진단 대화형 도구 — brain.crowny.org/diagnosis

개요

크라우니AI 사용자 기질DB 축적을 위한 대화형 에니어그램 기질 진단 도구 구현.

무엇을 했는지

한선씨 코어 엔진

  • /Users/ef/crowny-brain/기질진단대화.한선 — 대화형 진단 엔진 (6단계, 4상태 응답, KPS 의미어 분해)

server.js 대화형 API + 웹 UI

  • POST /api/diagnosis/start — 진단 세션 생성
  • POST /api/diagnosis/answer — 응답 처리 (T/O/A/U/X 5종)
  • GET /api/diagnosis/session/:id — 세션 조회
  • GET /diagnosis — 대화형 웹 UI (채팅 인터페이스)

10단계 진단 구조 (2026-05-19 확장)

  1. 기본정보 (2문항) — 성별 + 연령대 (20대이하/30-40대/50대이상)
  2. 유형 판별 (11문항) — 센터(본능/감정/사고) + 9유형 세부 점수
  3. 동기 판별 (3문항) — 강제선택 가중치5, 9유형 핵심동기 비교
  4. 성숙도 (5문항) — 9단계 (건강3/보통3/미흡3)
  5. 날개 (1문항) — 에니어그램 규칙 (인접 유형 A/B/균형)
  6. 언어 수준 (1문항) — 초등/일반/전문
  7. 대화 방식 (1-2문항) — 공감/해결/유머
  8. 뇌성향 (8문항) — 8뇌유형 + 5지수 보정
  9. 가정환경 (1문항) — 1인가구/부부/자녀있음
  10. 종교배경 (1문항) — 기독교/불교·기타/무교
  11. 학습역량 (1문항) — 자기주도/안내형/체험형

조합 규모

  • 81 기본 유형: 9기질 × 9성숙도
  • 243 날개 조합: 81 × 3(날개A/B/균형)
  • 확장 프로필: × 3연령 × 3가정 × 3종교 × 3학습 = 최대 59,049 고유 프로필

4상태 응답 시스템

  • 티(T) = 그래, 맞아
  • 옴(O) = 잘 모르겠어
  • 타(A) = 아니야
  • 음(U) = 이해 안 돼 → 부연설명 후 재시도
  • 타이핑(X) = 자유 입력 → KPS 의미어 분해 → 코드 변환 또는 재질문

핵심 화법

  • "~란 말씀이시죠?" — yes 유도 확인 화법
  • 타이핑 분류 불가 시: "'원문'이라고 하셨는데... ~란 말씀이시죠?" 재질문

티옴타 에니어그램 매핑

코드번호이름TOAU
1완벽주의자T
9평화주의자O
8도전자A
티티4예술가TT
티타7열정가TA
타티2조력자AT
타타5탐구자AA
옴티3성취자OT
옴타6충성가OA

관련 파일

  • /Users/ef/crowny-brain/기질진단대화.한선 — 한선씨 코어
  • /Users/ef/crowny-brain/server.js — 서버 (진단 API + UI)
  • /Users/ef/crowny-brain/메타인지코어.한선 — 기존 메타인지 엔진
  • /Users/ef/crowny-brain/메타인지설문.한선 — 기존 설문 엔진
  • /Users/ef/crowny-brain/data/diagnosis/ — 세션 저장소
  • /Users/ef/crowny-brain/data/profiles/ — 프로필 저장소

뇌성향 차트 통합 (BOSI 구조 참고, 크라우니 독자 명칭)

추가 구현 완료

  • 8 뇌유형 (우뇌 4 + 좌뇌 4): 직관/소통/전략/컨셉 + 논리/탐구/통합/해결
  • 5 지수: 뇌활성화, 진취성, 사회성, 실천성, 신체활동성
  • 에니어그램↔뇌성향 교차매핑: 9유형 → 1차/2차 뇌유형 매핑
  • 간이 8문항: 에니어그램 결과를 뇌성향으로 보정
  • 프로필ID에 뇌성향 코드 포함: 티-1-옴-일반-공감-L1
  • 결과 UI에 5지수 바 차트 표시
  • MSC 브랜드 사용 안 함 — 크라우니 독자 용어 체계

추가 파일

  • /Users/ef/crowny-brain/뇌성향차트.한선 — 한선씨 뇌성향 코어

동적 버튼 레이블 (2026-05-18 구현)

  • 모든 질문에 opts 객체 추가: T/O/A/U 버튼 텍스트가 질문 맥락에 맞게 변동
  • getNextQuestion()q.optsoptions 필드로 전달
  • 프론트엔드 updateButtons(q) 함수가 실시간으로 버튼 텍스트 갱신
  • 적용 범위: 성별, 유형(11문항), 성숙도(5문항), 날개(1문항), 언어수준, 대화방식, 뇌성향(8문항)

진단 정확도 개선 (2026-05-18)

  • '타(A)' 응답 시 해당 유형에 -1 감점 추가 (기존: 0점)
  • 점수 판정 시 maxScore 초기값 -Infinity로 변경 (음수 점수 처리)

동기(Motivation) 기반 강제선택 질문 추가 (2026-05-18)

  • 문제: 성숙한 사람은 행동 질문에 여러 유형으로 긍정 응답 → 오판
  • 해결: 동기 질문 3개 추가 (가중치 5, 행동 질문의 3보다 높음)
  • Q12: "프로젝트 끝나고 가장 뿌듯한 순간?" → 티타(7)/타티(2)/티(1) 판별
  • Q13: "어려운 상황 첫 반응?" → 옴티(3)/옴타(6)/타(8) 판별
  • Q14: "혼자 시간에 하고 싶은 건?" → 타타(5)/옴(9)/티티(4) 판별
  • motiveMap 구조: 각 버튼(T/O/A)이 서로 다른 유형에 +5점
  • 결과: 성숙한 7번 유형이 여러 행동에 T 답해도 동기 질문이 정확히 구분
  • 테스트: 티타=8점(1위) vs 옴/옴티=6(2위) — 확실한 차별화

의미어코드 통합 (2026-05-19 구현)

  • 의미어진단-질문.js — 36 질문 항목, 다국어(ko/en), 성별/연령 변형, 대체표현 2~3개씩
  • 의미어진단-응답.js — 감성 응답 레이어
  • acks: 4 답변유형(T/O/A/U) × ko 10개 / en 5개 = 다양한 인정 응답
  • typeAcks: 9유형 × T/A = 18종 × 4변형 = 유형별 맞춤 인정
  • transitions: 9 단계전환 × 4~5변형 = 따뜻한 이음새 문구
  • explains: 8 카테고리 × 2~3변형 = U응답 시 재설명
  • resultNarration: 9유형 × ko/en = 따뜻한 결과 내레이션 (제목/요약/강점/성장)
  • maturityDesc: 3구역(건강/보통/불건강) × ko/en
  • 의미어리졸버.js — 177줄 리졸버 엔진
  • resolveQuestion(): 코드→텍스트 (성별/연령/언어 맥락 반영, 30% 대체표현 랜덤)
  • resolveAck(): 답변 후 인정 응답 (유형별 우선, 제네릭 폴백)
  • resolveTransition(): 단계 전환 문구
  • resolveExplain(): 재설명 문구 (U 응답 시)
  • resolveResult(): 결과 내레이션 (유형+성숙도)
  • seededRand로 세션 내 결정론적 변형 선택
  • server.js 통합:
  • processAnswer() 모든 단계에서 ack + transition 반환
  • handleDiagnosisAnswer()가 프론트엔드에 ack/transition 전달
  • computeFinalResult()narration 객체 포함
  • 프론트엔드 채팅에 ack→transition→질문 순서로 표시
  • 결과 화면에 내레이션(제목/요약/성숙도설명/강점/성장방향) 표시
  • 잔여 이슈

    • 다국어 전환 UI (현재 ko 고정, en 데이터는 준비됨)
    • 의미어 질문뱅크로 getTypeQuestions/getMaturityQuestions 완전 교체 (현재 하드코딩 유지, 응답만 의미어화)
    • 뇌인지 12축 질문을 대화형으로 전환 (현재는 메타인지 페이지에서만)
    • 프로필 목록 조회 UI 구현
    • crowny.org 메인에서 진단 시작 동선 연결
    • 3대 분석영역 (잠재역량/관계적합/업무적합) 상세 구현