From 4c5e0330ef2c56062e9dc52d7bd745fc062b4de5 Mon Sep 17 00:00:00 2001 From: kjs Date: Tue, 23 Sep 2025 17:08:52 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20TableListConfigPanel=20API=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=BB=AC=EB=9F=BC=20=EC=B0=B8=EC=A1=B0=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EB=A1=9C=EA=B9=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fetch('/api/tables') 직접 호출을 tableTypeApi.getTables()로 변경하여 올바른 포트 사용 - 엔티티 컬럼 감지 시 reference_table/referenceTable 필드 로깅 추가 - joinTable 설정 시 두 필드 모두 확인하도록 수정 --- frontend/lib/api/client.ts | 4 +- .../table-list/TableListConfigPanel.tsx | 38 ++++++++++--------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/frontend/lib/api/client.ts b/frontend/lib/api/client.ts index a02871d0..2660014f 100644 --- a/frontend/lib/api/client.ts +++ b/frontend/lib/api/client.ts @@ -6,12 +6,12 @@ const getApiBaseUrl = (): string => { const currentHost = window.location.hostname; const currentPort = window.location.port; - // 로컬 개발환경: localhost:9771 또는 localhost:3000 → localhost:3001 + // 로컬 개발환경: localhost:9771 또는 localhost:3000 → localhost:8080 if ( (currentHost === "localhost" || currentHost === "127.0.0.1") && (currentPort === "9771" || currentPort === "3000") ) { - return "http://localhost:3001/api"; + return "http://localhost:8080/api"; } // 서버 환경에서 localhost:5555 → 39.117.244.52:8080 diff --git a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx index a2b2997e..e6e0ec02 100644 --- a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx +++ b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx @@ -12,6 +12,7 @@ import { Badge } from "@/components/ui/badge"; import { ScrollArea } from "@/components/ui/scroll-area"; import { TableListConfig, ColumnConfig } from "./types"; import { entityJoinApi } from "@/lib/api/entityJoin"; +import { tableTypeApi } from "@/lib/api/screen"; import { Plus, Trash2, ArrowUp, ArrowDown, Settings, Columns, Filter, Palette, MousePointer } from "lucide-react"; export interface TableListConfigPanelProps { @@ -31,11 +32,11 @@ export const TableListConfigPanel: React.FC = ({ screenTableName, tableColumns, }) => { - console.log("🔍 TableListConfigPanel props:", { - config: config?.selectedTable, - screenTableName, + console.log("🔍 TableListConfigPanel props:", { + config: config?.selectedTable, + screenTableName, tableColumns: tableColumns?.length, - tableColumnsSample: tableColumns?.[0] + tableColumnsSample: tableColumns?.[0], }); const [availableTables, setAvailableTables] = useState>([]); @@ -92,18 +93,14 @@ export const TableListConfigPanel: React.FC = ({ const fetchTables = async () => { setLoadingTables(true); try { - const response = await fetch("/api/tables"); - if (response.ok) { - const result = await response.json(); - if (result.success && result.data) { - setAvailableTables( - result.data.map((table: any) => ({ - tableName: table.tableName, - displayName: table.displayName || table.tableName, - })), - ); - } - } + // API 클라이언트를 사용하여 올바른 포트로 호출 + const response = await tableTypeApi.getTables(); + setAvailableTables( + response.map((table: any) => ({ + tableName: table.tableName, + displayName: table.displayName || table.tableName, + })), + ); } catch (error) { console.error("테이블 목록 가져오기 실패:", error); } finally { @@ -327,7 +324,12 @@ export const TableListConfigPanel: React.FC = ({ // 엔티티 타입인 경우 isEntityJoin 플래그 설정 (input_type 또는 web_type 확인) if (tableColumn && (tableColumn.input_type === "entity" || tableColumn.web_type === "entity")) { - console.log("🎯 엔티티 컬럼 감지 및 플래그 설정:", column.columnName); + console.log("🎯 엔티티 컬럼 감지 및 플래그 설정:", { + columnName: column.columnName, + referenceTable: tableColumn.reference_table, + referenceTableAlt: tableColumn.referenceTable, + allTableColumnKeys: Object.keys(tableColumn), + }); return { ...column, @@ -341,7 +343,7 @@ export const TableListConfigPanel: React.FC = ({ displayColumns: [], // 빈 배열로 초기화 separator: " - ", sourceTable: config.selectedTable || "", - joinTable: tableColumn.reference_table || "", + joinTable: tableColumn.reference_table || tableColumn.referenceTable || "", }, }; }