Commit Graph

3865 Commits

Author SHA1 Message Date
chpark 4d39d70f1d DB 연결정보를 서버 로컬 DB로 변경 (183.99.177.40:5432)
Build & Deploy to K8s / build-and-deploy (push) Successful in 6s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:15:22 +09:00
gbpark 1aa48cc0bb INVYONE 화면 디자이너 개편 + 컴포넌트 86→8 통합
## 디자인 개편
- IDE 톤 CSS 오버라이드 (builder-ide.css)
- 컴팩트화 (폰트/간격/패딩 축소)
- INVYONE STUDIO 로고 추가 (SlimToolbar)
- 좌측 수평 탭 → 수직 아코디언 (details/summary)
- 우측 속성 패널 신설 (V2PropertiesPanel 완전 이주)
- 다크모드 지원 (7개 통합 컴포넌트 inline hex → CSS 변수)

## 기반 시스템
- ScreenDefinition.fields/connections 타입 확장
- ComponentDefinition.dataPorts 타입 확장
- FieldConfig adapters (fieldsToColumns/Search/Form)
- DataPortBus + setupConnections runtime
- FieldsPanel (화면 수준 필드 관리 패널)

## 컴포넌트 통합 (Phase A~C)
- divider (3→1): 가로/세로 + 텍스트 구분선
- title (2→1): h1~h6/body/caption variant
- button (3→1): 6 variant × 13 actionType
- search (3→1): inline/stacked 검색 필터
- input (20+→1): FieldConfig.type 10종 내부 분기
- stats (6→1): card/chip/bigNumber 3종 스타일
- table (9→1): table/split/grouped/pivot/card 5종 displayMode
- container (11→1): tabs/section/accordion/repeater/conditional 5종

