핵심 인사이트 (3줄 요약)
- 본질: 도메인(Domain)은 관계형 데이터베이스의 속성이 가질 수 있는 합법적인 원자값(Atomic Value)들의 집합이다.
- 가치: 도메인은 데이터 타입보다 더 의미 있는 제약 개념으로, 잘못된 값의 입력을 막아 무결성을 지킨다.
- 판단: 도메인을 잘 정의해야 CHECK 제약, ENUM, 형 변환, NULL 정책까지 일관되게 설계할 수 있다.
Ⅰ. 개요 및 필요성
속성은 아무 값이나 받을 수 없고, 허용된 범위 안에서만 값을 가져야 한다. 도메인은 이 허용 범위를 정의하는 보이지 않는 울타리다.
정확한 도메인을 두면 잘못된 입력을 초기에 막을 수 있고, 검색과 비교도 일관되게 할 수 있다.
- 📢 섹션 요약 비유: 사과 바구니에는 사과만 넣어야 하고, 도메인은 바구니에 무엇을 넣을지 정해 주는 규칙이다.
Ⅱ. 아키텍처 및 핵심 원리
Attribute
↓
Domain
↓
Allowed Atomic Values
↓
Integrity Check
| 개념 | 의미 |
|---|---|
| Domain | 속성의 합법적인 값 집합 |
| Atomic Value | 더 쪼개지지 않는 원자값 |
| Constraint | 도메인 위반을 막는 규칙 |
도메인은 단순 타입이 아니다. 예를 들어 INT 타입이라도 나이는 음수가 될 수 없고, 월급은 0보다 커야 하므로 의미적 제약까지 고려해야 한다.
- 📢 섹션 요약 비유: 숫자라고 다 같은 숫자가 아니라, 어떤 칸에는 나이만, 어떤 칸에는 월급만 들어갈 수 있다.
Ⅲ. 비교 및 연결
| 구분 | Domain | Data Type | Constraint |
|---|---|---|---|
| 범위 | 의미적 허용값 | 저장 형식 | 검증 규칙 |
| 역할 | 값의 집합 정의 | 표현 방식 | 위반 차단 |
| 예시 | 성별, 연령, 금액 | INT, VARCHAR | CHECK, NOT NULL |
도메인은 타입과 제약을 이어 주는 개념이다. 타입만 맞고 의미가 틀리면 데이터 품질은 여전히 나빠진다.
- 📢 섹션 요약 비유: 같은 크기 컵이라도 물만 담을 수 있는지, 주스도 되는지는 규칙이 다르다.
Ⅳ. 실무 적용 및 기술사 판단
체크리스트
- 속성별 허용 값 범위를 정의했는가?
- CHECK 제약이나 ENUM으로 도메인을 표현했는가?
- NULL 허용 여부를 명확히 했는가?
- 형 변환과 문자 집합을 일관되게 관리하는가?
- 도메인 위반이 입력 단계에서 차단되는가?
안티패턴
- 타입만 맞으면 된다고 생각하는 설계
- 의미 없는 자유 입력을 허용하는 설계
- 도메인 규칙을 애플리케이션 코드에만 숨기는 설계
- NULL 정책 없이 필드만 쌓는 설계
기술사 관점에서는 도메인을 단순 데이터 타입으로 축소하지 말아야 한다. 도메인은 데이터 의미와 무결성을 함께 담는 설계 개념이다.
- 📢 섹션 요약 비유: 크레파스 상자에 있는 색만 써야 그림이 망가지지 않는다.
Ⅴ. 기대효과 및 결론
도메인을 명확히 하면 잘못된 데이터가 줄고, 통계와 검색도 안정적이 된다. 결국 도메인은 데이터 품질의 출발점이다.
결론적으로 도메인은 속성이 가질 수 있는 의미 있는 값의 경계다.
- 📢 섹션 요약 비유: 상자에 넣을 수 있는 장난감 종류를 먼저 정해 두는 일이다.
관련 개념 맵
Attribute
↓
Domain
↓
Constraint
↓
Data Integrity
관련 키워드 및 발전 흐름도
원자값
↓
도메인
↓
제약 조건
↓
데이터 무결성
어린이를 위한 3줄 비유 설명
바구니에는 아무거나 넣지 못해요.
도메인은 넣을 수 있는 것만 정해 주는 규칙이에요.
그래야 데이터가 헷갈리지 않아요.