현재 선택한 데이터 아키텍처 과정

DAsP 이론 학습

이론 목록으로 돌아가기

도메인과 데이터 형식 표준

표준 도메인은 여러 데이터 항목이 공유하는 값의 형식과 허용 영역을 정의한다. 데이터 타입과 길이뿐 아니라 정밀도·소수 자릿수·단위·범위·표현 형식·검증 규칙을 함께 설계하고, 논리 도메인과 DBMS별 물리 타입의 대응을 분리해야 한다.

예상 읽기 6

핵심 요약

도메인은 VARCHAR(20) 같은 물리 타입의 별칭이 아니다. 업무적으로 같은 종류의 값이 공유해야 할 데이터 타입, 길이, 정밀도, 단위, 값 범위, 표현 형식과 검증 규칙을 묶어 재사용하는 표준이다. 논리 도메인은 기술 독립적으로 정의하고 실제 DBMS의 물리 타입과 매핑한다.

학습 목표

  • 도메인의 구성 항목과 데이터 타입만 지정한 정의의 한계를 설명한다.
  • 논리 도메인과 물리 데이터 타입을 구분한다.
  • 문자·숫자·일자·코드 도메인의 설계 기준을 사례에 적용한다.
  • DAP 표준화 정의서 형식으로 적절한 도메인을 작성한다.

1. 개념 설명

1.1 도메인의 의미

도메인은 속성이나 컬럼에 들어갈 수 있는 값의 공통 영역이다. 예를 들어 주문금액, 결제금액, 환불금액은 업무 의미가 서로 달라도 모두 원화 금액이라는 공통 값 규칙을 사용할 수 있다. 반대로 이름이 비슷해도 단위나 허용 범위가 다르면 같은 도메인을 강제로 공유해서는 안 된다.

1.2 도메인 정의 항목

구분주요 항목확인 질문
의미도메인명, 정의, 분류어떤 종류의 값을 공통으로 표현하는가
자료형문자·숫자·일자·불리언 등 논리 타입계산·정렬·날짜 연산의 성격은 무엇인가
크기길이, 전체 자릿수, 소수 자릿수최댓값과 향후 증가를 수용하는가
단위원, 건, %, km, 초 등값만 보아도 단위를 오해하지 않는가
값 영역최소·최대, 허용 목록, 정규식, 형식어떤 값이 유효하고 무효한가
표현저장 형식과 화면·교환 표현저장값과 표시값을 혼동하지 않는가
생명주기상태, 버전, 적용일, 대체 도메인변경·폐기 시 사용처를 추적할 수 있는가

널 허용 여부는 조직의 표준 도메인에 포함할 수도 있지만, 같은 도메인을 사용하는 속성마다 필수 여부가 다를 수 있다. 따라서 업무 필수성은 원칙적으로 속성의 선택성 또는 컬럼 제약과 함께 판단하고, 도메인만 보고 자동 결정하지 않는다.

2. 도메인의 분류와 관계

2.1 논리 도메인과 물리 타입

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
논리 도메인: 원화금액(0 이상, 원 단위, 최대 15자리)
          ↓ DBMS별 매핑
Oracle NUMBER(15,0) / PostgreSQL NUMERIC(15,0) / 기타 대응 타입

논리 도메인을 특정 DBMS 문법으로만 정의하면 기술 변경 시 표준 전체가 흔들린다. 반대로 물리 매핑이 없으면 실제 컬럼 적용을 자동 점검하기 어렵다.

2.2 대표 도메인 유형

유형설계 예주의점
식별번호문자 12자리, 영문 대문자·숫자숫자로 저장하면 앞자리 0이 소실될 수 있음
금액숫자 15자리, 소수 0자리, 원, 0 이상음수 사용 여부와 환율·통화 단위를 확인
비율숫자 5자리, 소수 2자리, 0~100%01 비율인지 0100 백분율인지 구분
일자논리 DATE, 달력상 유효한 일자YYYYMMDD는 교환 표현일 수 있으며 저장 타입과 다름
일시타임존 포함 여부, 정밀도서버 현지시각과 UTC 기준을 혼동하지 않음
여부Y/N 또는 불리언1/0, Y/N, true/false를 임의 혼용하지 않음
코드코드 그룹 참조, 허용 코드값길이·타입만으로 코드 의미가 완성되지 않음

2.3 도메인과 코드

코드 도메인은 해당 항목이 특정 코드 그룹을 사용한다는 사실을 연결한다. CHAR(1)만으로는 Y/N, 회원상태, 성별 중 무엇인지 알 수 없다. 허용 코드값과 그 의미·유효기간은 표준 코드에서 관리하고, 도메인은 데이터 형식과 코드 그룹 연결을 제공한다.

3. 도메인 설계 흐름

  1. 같은 값 성격을 가진 용어와 속성을 묶는다.
  2. 실제 값의 범위, 최대 크기, 단위와 계산 성격을 확인한다.
  3. 논리 타입과 길이·정밀도·허용값·표현 규칙을 정한다.
  4. 지나치게 범용적이거나 특정 컬럼에만 종속된 도메인인지 검토한다.
  5. DBMS별 물리 타입과 검증 규칙을 매핑한다.
  6. 표준 용어·모델 속성·컬럼 사용처를 연결하고 변경 영향을 관리한다.

도메인을 너무 크게 묶으면 문자100처럼 의미 없는 공통 타입이 되고, 지나치게 세분하면 컬럼마다 전용 도메인이 생겨 재사용성이 사라진다. 값 성격과 관리 규칙이 실제로 같은 단위로 설계한다.

