본문 바로가기
자격증 준비/SQLD

도메인과 NULL 차이 쉽게 이해하기: SQLD 데이터 모델링 기초 정리

by 코딩사무소장 2026. 3. 13.
반응형

도메인과 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만 가능 휴학시작일이 아직 없음
핵심 질문 무슨 값이 들어올 수 있나? 값이 지금 있나?

초보자가 자주 하는 실수

자주 하는 실수 1

NULL을 0이나 빈 문자열과 같은 의미로 생각하는 것

NULL은 값이 없는 상태이지, 0이나 공백 문자가 아닙니다.

자주 하는 실수 2

도메인을 단순 데이터 타입과 완전히 같은 개념으로 보는 것

데이터 타입은 숫자, 문자, 날짜 같은 기술적 형식이고, 도메인은 그보다 더 업무적인 허용 범위까지 포함한 개념으로 이해하는 편이 좋습니다.

자주 하는 실수 3

NULL이 허용되면 아무 문제 없는 값이라고 생각하는 것

NULL 허용 여부는 업무적으로 정말 값이 없어도 되는 속성인지 보고 판단해야 합니다. 예를 들어 기본키처럼 반드시 있어야 하는 값은 NULL이 허용되면 안 됩니다.

비전공자는 이렇게 외우면 쉽다

  • 도메인 = 이 속성에 어떤 값이 들어올 수 있는가
  • NULL = 지금 값이 있는가 없는가
  • 도메인은 규칙, NULL은 상태라고 구분하면 쉽습니다.

핵심 요약

  • 도메인은 속성이 가질 수 있는 값의 범위와 규칙입니다.
  • NULL은 값이 없는 특별한 상태입니다.
  • NULL은 0이나 빈 문자열과 같은 개념이 아닙니다.
  • 도메인과 NULL은 서로 다른 관점의 개념입니다.
  • 데이터 모델링에서는 값의 규칙과 NULL 허용 여부를 함께 생각해야 합니다.

FAQ

도메인은 데이터 타입과 같은 말인가요?

완전히 같지는 않습니다. 데이터 타입이 기술적 형식이라면, 도메인은 허용 값 범위와 업무 규칙까지 포함하는 개념으로 이해하면 좋습니다.

NULL은 0과 같은 의미인가요?

아닙니다. 0은 값이 있는 숫자이고, NULL은 값 자체가 없는 상태입니다.

모든 속성에 NULL이 들어갈 수 있나요?

아닙니다. 업무적으로 반드시 필요한 값이나 기본키 같은 속성은 NULL이 허용되면 안 됩니다.

도메인은 왜 중요한가요?

잘못된 값 입력을 줄이고 데이터 품질과 일관성을 유지하는 데 도움이 되기 때문입니다.

SQLD에서도 도메인과 NULL이 자주 나오나요?

네. 속성, 식별자, 데이터 모델링 기초 개념과 함께 자주 연결되어 나옵니다.

반응형