docs: 다양한 문서 및 가이드 업데이트

- 여러 문서의 내용을 업데이트하여 최신 정보를 반영하였습니다.
- 컴포넌트 개발 가이드와 관련된 문서의 목차를 재구성하고, V2 및 Zod 레이아웃 시스템에 대한 내용을 추가하였습니다.
- 화면 컴포넌트 개발 가이드를 개선하여 핵심 원칙과 패턴을 명확히 설명하였습니다.
- 불필요한 문서 및 가이드를 삭제하고, 통합된 가이드를 통해 개발자들이 쉽게 참고할 수 있도록 하였습니다.
This commit is contained in:
kjs
2026-01-28 17:36:19 +09:00
parent e0ee375f01
commit 95bef976a5
276 changed files with 2544 additions and 2495 deletions

View File

@@ -11,7 +11,7 @@ import {
isValidWebType,
WEB_TYPE_TO_POSTGRES_CONVERTER,
WEB_TYPE_VALIDATION_PATTERNS,
} from "../types/unified-web-types";
} from "../types/v2-web-types";
import { DataflowControlService } from "./dataflowControlService";
// 테이블 컬럼 정보

View File

@@ -987,7 +987,7 @@ class NumberingRuleService {
}
// 카테고리 매핑에서 해당 값에 대한 형식 찾기
// selectedValue는 valueCode일 수 있음 (UnifiedSelect에서 valueCode를 value로 사용)
// selectedValue는 valueCode일 수 있음 (V2Select에서 valueCode를 value로 사용)
const selectedValueStr = String(selectedValue);
const mapping = categoryMappings.find(
(m: any) => {

View File

@@ -1406,7 +1406,7 @@ export class ScreenManagementService {
*/
private inferWebType(dataType: string): WebType {
// 통합 타입 매핑에서 import
const { DB_TYPE_TO_WEB_TYPE } = require("../types/unified-web-types");
const { DB_TYPE_TO_WEB_TYPE } = require("../types/v2-web-types");
const lowerType = dataType.toLowerCase();
@@ -1741,15 +1741,15 @@ export class ScreenManagementService {
? inputTypeMap.get(`${tableName}.${columnName}`)
: null;
// 🆕 Unified 컴포넌트는 덮어쓰지 않음 (새로운 컴포넌트 시스템 보호)
// 🆕 V2 컴포넌트는 덮어쓰지 않음 (새로운 컴포넌트 시스템 보호)
const savedComponentType = properties?.componentType;
const isUnifiedComponent = savedComponentType?.startsWith("unified-");
const isV2Component = savedComponentType?.startsWith("v2-");
const component = {
id: layout.component_id,
// 🔥 최신 componentType이 있으면 type 덮어쓰기 (단, Unified 컴포넌트는 제외)
type: isUnifiedComponent
? layout.component_type as any // Unified는 저장된 값 유지
// 🔥 최신 componentType이 있으면 type 덮어쓰기 (단, V2 컴포넌트는 제외)
type: isV2Component
? layout.component_type as any // V2는 저장된 값 유지
: (latestTypeInfo?.componentType || layout.component_type as any),
position: {
x: layout.position_x,
@@ -1759,8 +1759,8 @@ export class ScreenManagementService {
size: { width: layout.width, height: layout.height },
parentId: layout.parent_id,
...properties,
// 🔥 최신 inputType이 있으면 widgetType, componentType 덮어쓰기 (단, Unified 컴포넌트는 제외)
...(!isUnifiedComponent && latestTypeInfo && {
// 🔥 최신 inputType이 있으면 widgetType, componentType 덮어쓰기 (단, V2 컴포넌트는 제외)
...(!isV2Component && latestTypeInfo && {
widgetType: latestTypeInfo.inputType,
inputType: latestTypeInfo.inputType,
componentType: latestTypeInfo.componentType,

View File

@@ -10,7 +10,7 @@ import {
EntityJoinResponse,
EntityJoinConfig,
} from "../types/tableManagement";
import { WebType } from "../types/unified-web-types";
import { WebType } from "../types/v2-web-types";
import { entityJoinService } from "./entityJoinService";
import { referenceCacheService } from "./referenceCacheService";
@@ -4301,7 +4301,7 @@ export class TableManagementService {
*/
private inferWebType(dataType: string): WebType {
// 통합 타입 매핑에서 import
const { DB_TYPE_TO_WEB_TYPE } = require("../types/unified-web-types");
const { DB_TYPE_TO_WEB_TYPE } = require("../types/v2-web-types");
const lowerType = dataType.toLowerCase();