단어·용어·도메인¶
ThinkERD의 표준화는 단어(Word) → 용어(Term) → 도메인(Domain) 3계층으로 구성됩니다. 각 계층을 상세히 설명합니다.
표준 단어 (Standard Word)¶
논리명과 물리명 매핑의 **최소 단위**입니다. 모든 용어는 표준 단어의 조합으로 생성됩니다.
단어 속성¶
| 속성 | 설명 | 예시 |
|---|---|---|
| 논리명 | 한국어 단어 | 고객 |
| 물리 약어 | 영문 약어 | CUST |
| 영문 전체명 | Full English Name | Customer |
| 동의어 | 같은 의미의 다른 표현 | 클라이언트, 거래처 |
| 금칙어 여부 | 사용 금지 단어 지정 | 클라 → 금칙, 고객 사용 권장 |
단어 등록 예시¶
| 논리명 | 물리 약어 | 영문명 | 설명 |
|---|---|---|---|
| 고객 | CUST | Customer | 거래 관계의 상대방 |
| 번호 | NO | Number | 식별자 연번 |
| 일자 | DT | Date | 날짜 |
| 금액 | AMT | Amount | 통화 단위 금액 |
| 코드 | CD | Code | 분류 체계 코드 |
| 명 | NM | Name | 이름/명칭 |
금칙어 관리
프로젝트 내에서 사용을 금지해야 하는 단어를 **금칙어**로 지정하고 대체어를 제안할 수 있습니다. 예: 클라 → 금칙 → 대체어: 고객
표준 용어 (Standard Term)¶
단어를 조합하여 만든 **속성명 표준**입니다. 컬럼에 직접 적용되는 단위입니다.
용어 생성 규칙¶
용어의 물리명은 구성 단어의 물리 약어를 _로 연결하여 자동 생성됩니다.
고객번호 → 고객(CUST) + 번호(NO) → CUST_NO
주문일자 → 주문(ORD) + 일자(DT) → ORD_DT
상품금액 → 상품(PROD) + 금액(AMT) → PROD_AMT
용어 속성¶
| 속성 | 설명 |
|---|---|
| 논리 용어 | 한국어 용어명 |
| 물리 용어 | 단어 조합으로 자동 생성된 영문명 |
| 바인딩 도메인 | 이 용어에 적용되는 도메인 |
| 설명 | 용어에 대한 정의 |
FMM 기반 자동 분석¶
ThinkERD는 **FMM(Fast Multi-pattern Matching) 엔진**을 내장하여, 한국어 논리명을 입력하면 등록된 표준 단어를 기반으로 **물리명을 자동 생성**합니다.
이 기능은 엔터티 편집 중 컬럼 논리명을 입력할 때 **실시간으로 동작**합니다.
표준 도메인 (Standard Domain)¶
데이터 타입, 길이, 제약조건을 표준화한 **타입 규격**입니다.
도메인 속성¶
| 속성 | 설명 | 예시 |
|---|---|---|
| 도메인명 | 도메인 식별 이름 | 금액, 코드, 일자 |
| Generic Type | 기본 데이터 타입 | DECIMAL, VARCHAR, DATE |
| 길이/정밀도 | Length / Scale | 18,2 |
| 기본값 | Default Value | 0 |
Multi-DBMS 지원¶
도메인은 **DBMS별 타입 슬롯**을 보유합니다. 같은 도메인이 DBMS에 따라 적절한 물리 타입으로 변환됩니다.
| 도메인 | Oracle | PostgreSQL | MySQL |
|---|---|---|---|
| 금액 | NUMBER(18,2) | NUMERIC(18,2) | DECIMAL(18,2) |
| 코드 | VARCHAR2(20) | VARCHAR(20) | VARCHAR(20) |
| 일자 | DATE | DATE | DATE |
| 대용량텍스트 | CLOB | TEXT | LONGTEXT |
도메인을 용어에 바인딩
도메인을 용어에 바인딩하면, 해당 용어가 적용된 모든 컬럼에 **자동으로 데이터 타입이 적용**됩니다. CUST_NO에 코드 도메인을 바인딩하면 → VARCHAR(20).
표준 적용 흐름¶
sequenceDiagram
participant U as 사용자
participant E as 엔터티 편집기
participant S as Standard Store
participant F as FMM 엔진
U->>E: 컬럼 논리명 입력 "고객번호"
E->>S: analyzeLogicalName("고객번호")
S->>F: 토큰 분석
F-->>S: [고객(CUST), 번호(NO)]
S-->>E: 물리명 = "CUST_NO"
E->>S: 매칭 용어 조회
S-->>E: 도메인 = VARCHAR(20)
E-->>U: 자동 완성 제안 - 사용자가 컬럼 **논리명**을 입력합니다
- FMM 엔진이 표준 단어로 **토큰 분석**합니다
- 매칭되는 표준 용어가 있으면 **물리명과 도메인을 자동 적용**합니다