## 버그 수정 (기존 VEX 코드)
- 드래그 드롭 불가 (defaultSize camelCase 불일치)
- 설정 변경 미반영 (componentConfig vs component_config)
- ConfigPanel 미인식 (config_panel vs configPanel)
- v2- 자동 매핑 함정 (INVYONE_UNIFIED_IDS 화이트리스트)
- LayerManagerPanel 무한 API 호출 (useEffect deps)
- Button size 이름 충돌 (visual size 객체 vs config string)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 20:37:23 +09:00
chpark 1eb13050dd ci: backend-node 제거 (Spring Boot로 전환됨)
Build & Deploy to K8s / build-and-deploy (push) Successful in 39s
2026-04-12 02:27:40 +09:00
chpark 4b15263ee7 ci: retrigger deploy after node install
Build & Deploy to K8s / build-and-deploy (push) Successful in 7m24s
2026-04-11 17:15:58 +00:00
chpark 39fdc2683e fix: selectCompanyName LIMIT 1 추가 및 K8s 배포 설정 추가
Build & Deploy to K8s / build-and-deploy (push) Failing after 7s
2026-04-11 17:09:40 +00:00
gbpark a0c9d9a0ab 화면 디자이너 제작
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 19:28:28 +09:00
gbpark 2c0a97f2ba Phase 1: INVYONE 카드 엔진 토대 정리
- components/builder/* 폐기 (12-grid 미완성 빌더 14개 파일)
- components/template-builder/TemplateBuilder.tsx 신규
  (자유배치 + 3뷰 + Zustand 스토어 + 드래그/리사이즈/히스토리/격자)
- admin/builder/page.tsx 진입점 전환 (BuilderLayout → TemplateBuilder)
- 타입 정리: FreePosition / TemplateComponent / ViewConfig / Card /
  Dashboard / CardConnection 추가, 레거시(GridPosition/TemplateKind/
  DEFAULT_COMPONENT_LAYOUTS/CANVAS_KEYWORDS) @deprecated 표기
- v2-* 마이그레이션 1차:
  · 완전: v2-table-list (ResizeObserver), v2-table-search-widget (@container)
  · 경량: button/input/select/date/text-display/card-display/aggregation-widget
    (withContainerQuery HOC)
- 다크 모드 대응: Tailwind dark: variant 21패턴 71곳 치환
- /test-card-responsive PoC 검증 페이지

세션 후반 버그 픽스 (phase1-log §7):
- test-card-responsive (main) 그룹 밖 이동 (AppLayout 탭 시스템 회피)
- useRegistryPalette default_size {width,height}/{w,h} 포맷 정규화
- dark: variant 중복 체인 정리

검증: (A) 반응형 메커니즘, (B) TemplateBuilder UI 통과
(C) 기존 VEX 화면은 마이그레이션 미완 상태라 Phase 2 이후 개별 진행

스펙: notes/gbpark/2026-04-10-card-engine-final-spec.md
로그: notes/gbpark/2026-04-10-card-engine-phase1-log.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 03:08:06 +09:00
gbpark 9c36191ebf 중간 세이브 2026-04-10 13:33:37 +09:00
gbpark c6e81c4520 22 2026-04-09 00:39:11 +09:00
gbpark 3dad7fcf4f 11 2026-04-08 21:18:22 +09:00
gbpark 06ab990dbd 진행중 2026-04-08 04:55:12 +09:00
gbpark 4603ac7fd6 디자인 수정 2026-04-08 02:27:27 +09:00
gbpark db8df83b31 node 업그레이드-->25 이전 서버설정 cash문제 해결. 2026-04-08 01:10:59 +09:00
gbpark 9890b906b9 chore(docker): point invyone backend at test_dev instead of vexplor_dev
User confirmed test_dev is the correct database for invyone (the
old TEST-VEX project), matching what the previous mac compose was
using. Same host (211.115.91.141:11134), same credentials, just a
different database name.

Verified end-to-end: real login (POST /api/auth/login from the
browser path) returns 200 with a valid JWT, meaning the full chain
browser → next dev rewrites → backend-spring → HikariCP → test_dev
works and the user table lookup + password check both pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 23:45:27 +09:00
gbpark 276e338b0e fix(frontend): use relative API URL so browser works from any host
NEXT_PUBLIC_API_URL was hardcoded to http://localhost:8083/api which
gets baked into webpack bundles at build time. NEXT_PUBLIC_* vars
run in the browser, so "localhost" resolves to the *user's own PC*,
not the office host running the container — connect refused for
anyone hitting the site over Tailscale or LAN.

Use a relative URL (/api) and let next dev's rewrites proxy to
SERVER_API_URL (invyone-backend-spring:8081 inside invyone-net).
This way the request always lands on whatever host the browser is
already talking to (localhost / 100.126.230.80 / public domain),
and the Next dev server forwards it to the backend container.

Verified: POST /api/auth/login from browser path returns the spring
controller's 400 response, confirming the full
browser → frontend → backend chain works.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 23:38:01 +09:00
gbpark 00dd9e3a59 fix(frontend): disable standalone + webpackMemoryOptimizations in dev
next dev mode was throwing ENOENT for routes-manifest.json and other
chunk files, leaving /login and other routes permanently 404 after
the first compile. Root cause:

- output: "standalone" is a prod build option; combined with next dev
  it produces chunk paths and manifests that don't match what dev
  expects.
- experimental.webpackMemoryOptimizations evicts compiled modules to
  save memory, but in dev that includes already-served SSR chunks,
  so requests after the eviction window 404 even though the page
  compiled successfully.

Wrap both options in an isDev check so prod build behavior is
preserved while dev no longer self-destructs its own chunks.
Verified on the office Ubuntu invyone-frontend container: /, /login
return 200 and the chunk-loss errors are gone.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 23:32:31 +09:00
gbpark 5bcff2db4d 123 2026-04-07 23:25:25 +09:00
gbpark b7c5262c53 chore: drop backend-node from invyone docker stack
invyone (= old TEST-VEX) is React + Java only; backend-node belongs
to a different project (PMS) and was bundled by mistake. Remove the
backend-node service from docker-compose.invyone.yml, drop the
backend-node.Dockerfile, and clean up the now-unused frontend env
vars that pointed at the node API.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 22:55:22 +09:00
gbpark a3872a271f chore: add unified docker dev stack for invyone (frontend + spring + node)
Adds backend-node.Dockerfile (Node 20-alpine + nodemon) and a single
docker-compose.invyone.yml that brings up all three services on
invyone-net with restart unless-stopped, intended for the office
Ubuntu host. Uses vexplor_dev DB for both backends and exposes
9772 (frontend) / 8083 (spring) / 8082 (node) on the host.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 22:24:20 +09:00
gbpark b994ac7335 chore: ignore CLAUDE.local.md (per-user setup notes)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:55:13 +09:00
gbpark b2c52e32b1 test 2026-04-07 18:51:18 +09:00
gbpark c314530dfa chore: ignore Syncthing local marker dirs (.stfolder, .stversions)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:39:40 +09:00
gbpark b7f95d3ced chore: split .stignore into shared file for auto-sync
Move ignore patterns to .stignore-shared (syncs across machines).
.stignore becomes a per-machine stub with #include directive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:06:34 +09:00
gbpark 9bef34ccab chore: ignore bin/ output dirs (Eclipse/Java)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 17:29:24 +09:00
gbpark 57ef137831 세팅 2026-04-07 16:53:40 +09:00
gbpark e3fe7b640f 22 2026-04-07 13:39:14 +09:00
gbpark 7669baa171 ]] 2026-04-06 16:34:21 +09:00
gbpark 7c0b8c80fe 123 2026-04-06 15:54:35 +09:00
gbpark de24fb09d5 123 2026-04-06 15:54:31 +09:00
DDD1542 87498b9940 Refactor code structure for improved readability and maintainability 2026-03-31 09:34:54 +09:00
DDD1542 c465141f53 snake_case 통일 작업 중간 저장 - 프론트 완료, 백엔드 쿼리 ID 불일치 수정 전 2026-03-30 12:22:26 +09:00
DDD1542 fc8930778b [agent-pipeline] pipe-20260330021427-v9fb round-3 2026-03-30 11:43:11 +09:00
DDD1542 cbe16aa5e5 [agent-pipeline] pipe-20260330021427-v9fb round-2 2026-03-30 11:35:08 +09:00
DDD1542 b9e3f68fce [agent-pipeline] pipe-20260330021427-v9fb round-1 2026-03-30 11:25:52 +09:00
DDD1542 4342056de6 [agent-pipeline] pipe-20260330011621-qr5j round-3 2026-03-30 10:45:31 +09:00
DDD1542 312984d3cb [agent-pipeline] pipe-20260330011621-qr5j round-2 2026-03-30 10:39:17 +09:00
DDD1542 0b26870ac5 [agent-pipeline] pipe-20260330011621-qr5j round-1 2026-03-30 10:24:16 +09:00
DDD1542 a9d3a526af [agent-pipeline] pipe-20260329160157-3bqb round-2 2026-03-30 02:39:43 +09:00
DDD1542 7529c3ff9e [agent-pipeline] pipe-20260329160157-3bqb round-1 2026-03-30 02:26:40 +09:00
DDD1542 b9679856d7 [agent-pipeline] pipe-20260329143602-hu6g round-9 2026-03-30 00:38:09 +09:00
DDD1542 5fea071ae8 [agent-pipeline] pipe-20260329143602-hu6g round-2 2026-03-30 00:10:13 +09:00
DDD1542 c24dd533b2 [agent-pipeline] pipe-20260329143602-hu6g round-1 2026-03-30 00:00:35 +09:00
DDD1542 1405a19d1c [agent-pipeline] pipe-20260329112709-ncml round-2 2026-03-29 23:12:23 +09:00
DDD1542 a5f4cd5ba9 [agent-pipeline] pipe-20260329112709-ncml round-1 2026-03-29 22:56:00 +09:00
DDD1542 b3f2383ef0 [agent-pipeline] pipe-20260329091415-q0af round-1 2026-03-29 18:41:33 +09:00
DDD1542 729272f44d [agent-pipeline] pipe-20260329080516-zyud round-2 2026-03-29 18:08:02 +09:00
DDD1542 0fc2101331 [agent-pipeline] pipe-20260329080516-zyud round-1 2026-03-29 17:48:45 +09:00
DDD1542 9277c93ddc [agent-pipeline] pipe-20260329072859-n5mz round-1 2026-03-29 16:57:32 +09:00
DDD1542 6c025aa8ed [agent-pipeline] pipe-20260329071056-9n90 round-2 2026-03-29 16:21:58 +09:00
DDD1542 882f63e744 [agent-pipeline] pipe-20260329071056-9n90 round-1 2026-03-29 16:18:59 +09:00