핵심 인사이트 (3줄 요약)
- 본질: 참조 데이터(Reference Data)는 성별(M/F)·상태(ACTIVE/INACTIVE)·지역코드 등 비즈니스 규칙에 의해 정해진 코드 값의 집합이며, 코드 테이블(Code Table)로 관리한다.
- 가치: 코드를 하드코딩하면 변경 시 소스코드 수정이 필요하지만, 코드 테이블로 분리하면 DB 데이터 수정만으로 코드 값을 추가·변경할 수 있고 전사 표준화가 가능하다.
- 판단 포인트: 코드 테이블 설계 시 통합 코드 테이블(하나의 테이블에 모든 코드 유형) vs **개별 코드 테이블(유형별 별도 테이블)**의 트레이드오프를 이해해야 한다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ 코드 테이블 예시 │
├───────────────────────────────────────────────────────┤
│ [통합 코드 테이블] │
│ ┌──────────┬──────┬──────┬────────┐ │
│ │ 코드유형 │ 코드 │ 코드명│ 정렬순서│ │
│ ├──────────┼──────┼──────┼────────┤ │
│ │ GENDER │ M │ 남성 │ 1 │ │
│ │ GENDER │ F │ 여성 │ 2 │ │
│ │ STATUS │ ACT │ 활성 │ 1 │ │
│ │ STATUS │ INA │ 비활성│ 2 │ │
│ └──────────┴──────┴──────┴────────┘ │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: 코드 테이블은 사전의 약어 색인이다. "M=남성, F=여성"처럼 약속된 코드의 의미를 한 곳에서 관리한다.
Ⅱ. 아키텍처 및 핵심 원리
통합 vs 개별 코드 테이블
| 방식 | 장점 | 단점 |
| 통합 | 테이블 수 적음, 관리 단순 | 코드 유형 혼재 |
| 개별 | 타입 안전, FK 제약 가능 | 테이블 수 증가 |
- 📢 섹션 요약 비유: 통합은 모든 약이 한 서랍(편리하지만 혼동 위험), 개별은 약 종류별 서랍(정확하지만 서랍 많음).
Ⅲ. 비교 및 연결
| 비교 | 하드코딩 | 코드 테이블 |
| 변경 | 소스 수정+배포 | DB 수정만 |
| 표준화 | 불가 | 전사 표준 |
| 다국어 | 어려움 | 코드명 다국어 지원 |
Ⅳ. 실무 적용 및 기술사 판단
코드 테이블 설계 원칙
- 코드 값은 의미 있는 약어 사용 (1, 2 대신 ACT, INA).
- 코드 유효기간(시작일·종료일) 컬럼 추가.
- 캐시 활용 (코드 테이블은 자주 변경되지 않으므로).
Ⅴ. 기대효과 및 결론
참조 데이터 관리는 데이터 표준화·MDM의 기초이며, 코드 테이블의 체계적 관리가 전사 데이터 품질의 출발점이다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| 코드 테이블 | 참조 데이터의 저장소 |
| MDM | 참조 데이터를 포함한 마스터 관리 |
| 데이터 표준 | 코드 값의 전사 표준화 |
| Enum | 프로그래밍 언어의 코드 값 표현 |
| 캐시 | 코드 테이블의 성능 최적화 |
📈 관련 키워드 및 발전 흐름도
[하드코딩 (1990s)]
│
▼
[코드 테이블 (DB 관리, 2000s)]
│
▼
[데이터 표준 관리 (메타데이터, 2010s)]
│
▼
[MDM + 참조 데이터 통합 관리 (2015~)]
│
▼
[현재: 데이터 카탈로그 — 코드 메타데이터 자동 관리]
👶 어린이를 위한 3줄 비유 설명
- 코드 테이블은 약어 사전이에요. "M=남자, F=여자"처럼 약속된 의미를 정해요.
- 사전이 없으면 "M이 뭐지?"라고 사람마다 다르게 이해할 수 있어요.
- 사전(코드 테이블) 하나로 모든 사람이 같은 뜻으로 이해할 수 있답니다!