14 KiB
14 KiB
킨텍스 자동전시시스템 — 작업 현황·인수인계 (WORK_STATUS)
목적: 다른 PC/세션에서 작업을 이어가기 위한 단일 인수인계 문서. 수시 업데이트(기능 추가·변경·트랙 완료 시 갱신 후 커밋). 최종 갱신: 2026-07-11 · 리포
git.zioinfo.co.kr/zio/kintex(main) · 시크릿(비밀번호·키·서버IP)은 본 문서에 미기재(env·GUARDiA 공용 참조).
0. 빠른 시작 (다른 PC에서 이어받기)
git clonezio/kintex→ main.- 핵심 문서:
docs/PLANNING.md(v3.0 기획)·docs/design.md(v1.2 화면·MDI)·docs/IMPLEMENTATION_BACKLOG.md·docs/FEATURE_BACKLOG_100.md·docs/architecture/*·docs/GUARDIA_ALIGNMENT.md·docs/SECURITY.md·docs/ENV_SETUP.md·docs/OPS_RUNBOOK.md·CLAUDE.md. - 하네스:
.claude/(에이전트 ~20 +kintex-impl-orchestrator스킬). 구현은 오케스트레이터가 조율. - 이 문서(WORK_STATUS.md)로 "무엇이 됐고/도는 중/남았는지" 파악.
1. 프로젝트 개요
킨텍스 자동전시시스템(다중 전시관 멀티테넌트 SaaS, KINTEX=테넌트#1, COEX 등 온보딩). 전시 생애주기(판매→AI 설계·시각화→공사 옥션→시공→운영→경영분석) 폐루프.
2. 스택·인프라 (시크릿 제외)
- 프론트 React 18/19(Vite·TS) / 백엔드 Spring Boot 3.2.5(Java17)+MyBatis / DB PostgreSQL+PostGIS(Flyway) / Redis / 나노바나나 Python 워커(google-genai
gemini-3.1-flash-image-preview). - AI 지능 = Claude 기본(AiTextRouter/AiConfig) + Ollama 폴백. 이미지 = 나노바나나(Gemini, 소유자 승인=G1 라이브).
- 개발 배포: https://kintex.zioinfo.co.kr(TLS·백엔드 8021·PostGIS·Redis·워커 systemd). 운영 도메인 kintex.wise.ai.kr(후속). 서버 접속 자격증명은 GUARDiA 공용(env·리포 미기재).
- CI/CD: Gitea webhook →
deploy_kintex.sh(백엔드sh gradlew bootJar+ 프론트 vite 빌드 → 배포 → health → 롤백). push하면 자동배포.
3. 요구사항 로그 (이번 세션 누적 — 스코프 진화)
- Gitea
kintex리포 생성 + 로컬 소스 push. - kintex.com 전 페이지 분석 + ReRoomAI 소스 분석 → AI 전시시스템 하네스 생성(부스 배치·인테리어·전기·조명·네트워크 배선 자동화 → 나노바나나 시공 후 사진).
- 웹/모바일 UI는 디자인 에이전트로 design.md 생성 후 Google Stitch 전달.
- 스택 확정: React + Spring Boot + MyBatis + PostgreSQL.
- 구현용 하네스 전체 생성(전문 에이전트 + 오케스트레이터 + 백로그).
- 자동전시시스템으로 확장: 전시 관련 모든 기능·경영분석(BI)·웹/모바일 역할별 분리·별도 관리자 시스템·CMS.
- 사용자 역할: 전시하려는자/공사 입찰사/킨텍스 직원 등 + 일반 대중 공개 홍보 페이지.
- 공사업체가 AI 생성 자료 열람 → 견적서 제출 → 옥션(역경매) → 전시업체가 업체 확정.
- 부스 구성 AI 1·2·3안 생성 → 선택 또는 병합.
- UIWS(WISE) 시스템관리·공통기능 전체 이식(2FA/OTP 포함).
- AI·QA·AA·SA·NA·TA·DA + PM·개발PM·PMO 에이전트 고용. AI는 Claude(클로드코드)로 구현 + 설정에서 모델 변경.
- 전시장 평면도 크롤링 확보(CAD+JPG) + CAD/JPG 포맷 지원.
- 개발서버 + CI/CD 구축(WISE env 참조·kintex.zioinfo.co.kr).
- 멀티테넌시(tenant_id) — 코엑스 등 다중 전시관.
- MDI(다중문서 인터페이스) 셸.
- DB 별도 구성(전용 kintex_db).
- GUARDiA 솔루션 재사용 패턴(py/md) kintex 흡수.
- 로그인 좌측 히어로 이미지 + CI 로고(ci/ 폴더).
- Stitch 전 화면 디자인 반영(이미지 포함) + 신규 화면.
- 회원가입·비밀번호 찾기/초기화·아이디 기억.
- 반응형 풀스크린 + 모바일 앱.
- 전시관리 100대 기능 크롤링·기획(AI 자동화로 수작업 최소화) + 백로그.
- 웹접근성·시큐어코딩·다국어·라이트/다크 테마(공통 NFR).
- 행안부 산출물 표준 → 사업수행계획서 + 전 산출물 Excel/PPT/Doc.
기능 변경 시 자동 업데이트→ (2026-07-11 변경) 최초 1회 생성 + 개발 완료 시 최종 1회만 갱신(중간 갱신 금지·비용 절감, 자동갱신 스크립트는 최종 시점 실행용). - 사용자·운영자·개발자 지침서 PPT.
- 프로그램 사양서(기능별 상세) + 순서도 PPT.
- 본 WORK_STATUS.md로 인수인계·수시 업데이트.
4. 완료·라이브 (커밋 기준)
- 문서: PLANNING v3.0(멀티테넌시)·design.md v1.2(MDI)·아키텍처 5종(app/system/tech/data/network)·WISE 개발문서 6종·FEATURE_BACKLOG_100 + GAP_ANALYSIS·GUARDIA_ALIGNMENT·SECURITY·OPS_RUNBOOK.
- 백엔드(라이브): 스캐폴드 + 인증(JWT/RBAC) + M2~M5 매퍼 배선(501 해소·PostGIS) + 룰엔진 + Phase B 공통레이어(2FA/OTP·시스템관리·공통 업무기능 V7/V8) + 공개 인증(register·forgot·reset V9). Flyway V1~V9(테이블 39).
- 프론트(라이브): 로그인(히어로+CI로고+인증 UI: 회원가입·비번찾기·아이디기억) + Stitch 반영(부스 설계 스튜디오·대시보드·갤러리·신규 8화면 SCR-04/05/08/09/10/11 + 모바일 M1/M2) + 번들 이미지 25.
- 인프라(라이브): 개발서버 8021·PostGIS·Redis·나노바나나 워커(Gemini 라이브)·TLS·CI/CD 자동배포·배포 파이프라인 근본수정.
- 계정:
admin@kintex.zioinfo.co.kr(env 시더, role ADMIN) — 로그인 200 확인. - 자산: 평면도 JPG 15 + CAD(트렌치)
docs/assets/floorplans/(CAD는 gitignore). Stitch 프로젝트 9385904003821333054 화면stitch_kintex_ai_system_architect/.
5. 진행 중(백그라운드 에이전트) — 커밋 대기
- 모바일 앱(Expo,
mobile/) 스캐폴드. - 산출물: 사업수행계획서 + 행안부 표준양식 크롤링 + 전 산출물 Excel/PPT/Doc(
docs/deliverables/) + 자동갱신 스크립트. - 지침서 3종(사용자·운영자·개발자) PPT(
docs/deliverables/지침서/). - 프로그램 사양서(기능별 상세) + 순서도 PPT(
docs/deliverables/프로그램사양서/).
6. 남은 큐 (후속)
상세 미개발 통합 목록:
docs/UNDEVELOPED_BACKLOG.md(2026-07-11 세션 스캔 — 화면별 샘플→실데이터 전환·커밋 대기·NFR·대형 트랙 전체)
- 신규 5화면:
반영 대기→ 구현 완료(2026-07-11) — SCR-13~17(경영분석/analytics·현장운영/ops/operations·전시일정/schedule·관리자 랜딩/admin·스타일가이드/_styleguide) design.md v1.3 매핑 + React 이식(tsc 통과·Recharts 도입). QA·reviewer·커밋 마감 진행 중. 데이터는 대부분 샘플(집계 API 미구축 — UNDEVELOPED_BACKLOG §1). - 아이콘 세트 교체(이모지 → Stitch 정식 아이콘,
_icons/). - 반응형 풀스크린 + 라이트/다크 테마 + 다국어(i18n) + 접근성 전면 적용.
- 100대 기능 갭(신규19/부분18) → orchestrator Phase 편입 구현(관람객·네트워킹·참가업체 서비스 집중).
- 멀티테넌시 구현(DA 데이터모델 → db-engineer tenant_id 스키마 → backend 테넌트 컨텍스트).
- MDI 프론트 전환(design.md §2.7 기준).
- 도메인 모듈 구현: 옥션(M15)·관람객(M10)·CMS/공개사이트(M12/M17)·BI(M16)·관리자(M18).
7. 배포·운영 함정 (반드시 숙지)
deploy_kintex.sh는 백엔드도 빌드해야 함(과거 미빌드 버그·수정됨).gradlew는sh ./gradlew(실행권한 이슈).grep -qSIGPIPE 회피.- ★MyBatis+PostgreSQL 별칭(2026-07-12 규명): PG는 따옴표 없는 별칭을 소문자로 접음(
AS userId→userid) → Map 반환 @Select는 반드시AS "userId"(쌍따옴표). 안 그러면 컴파일·단위테스트 통과하고 런타임에서 키 전부 null(secure 로그인 전멸·집계 API 0/null이었음). UserMapper.xml 컨벤션 준수. 신규 매퍼 작성 시 필수 점검. - 프론트 검증은
tsc -b(서버 빌드와 동일) —tsc --noEmit은 프로젝트 레퍼런스 설정을 안 타서 서버에서만 실패하는 오류(noUnusedLocals 등)를 놓침. - deploy_server 웹훅 로그는 실패 stderr를 잘라 기록 — 실제 에러는 서버
/opt/kintex/src에서 빌드 재현으로 확보. - 2FA 운영 게이트: admin 등 필수 역할은 최초 로그인 시
OTP_ENROLL(웹 UI에서 QR 등록 필요). 운영 배포 전KINTEX_OTP_ENC_KEY(base64 32B) env 주입 필수(미주입 시 개발 파생키). 레거시/api/auth/login은 secureLogin 위임 — OTP 대상은 401 OTP_REQUIRED(모바일은 2FA 플로우 채택 필요). - dev DB에 E2E 테스트 계정
qa-e2e-visitor@kintex.zioinfo.co.kr(VISITOR) 존재 — 운영 이관 시 제거. - git 대용량(CAD·PNG·build)로 커밋/푸시 느림 → 특정 경로 add + push 재시도. CAD/build/node_modules gitignore.
- 로컬
vite build는 win32 rollup 크래시 가능 → 서버 빌드 신뢰(tsc 통과로 검증). - 서버
/opt/zioinfo/deploy_server.py(kintex 블록)·/opt/kintex/수정 시 반영+재시작. - 보안 불변: 외부API 금지(Claude·Gemini 예외)·자격증명 미노출·AI 이미지 워터마크·admin env 시더.
8. 변경 이력 (이 문서)
| 일자 | 갱신 |
|---|---|
| 2026-07-11 | 최초 작성 — 요구사항 27건·현황·남은 큐·함정 |
| 2026-07-11 | 신규 5화면(SCR-13~17) 구현 완료 반영 + 미개발 통합 백로그 UNDEVELOPED_BACKLOG.md 신설·연결 |
| 2026-07-11 | 모바일 트랙 하네스 신설(kintex-mobile-dev + kintex-mobile-orchestrator, WISE 모바일 레퍼런스·Stitch 디자인 경유·G3 EAS 게이트) + 웹 WISE 기능 레퍼런스 강화(kintex-frontend-dev·impl-orchestrator) |
| 2026-07-12 | 제안서.pptx 완성(나라장터 표준 7대장·97슬라이드·RTM 142/142 QA 승인·화면갤러리 19시안) + 산출물 7종 전체 완성(개발계획서·지침서3·프로그램사양서·DA·사업수행계획서). PLANNING v3.1(계정통합·앱 2타깃)·design v2.1(84화면)·백로그 Phase F. Stitch 신규 24/64 확보(웹코어 트랙 진행·실패 12건은 서비스 저하 — 재시도 예약). 재생성: deliverables/제안서/_gen/build_deck.py |
| 2026-07-12 | Stitch 잔여 39화면 미확보 — 서비스 저하로 보류. 확보 25/64(모바일 M4~M14·관리자 A1~A4/A7/A10·공개 P8·웹코어 18~21/24/28/31). 잔여: 웹코어 22/23/25~27/29/30/32~51(27)·관리자 A5/A6/A8/A9(4)·공개 P1~P7(7)·모바일 M15(1). generate 타임아웃 지속+list_screens 스테일(구 27건 고정). 회복 후 재실행 절차 = _workspace/stitch_gen/harvest_report.md(수확 패스→재생성, 연속 3타임아웃 시 중단 규칙). Stitch 웹 UI(프로젝트 9385904003821333054) 육안 확인 권장. 부수: 로그인 슬라이드 CMS·RFP·보고서 4종 커밋(1de3b9b) |
| 2026-07-12 | Stitch 전 화면 확보 완료(64/64) — 서비스 회복 후 수확 패스 재실행: 잔여 39화면 전부 서버측 지연 생성 완료 상태(프로젝트 27→155 화면)로 재생성 0회·다운로드 43파일(보조 변형 5 포함: P4 3단계·P7 예매확인·M15 권종선택) 실패 0. _workspace/stitch_gen/{harvest2.py,screen_titles.txt,harvest_report.md}. 다음: frontend/mobile dev 이식 + design.md 🔲미생성 마커 갱신(designer 경유) |
| 2026-07-12 | 실데이터·2FA 트랙 마감 — ①실데이터 집계 API 5패키지(analytics·dashboard·ops·admin·catalog + V13 인덱스) ②TOTP 2FA 완결(SecretCipher AES-256-GCM·V12·OtpChallengePanel/OtpSetupPage·OTP_ENFORCE env) ③공통 업무기능 SCR-39~48 화면(screens/work/) 배선 ④M2 부스 겹침 검사(BOOTH_OVERLAP·compliance-v1.1) + 단위테스트 3종. 검증: backend compileJava+test·frontend tsc 통과, QA PASS(blocker/major 0, minor 2=RIGGING_RANGE semantics 소유자 결정 대기·운영 KINTEX_OTP_ENC_KEY 주입 게이트 — _workspace/09_qa_track_close.md). 계약 갭 기록: _workspace/{07_work_api_gaps,08_m2m5_contract_changes}.md |
| 2026-07-12 | Stitch 확보 화면 이식 완료(웹 24 + 공개 7단계플로우 + 모바일 1) — 에이전트 7팀 병렬(폴더 소유권 분리·공유파일 통합자 단일 배선). ①도메인: SCR-22/23/25(서류·신고서류·도크, M6/M8 샘플)·SCR-26/27/29/38(옥션 3종+수주 대시보드, M15 샘플, 봉인입찰 마스킹·등록업체만 응찰 UI)·SCR-30/32/33/34(관람객·리드·EDM·스폰서십, M10/M12 샘플, PII 마스킹)·SCR-35/36/37(CMS 3종, M17 샘플) ②관리자: A5 감사로그·A6 시스템설정 = 라이브 백엔드 실배선(PageResponse·시크릿 마스킹), A8 룰셋(정적 v1.1 스냅샷)·A9 테넌트(샘플) ③공개: P1~P7 자체 PublicShell(비인증 /public/·/tickets/, PG위임 고지) ④모바일: M15 티켓지갑(mobile/app/tickets, QR placeholder) ⑤통합: App 라우트 18종+AppShell "도메인 모듈" 네비. tsc -b EXIT 0·QA PASS(minor 2 코스메틱: kx-field 접두, ★/✓ 글리프). 각 팀 API 계약 초안 = _workspace/port_*.md. 커밋 becbc55 |
| 2026-07-12 | 배포·핫픽스 3건 + 풀 E2E 라이브 검증 완료 — 1차 push는 서버 tsc -b 실패로 프론트 미배포(로컬 --noEmit과 설정 차이): ①toast 미렌더+TS6133·recharts formatter 타입 수정(8509787) ②레거시 /api/auth/login이 잠금·OTP 강제를 우회하던 보안 구멍 → secureLogin 위임(a657f95) ③PG 별칭 소문자 폴딩으로 Map 매퍼 22파일·191별칭 전부 런타임 null이던 결함 → AS "alias" 일괄 교정(89bf2ce) — login-slides imageUrl null(01:08부터)·secure 로그인 전멸이 이것. E2E 확인: secure 로그인 admin=OTP_ENROLL+챌린지(시크릿 미누출)·레거시=401 차단·visitor 가입→로그인→카탈로그 78건 실데이터·admin API 403 RBAC·Flyway V12/V13 적용·신규 번들 라이브. design.md v2.1.1(Stitch 84화면 상태 정합·designer 경유) |