← 목록

project.crowny.org v2.3 — 안정화 & KPI 분석

개요

TOAU 729 기반 프로젝트 관리 서버를 v2.1 → v2.3으로 업그레이드. 워크플로우/내보내기 크래시 전면 수정, 40노드 KPI 분석, 15 템플릿 + 5 프리셋 안정 가동.

무엇을 했는지

관련 파일

검증

v2.3 확장 (2026-04-15 추가)

  • 티옴타음 3진 비용 시각화: analytics.ternaryCost 필드 추가
  • 평균±33% 기준 +T(초과)/0(평균)/-T(절감) 자동 분류
  • 색상: +T #e74c3c / 0 #95a5a6 / -T #27ae60
  • 프론트 분석 모달에 3열 카드 추가 (app.js:2211-2234)
  • 실측 factory-ops: +T 2건, 0 2건, -T 6건 / 평균 81.4M원
  • 간트 타임라인: createdAt → updatedAt 기반 간단 간트
  • app.js renderGantt() 함수 + ganttChart DIV
  • TOAU 상태별 색상 막대 + 진행률 오버레이 + 레벨 들여쓰기
  • 상위 60건 표시, 날짜 눈금 3포인트
  • 한선씨 동반

    WebSocket 페이로드 확장 (2026-04-15)

  • workflow-triggered: 워크플로우 규칙이 매칭될 때마다 브로드캐스트
  • 필드: ruleId, ruleName, condition, action, triggerEvent, triggeredCount, at
  • evaluateWorkflows() 내부 try-catch + wsBroadcast
  • ternary-cost-update: 비용 관련 액션(tiomtaum/split/cell-update/reward/tip/assign)시 3진 스냅샷
  • 경량 계산 (projectAnalytics 호출 없이 직접 leaves 순회)
  • 필드: counts(+T/0/-T), stats(avg/hi/lo), totalCost, at
  • 프론트 핸들러 (app.js:handleWSEvent):
  • 워크플로우 트리거 → toast 경고
  • 3진 업데이트 → #ternaryBadge 엘리먼트 실시간 갱신 + pulse 애니메이션
  • 실측 (tiomtaum 업데이트시)

    activity tiomtaum                      ← 기존
    ternary-cost-update +T2/0_2/-T6        ← 신규
    activity workflow                       ← 규칙 트리거
    workflow-triggered                      ← 신규
    

    진짜 간트 차트 (2026-04-16)

  • 노드 필드: startDate/endDate 추가 (ms epoch, null 허용)
  • 마이그레이션: 기존 프로젝트 604노드 일괄 null 초기화
  • API:
  • POST /api/projects/:id/schedule — path + startDate + endDate 저장 (쓰기 권한, 종료<시작 검증)
  • GET /api/projects/:id/gantt — 트리 평탄화 + effectiveStart/End + 전체 범위 + today
  • 둘 다 logActivity('schedule') 기록 → WS 브로드캐스트 연동
  • 프론트 고도화 (app.js):
  • 전용 loadGantt() + renderGantt() — 전용 API 호출
  • 오늘 마커 (빨간 세로선)
  • 날짜 눈금 (8분할, 최소 7일 범위 보장)
  • 접기/펼치기 (부모 토글, 전체 펼치기/접기 버튼)
  • 부모 노드는 얇은 바 (opacity .65), 잎 노드는 두꺼운 바
  • 호버시 📅 아이콘 → 일정 설정 다이얼로그 (date input)
  • 담당자 @username 인라인 표시, 진행률 흰 반투명 오버레이
  • 한선씨 동반: 일정설정, 간트평탄화 추가
  • 모바일 최적화 1단계 (2026-04-16)

  • @media (max-width: 768px): 분석 모달 전용 반응형
  • 4-KPI 카드 → 2x2 그리드, 폰트 스케일 다운
  • 티옴타음 3진 3열 → 1열 세로
  • 차트 2x2 → 1열
  • 필터/버튼 터치타깃 36~40px, 폰트 13px
  • 간트 가로 스크롤 + 라벨 칸 160→110px
  • @media (pointer: coarse): 터치 디바이스 전용
  • 버튼/.btn 최소 40px, .btn-sm 32px
  • 모든 input/select 40px + 16px 폰트(iOS 줌 방지)
  • .gantt-toggle / .gantt-set-date 상시 표시 + 14px
  • 부드러운 스크롤: -webkit-overflow-scrolling: touch + scroll-behavior: smooth
  • 간트 최소 너비 560px: 좁은 화면에서 의미있게 좌우 스크롤
  • 일정 다이얼로그: max-width: calc(100vw - 32px) 좁은 화면 대응
  • .gantt-row 클래스화: 인라인 grid 제거 → 미디어 쿼리로 반응형 컬럼
  • 모바일 최적화 2~4단계 (2026-04-17)

    2. 하단 FAB + 드로어

    3. 트리뷰 모바일 개선

  • 768px: 들여쓰기 12px, 토글 28px, TOAU 뱃지 축소, 비용 8px
  • 480px: 비용+진행바 숨김, 들여쓰기 8px — 이름+TOAU+%만 표시
  • 롱프레스 액션 메뉴: 500ms touchstart → 바텀 시트 (상세/3분할/일정설정/닫기)
  • data-name 속성 추가, HTML 이스케이프 처리
  • touchmove/touchend 시 타이머 취소 (스크롤과 충돌 방지)
  • 4. 사이드메뉴 개선

    간트 드래그 + 의존성 화살표 (2026-04-17)

    날짜 드래그

    의존성 화살표

  • 노드 필드: deps: [] — 선행 노드 path 배열
  • API: POST /api/projects/:id/deps{path, action:"add"|"remove", depPath}
  • 자기 참조 방지, 존재 확인, 중복 방지
  • 프론트: renderDepsArrows() — SVG 오버레이
  • 베지어 커브 (barRight → barLeft), #arrowhead 마커
  • 파란색(rgba(91,141,239,.5)), pointer-events:none
  • 실측: root.0 → root.1 → root.2 체인 설정 완료
  • 튜토리얼 전면 보강 (2026-04-17)

    앱 내 온보딩 UX (2026-04-17)

  • 빈 대시보드 → 가이드형 온보딩: 4단계 카드(템플릿→이름→상태→건강도) + 인기 템플릿 6종 원클릭 배포
  • 기존 사용자 대시보드: "❓ 사용 방법" 버튼 (tutorial.html 링크)
  • 프로젝트 뷰 컨텍스트 힌트: 프로젝트 상태 자동 분석 → 다음 할 일 안내 배너
  • 루트만 있으면 → "3분할 하세요"
  • U가 70%↑ → "현재 상태 입력하세요"
  • A가 30%↑ → "위험 확인"
  • T가 80%↑ → "거의 완료! 자동진행"
  • 건강도 50점↓ → "분석으로 병목 확인"
  • 병목 존재 → "상위 노드 미결정"
  • 정상 → "잘 진행 중"
  • ✕ 닫기 → localStorage 저장 (같은 상태에서 반복 안 뜸)
  • 에니어그램 27기질 개인화 엔진 (2026-04-17)

    개념

    서버 (server.js)

  • ENNEAGRAM 객체: 9유형 상세 + 3본능 + getSubtype() + 4문항 퀴즈
  • API 4종:
  • GET /api/enneagram/quiz — 퀴즈 문항 + 유형/본능 목록
  • GET /api/enneagram/type — 현재 사용자 유형 조회
  • POST /api/enneagram/type — 유형 설정 (sessions 테이블에 저장)
  • GET /api/enneagram/advice — 맞춤 조언 반환
  • 유형별 맞춤 데이터 (각 유형마다)

    프론트 (app.js)

  • 온보딩 퀴즈 UI: "🧠 나를 먼저 알아보기" 버튼 → 4문항 순차 → 결과 카드
  • 유형 원형 아이콘 + 색상 + 이름 + 라벨(e.g. 3wSO)
  • 강점/주의/TOAU팁/간트/비용/시작법 인라인 표시
  • 추천 템플릿 하이라이트 (border-color + order:-1)
  • "다시 테스트" 버튼
  • 프로젝트 뷰 힌트: 기존 상태 힌트 + 에니어그램 맞춤 팁 append
  • 실측 (성취가 3wSO)

    이름: 성취가 (사회적), 라벨: 3wSO
    강점: 목표 설정, 실행력, 성과 측정
    TOAU팁: 빠른 T를 좋아하지만 중요한 결정은 O에서 근거를 쌓으세요
    추천: church, edu-campus, biz-hq, startup
    

    최종 상태 (이 세션 전체 결과)

    기능상태
    티옴타음 3진 비용 시각화 (+T/0/-T)✅ 서버+프론트
    간트 차트 (전용 API, 접기/펼치기)
    일정 설정 (다이얼로그 + API)
    날짜 드래그 (핸들+바 이동)
    의존성 화살표 (SVG 베지어)
    WebSocket 페이로드 확장
    모바일 반응형 (분석/간트/트리)
    FAB + 바텀 드로어
    트리뷰 롱프레스 액션
    사이드메뉴 트랜지션
    한선씨 동반 (server.한선)✅ 학습DB x9

    잔여 이슈 (향후)