← 목록
AI 2026-06-10 5KB 읽기 5분

AIMED UX 9사이클 고도화 — 완성 보고

개요

AIMED(에임드, aimed.or.kr ~30인) "지향성 4상균형3진 업무솔루션"의 핵심 로직 완성 후, "핵심이 훌륭하면 9배의 에너지를 UX에" 원칙에 따라 진행한 UX 9사이클 고도화를 완료했다. 모든 검증은 적대적 LLM 검증 없이 크라우니시뮬레이터 + 크라우니스피어로 수행(상시 규칙).

사이클별 산출

사이클내용핵심 산출
1(선행) 연결끊김 근본해결전 7서버 no-cache 헤더, 파트 스트리밍
2디자인 시스템crowny-ui.css(35K→44K) + 크라우니UI.한선, 16페이지 스윕
3가이드 온보딩첫방문 1회 오버레이(cobMask) + 분석결과 기반 맞춤 다음동선, 15페이지
4core 셀코어 통합뷰core서버 /api/cellmap(셀맵), 4도메인(분석/업무/전략/조직) 룰+TOAU 셀 그리드
5보안 사전관리 대시보드/security + /api/security-status(점수80/A), 10항목 실코드 판정, libs/보안현황.한선
6화면 간 상태 연속성crownyState 상태버스 + "현재 N/4단계" 배지(aria-live), 17페이지
7UI 컴포넌트 토큰화crowny-ui.css 104토큰(다크 1:1) + 크라우니UI.한선 .cw- 1:1 + 신규 컴포넌트
8접근성/성능/다국어lang=ko, main/role, skip-link, aria-label, prefers-reduced-motion, 17페이지
9통합 리허설전 서비스 200, 실데이터, 시뮬/스피어 통합 검증

실버그 적발·수정

  • 한글 API 경로 함정: /api/셀맵(한글) → 브라우저 fetch가 percent-encode → 서버 raw UTF-8 비교와 불일치 → 404 → 데모폴백만 표시. → ASCII /api/cellmap 라우트로 교체(core.html fetch도 교체).
  • 포털(9903) SIGPIPE 미적용: 보안 대시보드가 자동 적발 → 시그널등록(13,1) + accept 가드 + 시도/오류 래퍼 추가(DoS 방어).
  • 시뮬레이터 슬래시 파일명: simulator.js:378 replace(/\s+/)replace(/[\s/\\]+/) (시나리오명 슬래시 → ENOENT 해소). aimed-work.js endScenario 누락도 수정.

검증 결과 (사이클9 리허설)

  • 전 서비스 8엔드포인트 전원 200 (9903×N/9904/9905/9912)
  • core /api/cellmap 실데이터(분석 57셀 등), 데모 아님
  • crownyState 주입 17/17 페이지, lang=ko/main/skip 전수
  • 포털 SIGPIPE 1건 확인
  • 크라우니시뮬레이터: aimed-work 4/4 A+, aimed-platform 5/5 EXIT0, 저장 정상
  • 크라우니스피어: VULN 0 / 방어율 96% / 등급 A "상용 적합"

관련 파일

  • 백엔드: /Users/ef/crowny-aimed/{포털서버,분석서버,관리서버,core서버}.한선
  • libs: /Users/ef/crowny-aimed/libs/{크라우니UI,통합DB,보안현황}.한선 외
  • 프론트: /Users/ef/crowny-aimed/public/.html(14) + crowny-ui.css + .pN 파트
  • 엔터프라이즈: /Users/ef/crowny-enterprise/web/{에임드인트라넷,에임드ERP,통합플랫폼}.html
  • 검증: /Users/ef/crowny-simulator (aimed-work/aimed-platform), /Users/ef/crowny-spear/engine/AIMED프로파일.한선

실사용 동선 복구 (2026-06-10, 사용자 지적 후 — 가장 중요)

"개발은 다 됐다더라도 난 분석도 못한 상태" + {"ok":false,"error":"경로를 찾을 수 없습니다"}. 엔드포인트 200 핑만으론 못 잡은 실차단 버그를 실계정 워크스루로 추적·수정:
  • 게이트웨이가 Authorization(Bearer) 헤더를 백엔드로 전달 안 함 + crowny_token 쿠키는 .crowny.org 한정 → crowny.org→tiomta.com 인증이 헤더·쿠키 모두 못 넘음(근본). 사용자가 본 404 = aimed.tiomta.com/api/me 부재.
  • 수정: ①분석서버(9904)에 /api/me 추가 ②/api/aimed/start·/api/work/start·say가 POST 바디 토큰({"token"})→크라우니검증→memberId 해석(게이트웨이 헤더 우회) ③qna.html ssoAutoAuth: ?sso= 토큰으로 재로그인 없이 자동 시작 ④_OK{ok,data} 봉투를 프론트가 j.data 언래핑(sessionId undefined로 답변·리포트가 "더미"되던 버그) ⑤start 응답에 memberId 포함.
  • 프로덕션 게이트웨이 경유 전 동선 검증 통과: 포털 가입→분석 start(토큰만)→16문항→done→결과(유형=개척자, 사상 T:16)→리포트 HTML 실데이터. 분석·업무 start 모두 ok:true, 전 서비스 200.
  • 교훈: [[feedback_crowny_gateway_strips_auth]] [[feedback_verify_real_user_journey]] — 검증은 실계정 전 동선 + 게이트웨이경유/로컬 둘 다.

잔여 이슈

  • 업무(2단계)/전략(3단계) 프론트 배선: 백엔드 토큰 폴백은 적용됐으나 업무.html은 memberId/토큰 송신 미배선 — 같은 패턴으로 프론트 마감 필요(다음 작업).
  • 포털 라우트 정합성: 일부 페이지가 한글 라우트(/업무 등)일 경우 동일 percent-encode 위험 — 현 동작은 정상이나 향후 ASCII 라우트 표준화 검토.
  • 빈배열 가드·폴백 404 표준화: 보안 대시보드 권고(옴/타) 잔존 — 다음 고도화 후보.
  • core.crowny.org 외부 인증서: 게이트웨이 세션 담당.
  • 워치독 launchd 상시화: 사용자 1회 launchctl load 승인 필요.