4. 사례와 정의서 작성

4.1 후보 도메인 판정

항목잘못된 판정적절한 판단
휴대전화번호숫자형 11자리연산 대상이 아니며 앞자리 0과 국가번호·구분자 규칙을 고려해 문자형
할인율정수 3자리소수 정밀도와 0100 또는 01의 의미를 명시
생년월일문자 8자리만 지정논리 일자와 유효 달력값, 교환 시 YYYYMMDD 형식을 구분
주문상태코드문자 2자리연결 코드 그룹과 허용값·유효기간을 함께 관리

4.2 DAP 실기형 예시

요구사항: “원 단위로 저장하며 0 이상 999,999,999,999까지 허용되는 주문 총액”

  • 도메인명: 원화금액12
  • 정의: 원화로 표현하는 0 이상 12자리 이하의 정수 금액
  • 논리 타입: NUMBER
  • 전체·소수 자릿수: 12, 0
  • 단위:
  • 허용 범위: 0~999,999,999,999
  • 물리 매핑 예: NUMBER(12,0)

실기 답안에서는 문제에 주어진 최대값·소수 처리·음수 허용 여부를 근거로 작성한다. 지문에 없는 통화 환산 규칙을 임의로 추가하지 않는다.

5. 비교와 구분

구분표준 용어표준 도메인물리 데이터 타입
질문이 데이터가 업무에서 무엇을 뜻하는가어떤 값 형식과 영역을 공유하는가특정 DBMS에서 어떻게 저장하는가
기술 의존성낮음논리 정의는 낮음높음
주문금액원화금액12NUMBER(12,0)
관계하나의 용어에 도메인을 연결여러 용어가 재사용 가능도메인별 DBMS 매핑

시험 판단 포인트

  • 데이터 타입과 길이만 같다고 같은 도메인은 아니다. 단위·범위·표현·검증 규칙도 비교한다.
  • 도메인은 업무 용어의 정의를 대신하지 않는다.
  • 논리 도메인과 DBMS 종속 물리 타입을 분리한다.
  • 전화번호·사업자번호 같은 식별 문자열은 산술 연산 여부와 앞자리 0을 고려한다.
  • 코드형 항목은 코드 그룹과 허용값 연결이 필요하다.

자주 틀리는 부분

  • 모든 문자열을 길이만 다른 문자형 도메인으로 묶는다.
  • 백분율 25%를 25로 저장하는지 0.25로 저장하는지 명시하지 않는다.
  • 일자를 문자형으로 저장하면서 달력 유효성 규칙을 생략한다.
  • 같은 도메인을 사용하는 모든 속성의 널 허용 여부가 같다고 단정한다.
스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01[객관식] 표준 도메인 정의로 가장 충실한 것은? - A. 고객번호: 고객을 나타내는 번호 - B. 문자20: 모든 문자를 20자리까지 저장 - C. 원화금액12: 0 이상 12자리 정수, 단위 원, 물리 매핑 NUMBER(12,0) - D. PAYAMT: 결제 화면에서 사용하는 컬럼
정답 및 해설

정답: C

  • C는 의미 분류, 자릿수, 단위, 허용 범위와 물리 매핑을 함께 제시한다.
  • A는 용어 정의, B는 지나치게 범용적이고 값 규칙이 부족하며, D는 특정 구현 컬럼에 종속된다.
02[객관식] 휴대전화번호를 숫자형보다 문자형으로 설계하는 가장 타당한 이유는? - A. 문자형이 항상 저장 공간이 작기 때문이다. - B. 산술 연산 대상이 아니고 앞자리 0·국가번호·표현 규칙을 보존해야 하기 때문이다. - C. 숫자형은 유일성 제약을 만들 수 없기 때문이다. - D. 문자형만 인덱스를 생성할 수 있기 때문이다.
정답 및 해설

정답: B

  • 전화번호는 계산 대상이 아니며 앞자리 0과 +82 같은 표현을 보존해야 한다.
  • A는 항상 참이 아니고, C·D는 데이터 타입과 무관한 잘못된 설명이다.
03[참·거짓] 두 속성이 동일한 논리 도메인을 사용하면 반드시 동일하게 필수 입력이어야 한다.
정답 및 해설

정답: 거짓

  • 도메인은 공통 값 규칙을 정의한다. 필수 여부는 엔터티·속성의 업무 규칙에 따라 달라질 수 있으므로 별도로 판정한다.
04[사례 판단] 할인율을 NUMBER(5,2)로 정했다. 도메인 정의를 완성하려면 추가로 확인할 항목을 세 가지 이상 제시하라.
정답 및 해설

모범 답안

  • 저장 의미가 0100인지 01인지, 허용 최소·최대값, 단위가 %인지, 반올림 규칙, 음수·100 초과 허용 여부와 널 처리 기준을 확인한다.
  • NUMBER(5,2)만으로는 값의 의미와 유효 범위가 확정되지 않는다.
05[정의서 작성] 주문일자 도메인의 논리 정의와 YYYYMMDD 형식의 대외 인터페이스 표현을 구분해 작성하라.
정답 및 해설

모범 답안

  • 논리 도메인: 달력상 유효한 연·월·일을 나타내는 날짜 값으로 정의하고 논리 타입은 DATE로 둔다.
  • 인터페이스 표현: 전송 시 구분자 없는 8자리 YYYYMMDD를 사용하며 수신 시 실제 달력 날짜인지 검증한다.
  • 저장 개념과 교환 문자열 형식을 같은 것으로 간주하지 않는다.