도메인과 NULL 차이 쉽게 이해하기: SQLD 데이터 모델링 기초 정리
SQLD나 데이터 모델링을 공부하다 보면 도메인과 NULL 개념이 함께 등장합니다. 그런데 처음에는 도메인이 정확히 무엇인지, NULL은 단순히 빈값인지 헷갈리기 쉽습니다. 결론부터 말하면 도메인은 속성이 가질 수 있는 값의 범위와 규칙이고, NULL은 값이 없거나 아직 정해지지 않았음을 나타내는 상태입니다. 이 글에서는 SQL 초보자와 SQLD 준비생이 헷갈리지 않도록 도메인과 NULL의 의미, 차이, 예시, 자주 하는 실수까지 한 번에 정리해보겠습니다.
- 도메인이 무엇인지 잘 감이 안 오는 분
- NULL을 빈 문자열이나 0과 같은 의미로 생각했던 분
- SQLD 데이터 모델링 기초 개념을 정리하고 싶은 분
- 속성과 값의 범위를 더 구조적으로 이해하고 싶은 비전공자
도메인이란 무엇인가
도메인은 속성이 가질 수 있는 값의 집합 또는 허용 범위입니다.
쉽게 말하면 어떤 속성에 아무 값이나 들어가는 것이 아니라, “이 속성에는 이런 종류의 값만 들어와야 한다”는 규칙이 있다고 생각하면 됩니다.
도메인은 속성의 입력 규칙이라고 이해하면 가장 쉽습니다.
도메인 예시
- 성별: 남, 여
- 학년: 1, 2, 3, 4
- 주문상태: 결제완료, 배송중, 배송완료, 취소
- 나이: 0 이상 정수
이런 식으로 각 속성은 자신만의 값 범위를 가질 수 있습니다.
왜 도메인이 중요한가
도메인을 정해두면 잘못된 값이 들어오는 것을 줄일 수 있고, 데이터 품질도 더 안정적으로 관리할 수 있습니다.
- 입력 가능한 값의 범위를 제한할 수 있다
- 이상한 값이나 실수를 줄일 수 있다
- 데이터 일관성을 유지하기 쉽다
- 업무 규칙을 명확하게 반영할 수 있다
예를 들어 학년 속성에 7학년, -1학년 같은 값이 들어가면 안 된다면, 도메인을 통해 그 범위를 제한하는 것이 자연스럽습니다.
NULL이란 무엇인가
NULL은 값이 없음을 나타내는 특별한 상태입니다.
여기서 중요한 점은 NULL이 단순히 0이나 빈 문자열과 같지 않다는 것입니다. NULL은 “아직 모름”, “입력 안 됨”, “해당 없음” 같은 의미를 가질 수 있습니다.
NULL은 0도 아니고, 공백도 아니고, 문자 ''도 아닙니다. 값 자체가 없는 상태라고 이해해야 합니다.
NULL 예시
- 퇴사일: 아직 퇴사하지 않았다면 NULL
- 배송완료일: 아직 배송 전이라면 NULL
- 중간고사 점수: 아직 시험을 안 봤다면 NULL
즉, NULL은 단순한 숫자나 문자가 아니라 “현재 값이 없다”는 상태입니다.
도메인과 NULL 차이를 한 줄로 정리하면
도메인은 들어올 수 있는 값의 규칙이고, NULL은 값이 없는 상태입니다.
즉, 도메인은 “무슨 값이 가능한가”를 정하는 개념이고, NULL은 “지금 값이 존재하는가”를 보는 개념이라고 구분하면 쉽습니다.
예제로 보면 더 쉽게 이해된다
예를 들어 학생 엔터티에 아래 속성이 있다고 가정해보겠습니다.
학생
- 학번
- 이름
- 학년
- 휴학여부
- 휴학시작일
여기서 각 속성을 보면:
- 학년 도메인: 1, 2, 3, 4
- 휴학여부 도메인: Y, N
- 휴학시작일: 날짜 형식
그리고 휴학하지 않은 학생이라면 휴학시작일은 NULL일 수 있습니다.
즉, 휴학시작일이라는 속성은 날짜라는 도메인을 가지지만, 실제 값은 상황에 따라 NULL일 수도 있다는 것입니다.
도메인과 NULL을 표로 비교하면
| 구분 | 도메인 | NULL |
|---|---|---|
| 의미 | 속성이 가질 수 있는 값의 범위 | 값이 없는 상태 |
| 관점 | 허용 가능한 값 규칙 | 현재 값 존재 여부 |
| 예시 | 학년은 1~4만 가능 | 휴학시작일이 아직 없음 |
| 핵심 질문 | 무슨 값이 들어올 수 있나? | 값이 지금 있나? |
초보자가 자주 하는 실수
NULL을 0이나 빈 문자열과 같은 의미로 생각하는 것
NULL은 값이 없는 상태이지, 0이나 공백 문자가 아닙니다.
도메인을 단순 데이터 타입과 완전히 같은 개념으로 보는 것
데이터 타입은 숫자, 문자, 날짜 같은 기술적 형식이고, 도메인은 그보다 더 업무적인 허용 범위까지 포함한 개념으로 이해하는 편이 좋습니다.
NULL이 허용되면 아무 문제 없는 값이라고 생각하는 것
NULL 허용 여부는 업무적으로 정말 값이 없어도 되는 속성인지 보고 판단해야 합니다. 예를 들어 기본키처럼 반드시 있어야 하는 값은 NULL이 허용되면 안 됩니다.
비전공자는 이렇게 외우면 쉽다
- 도메인 = 이 속성에 어떤 값이 들어올 수 있는가
- NULL = 지금 값이 있는가 없는가
- 도메인은 규칙, NULL은 상태라고 구분하면 쉽습니다.
핵심 요약
- 도메인은 속성이 가질 수 있는 값의 범위와 규칙입니다.
- NULL은 값이 없는 특별한 상태입니다.
- NULL은 0이나 빈 문자열과 같은 개념이 아닙니다.
- 도메인과 NULL은 서로 다른 관점의 개념입니다.
- 데이터 모델링에서는 값의 규칙과 NULL 허용 여부를 함께 생각해야 합니다.
FAQ
도메인은 데이터 타입과 같은 말인가요?
완전히 같지는 않습니다. 데이터 타입이 기술적 형식이라면, 도메인은 허용 값 범위와 업무 규칙까지 포함하는 개념으로 이해하면 좋습니다.
NULL은 0과 같은 의미인가요?
아닙니다. 0은 값이 있는 숫자이고, NULL은 값 자체가 없는 상태입니다.
모든 속성에 NULL이 들어갈 수 있나요?
아닙니다. 업무적으로 반드시 필요한 값이나 기본키 같은 속성은 NULL이 허용되면 안 됩니다.
도메인은 왜 중요한가요?
잘못된 값 입력을 줄이고 데이터 품질과 일관성을 유지하는 데 도움이 되기 때문입니다.
SQLD에서도 도메인과 NULL이 자주 나오나요?
네. 속성, 식별자, 데이터 모델링 기초 개념과 함께 자주 연결되어 나옵니다.
'자격증 준비 > SQLD' 카테고리의 다른 글
| 서브쿼리란 무엇인가: SQL 초보자도 이해하는 개념과 종류 정리 (0) | 2026.03.13 |
|---|---|
| 반정규화란 무엇인가: 정규화와 차이 쉽게 이해하기 (0) | 2026.03.13 |
| 관계(Relationship)란 무엇인가: 1:1, 1:N, N:M 쉽게 이해하기 (0) | 2026.03.12 |
| 엔터티와 속성 차이 쉽게 이해하기: 데이터 모델링 초보자용 정리 (0) | 2026.03.12 |
| 식별자 종류 정리: 기본키, 후보키, 슈퍼키 차이 쉽게 이해하기 (3) | 2026.03.12 |