# column_labels → table_type_columns 마이그레이션 완료

**작업일**: 2026-01-26

---

## 개요

`column_labels` 테이블의 데이터를 `table_type_columns`로 통합하여 멀티테넌시를 지원하고 데이터 중복을 제거함.

---

## 변경 사항

### 1. 스키마 확장

`table_type_columns`에 누락된 컬럼 추가:

| 컬럼명 | 타입 | 설명 |
|--------|------|------|
| column_label | VARCHAR(200) | 컬럼 라벨 |
| reference_table | VARCHAR(100) | 참조 테이블 |
| reference_column | VARCHAR(100) | 참조 컬럼 |
| display_column | VARCHAR(100) | 표시 컬럼 |
| code_category | VARCHAR(100) | 코드 카테고리 |
| code_value | VARCHAR(100) | 코드 값 |
| description | TEXT | 설명 |
| is_visible | BOOLEAN | 표시 여부 |
| web_type | VARCHAR(50) | 웹 타입 (레거시) |

### 2. 데이터 마이그레이션

```
column_labels (company_code 없음)
        ↓
table_type_columns (company_code = '*')
```

**통합 기준**:
- `column_labels` 데이터 → `company_code = '*'` (공통 설정)
- 기존 회사별 설정 → **유지**
- 회사별 빈 값 → 공통(*)에서 복사 (COALESCE)

### 3. 코드 수정

총 **12개 파일** 수정:

| 파일 | 주요 변경 |
|------|----------|
| tableManagementService.ts | SELECT/INSERT → table_type_columns |
| screenManagementService.ts | JOIN column_labels → table_type_columns |
| entityJoinService.ts | 엔티티 조인 쿼리 변경 |
| ddlExecutionService.ts | DDL 시 column_labels 제거 |
| screenGroupController.ts | 화면 그룹 쿼리 변경 |
| tableManagementController.ts | 컬럼 관리 쿼리 변경 |
| adminController.ts | 스키마 조회 변경 |
| flowController.ts | 플로우 컬럼 조회 변경 |
| entityReferenceController.ts | 엔티티 참조 변경 |
| masterDetailExcelService.ts | 엑셀 처리 변경 |
| categoryTreeService.ts | 카테고리 트리 변경 |
| dataService.ts | 데이터 서비스 변경 |

---

## 백업

```
column_labels_backup_20260126  -- 원본 백업
table_type_columns_backup_20260126  -- 마이그레이션 전 백업
```

---

## 남은 작업

- [ ] 기능 테스트 (엔티티 조인, 화면 설정, 컬럼 라벨)
- [ ] 1-2주 모니터링
- [ ] `column_labels` 테이블 삭제
- [ ] `ddl.ts`에서 systemTables 배열 정리

---

## 롤백 방법

문제 발생 시:

```sql
-- 1. 백업에서 복원
DROP TABLE IF EXISTS column_labels;
CREATE TABLE column_labels AS SELECT * FROM column_labels_backup_20260126;

-- 2. table_type_columns 복원
DROP TABLE IF EXISTS table_type_columns;
CREATE TABLE table_type_columns AS SELECT * FROM table_type_columns_backup_20260126;
```

+ Git에서 코드 롤백 필요

---

## 결과

| 항목 | Before | After |
|------|--------|-------|
| 테이블 수 | 2개 | 1개 |
| 멀티테넌시 | 부분 지원 | 완전 지원 |
| 데이터 중복 | 있음 | 없음 |
