AIMED 엔터프라이즈 — 1단계 분석 시스템 구축
개요
에임드(aimed.or.kr, 약 30명 조직) 대상
지향성 4상균형3진 업무솔루션(Vectored 4-State Ternary Process Solutions)의 1단계 "비전·자원 분석"을 완전 한선씨 규칙엔진으로 구축. 티옴타채팅 4상균형3진 질의응답 → 개인별 티옴타 리포트.
- 작성일: 2026-06-09
- 위치:
/Users/ef/crowny-aimed
- 모델 운영: Sonnet=가이드 집사 / Haiku=프렌즈 집사 (Opus 미사용). 집사=자연어 윤활유, 분석·점수·리포트=100% 한선씨 규칙엔진.
도메인 / 포트
| 도메인 | 포트 | 역할 |
|---|
| aimed.tiomta.com | 9904 | 분석 도구 (질의응답→리포트), 분석서버.한선 |
| aimed.crowny.org | 9903 | 멤버 포털 (순수 id 로그인, /method), 포털서버.한선 |
| enterprise.crowny.org | 9700 | (기존) 2단계 전용모듈 공급원 |
무엇을 했는지
- 설계·인터페이스 동결:
설계.md(5단계, 1~3 공개/4·5 내부), 인터페이스.md(함수 시그니처)
- 한선씨 규칙엔진 9파일 (전부 hanseonc_high 컴파일 통과):
-
libs/사상균형.한선 T/O/A/U 분류·점수·지배·해석
-
libs/질문은행.한선 8카테고리×2문항(개방+사상선택), 9유형 점수표
-
libs/키워드규칙.한선 개방서술→T/O/A/U 키워드 가중
-
libs/분석엔진.한선 답변→9유형/날개/성숙도/4상균형 (calculateDiagnosis 포팅)
-
libs/리포트생성.한선 8섹션 티옴타 리포트 HTML/JSON
-
libs/인증.한선 순수id↔id@crowny.org(숨김), 무상태 토큰
-
libs/집사.한선 가이드/프렌즈 프롬프트·모델
-
분석서버.한선(:9904),
포털서버.한선(:9903)
- 웹 5종(크라우니디자인표준2026): index/method/talk/report/landing.html
- 집사 워크플로우로 병렬 구축(13집사) 후 통합·디버깅·실측 검증
검증 결과 (엔드투엔드 통과)
- 포털: signup/login/me(정상·오답·위조)·정적풀사이즈·@crowny.org 무노출 ✓
- 분석: start→16문항→분석→리포트 ✓, 점수 정확(T편향→T80·교차오염0)
- 리포트 8섹션 풀렌더(개척자/지향 등 지배사상 반영) ✓
해결한 핵심 버그 (한선씨 함정)
- STR_MAX_LEN 16KB 읽기 한계 → 큰 HTML 잘림. 해결:
분할.sh로 ≤14KB 파트 분할, 서버가 .pN 순차 읽기+TCP쓰기 스트리밍 (VM 재빌드 회피)
바디추출 \n\n 분리 → 실제 \r\n\r\n 매칭 실패. 해결: \r\n\r\n 우선 + {~} 폴백. (이 컴파일러 버전은 \r 리터럴 런타임 동작 확인)
헤더값추출 값 끝 \r 잔존 → 토큰 검증 실패. 해결: \r에서도 종료
- 무상태 토큰 부재 → 휘발성 맵 의존(재기동 소실, 함수내 글로벌맵 변경 비영속). 해결: 토큰=
id.SHA256 → id 추출→멤버파일 대조
- ★ 빈배열
= 0 초기화 (워크플로우 공통 실수) → 추가(0,...)가 길이 손상(1콜→61답변, 점수 폭증). 해결: 빈배열은 반드시 []. (빈답변들, _키워드목록, 라벨들/이름들, 질문목록 전수 교정)
관련 파일
- 프로젝트:
/Users/ef/crowny-aimed/ (libs/, public/, 분석서버.한선, 포털서버.한선)
- 런처:
시작.sh (build 인자 시 분할 재생성), 분할기: 분할.sh
- 9유형 데이터:
data/9유형.json (tiomta types_v2 복사)
잔여 이슈 / 다음 단계
- 집사 채팅 crowny-ai(:9852) 중계: 현재
fallback:true(규칙기반 다음질문 폴백 작동). SSE 응답 파싱 미세조정 필요 — 단 규칙(주체)이 인터뷰를 정상 진행하므로 기능상 무결.
- landing.html 다크토글 보강(경미)
- 게이트웨이 등록(aimed.crowny.org/aimed.tiomta.com 라우팅) + keepalive 연결
- 2단계: 리포트 데이터 축적→enterprise.crowny.org 모듈 맞춤 구성/연결
- 3단계: 자연어 티옴타채팅 전업무처리, 채팅 축적→의미어코드
- 4·5단계(내부): 대표 대신 전략/의사결정/액션플랜 (공개 제한)
[3배수 고도화 2026-06-09] 1단계 뼈대 기반 깊이 3배
작업원칙 "완료→직전 규모의 3배수로 뼈대 기반 고도화" 첫 적용. 기존 9파일 working 보존, 신규 동반 모듈로 확장.
신규 (10집사 워크플로우 + 통합)
libs/유형729.한선 3축(에니어9×뇌인지9×AI적성9=729) 코드
libs/심화질문.한선 8항목 follow-up 16문 + 가중치
libs/분석심화.한선 심화분석실행→729코드/팀적합/성장단계/강점·그림자 상세
libs/리포트심화.한선 12섹션(심화리포트섹션들 배열반환=STR16KB 우회)
libs/조직분석.한선 30명 4상분포/팀매칭/인수인계맵/균형해석
libs/모듈추천.한선 23 enterprise 모듈 추천(2단계 브릿지)
libs/집사심화.한선 8항목 대화 상태머신
libs/시뮬데이터.한선 30명 데모
관리서버.한선 :9905 + public/admin.html(조직 대시보드)
통합 결과 (검증)
- 분석서버: done시 심화분석실행→심화리포트섹션들→파트저장, 리포트GET 파트스트리밍. 리포트 8섹션14KB→12섹션24KB(729코드 1-9-3, 성장로드맵, 팀적합, 레이더 렌더)
- 관리서버 :9905: admin.html 풀서빙 + /api/aimed/admin/overview(조직 4상분포·균형해석)+members
- 3서버 통합 스모크 전부 통과.
./시작.sh 3서버 일괄 기동
- 포트: aimed-admin.crowny.org:9905 등록
디스크 이슈
작업 중 디스크 풀(ENOSPC)로 일시 중단 → 사용자 확보(83GB) 후 통합 완료.
잔여
- 모듈추천 전용 API 엔드포인트(/api/aimed/modules) 미연결(리포트 내 섹션은 자리표시)
- 집사 crowny-ai SSE(외부 :9852 다운) — 규칙 폴백 동작
- 게이트웨이 라우팅(gateway 세션), keepalive
[Cycle A 2026-06-09] 잔여정리 + Gemini Flash Lite 상담
- 모듈추천 API: done시 모듈추천JSON 저장 + GET /api/aimed/modules/{id}. A지배→CRM통합 등 연결형 추천(2단계 브릿지 작동)
- Gemini 상담 사이드카
상담게이트웨이.js :9906 (Node, 부득이 — crownyc TLS 시뮬레이션이라 외부 HTTPS 불가). 키=crowny-report/.env GEMINI_API_KEY 런타임 로드. gemini-flash-lite-latest.
- 분석서버 /api/aimed/chat → 평문 TCP로 :9906 중계 → 실제 Gemini 응답(폴백 탈출)
- 해결 버그: ①소켓생성("TCP",1)→소켓생성(2,1) ②소켓바인드→소켓연결(클라) ③Content-Length=글자수→_바이트길이(UTF-8, 코드값 기반) ④요청 path 한글 /상담→/chat(Node 파서 거부) ⑤사이드카 응답 chunked→명시적 Content-Length
시작.sh 4서비스 일괄 기동(포털9903/분석9904/관리9905/상담9906). qna.crowny.org:9907 포트 선점.
- 종합 스모크 전부 통과.
[Track 1 2026-06-09] qna 적응형 엔진 + 개인 맞춤 집사
신규 libs(전부 컴파일+통합): 적응형선택(복합추론·정보이득), 확증엔진(6차원 반복확증), 개인MD(다회차 누적·집사프롬프트), 진행도(5단계 게임형). + public/qna.html(63KB 게임형 다회차 UI, 레벨/이어서하기).
통합(분석서버): 가져오기 개인MD/진행도; chat이 개인집사프롬프트(멤버id)를 Gemini system에 시딩→맞춤 집사; 답변마다 MD대화기록, 완료시 MD분석결과저장; GET /qna 서빙.
검증: kim2 분석→data/members/kim2.md 누적→재chat시 Gemini가 프로필 반영 응답(맞춤 집사 실현). /qna 63KB 서빙. qna.crowny.org:9907 선점.
잔여: 적응형선택/확증엔진을 답변 흐름에 본격 배선(현재는 고정16문+개인MD 시딩), MD 중복요지 정리.
[Track 2 2026-06-09] 에임드 SI 인트라넷 (enterprise 세트, 추가형)
에임드(음향·영상·조명·미디어·인테리어 통합제어 환경구축 SI사)용 통합지휘판. 기존 enterprise 코어(서버.한선/proxy.js/23모듈) 무수정, 접두 에임드_로 추가.
- 신규 7 SI 모듈(modules/에임드_음향제어·영상제어·조명제어·미디어제어·인테리어·통합제어·현장관리) — self-contained 규칙기반, 데모 시드 + 상태/제어/씬/요약 API
- 에임드_세트연결.한선 — aimed 리포트/모듈추천 읽어 SI 도메인 배치 추천(지배사상→도메인)
- 에임드인트라넷.한선 :9908(통합지휘판 서버) + web/에임드인트라넷.html(팔란티어 대체, 고유용어: 통합지휘판/신호계보/자원망/현장)
- 7모듈+세트연결+서버 통합 컴파일 OK(2.3MB). 런처 에임드인트라넷-시작.sh.
- 검증: GET / 대시보드 51KB 풀서빙, /api/si/overview(7도메인 live), /api/si/members(세트연결) — 대시보드가 쓰는 2개 정상.
- 포트 aimed-intra.crowny.org:9908 선점(외부오픈은 cert 추가 필요=게이트웨이 세션).
- 잔여(폴리시): /api/si/{도메인} 드릴다운 한글키 비교 버그(대시보드 미사용), overview 음향 지표 형식 통일.
[계정통합 2026-06-09] 크라우니 단일 계정 (기본) + 에임드 멤버십 (부가)
요구: aimed.crowny.org/aimed.tiomta.com 로그인 통합=1개 계정. 크라우니 회원=에임드 회원. 동기화 아님.
구현: auth.crowny.org(:9401, users201/orgs/memberships/service-data) 중앙 인증에 위임.
- 신규
libs/크라우니인증.한선 — 한선씨가 평문 TCP로 :9401 호출(크라우니가입/로그인/검증/에임드연계). _크인_ 접두 self-contained. chunked 응답은 JSON값추출로 무시. Content-Length=_바이트길이(UTF-8).
- 포털·분석 서버 인증 전환: signup→크라우니가입(+에임드연계 service-data), login→크라우니로그인(+에임드연계), /api/me→크라우니검증. 토큰=크라우니 opaque 토큰(:9401 검증).
- 크라우니 회원(기본) = account(username, email=username@crowny.org 자동). 에임드 회원(부가) = profile.services["aimed"]={member,si_role}.
- 검증: 포털 가입→분석 동일계정 로그인→포털 /api/me 교차 인정(단일계정)→:9401 services=['aimed'] 확인.
- 기존 크라우니 회원 201명도 AIMED 로그인 시 자동 에임드 연계. 로컬 인증.한선은 미사용(import만 잔존).