[]
        
(Showing Draft Content)

데이터 동작 설정

데이터 동작 설정은 열 값이 구문 분석 이후 어떻게 유효성 검사되고, 변환되고, 인덱싱되고, 저장되는지를 제어합니다.

식별자와 형식을 정의하는 핵심 구조 설정과 달리, 동작 설정은 열이 데이터 작업에 어떻게 참여하는지를 정의합니다.

이러한 설정은 다음에 영향을 줍니다.

  • 데이터 무결성

  • 값 정규화

  • 레코드 구조 변환

  • 쿼리 성능

이 설정들은 데이터 매니저 계층에서 동작하며 특정 View와는 독립적입니다.

required

새 레코드 삽입 시 해당 열을 필수 항목으로 지정합니다.

columns: {
    name: {
        dataType: "string",
        required: true
    }
}

필수 열에 값이 없는 상태로 새 행이 생성되면 해당 레코드는 유효하지 않은 것으로 간주됩니다.

이 제약 조건은 데이터 계층에 적용되며 UI 유효성 검사에만 국한되지 않습니다.

readonly

값이 설정된 이후 열 값을 수정할 수 없도록 합니다.

columns: {
    id: {
        dataType: "number",
        readonly: true
    }
}

읽기 전용 열은:

  • 데이터 업데이트 작업으로 변경할 수 없습니다.

  • 수식 및 관계에는 계속 참여합니다.

읽기 전용 설정은 레코드 생성 시 초기값 설정을 막지는 않습니다.

defaultValue

새 행 삽입 시 기본값을 정의합니다.

columns: {
    status: {
        dataType: "string",
        defaultValue: "New"
    }
}

기본값은 다음 중 하나일 수 있습니다.

  • 상수 값

  • 수식 표현식

기본값은 삽입 시 해당 필드가 명시적으로 제공되지 않은 경우에만 적용됩니다.

dataPattern

문자열 값이 형식이 지정된 값으로 구문 분석되는 방식을 정의합니다.

columns: {
    birthday: {
        dataType: "date",
        dataPattern: "dd/MM/yyyy"
    }
}

지원되는 구문 분석 시나리오 예:

  • 날짜 형식 문자열

  • 사용자 지정 소수점 구분 기호

  • Boolean 참/거짓 매핑(예: "Yes|No")

dataPattern은 구문 분석 동작에만 영향을 줍니다.

변환 이후 내부적으로 저장되는 값은 변경하지 않습니다.

dataMap

저장된 값을 표시 친화적인 값으로 매핑합니다.

columns: {
    product: {
        dataMap: {
            1: "Product-A",
            2: "Product-B"
        }
    }
}

중요:

  • 실제 저장 값은 변경되지 않습니다.

  • 매핑은 View 수준의 데이터 표시 방식에만 영향을 줍니다.

dataMap은 테이블 데이터를 수정하거나 원본 레코드 값을 변경하지 않습니다.

showNullAs 및 showEmptyAs

showNullAsshowEmptyAs는 특수 값이 표시되는 방식을 정의합니다.

columns: {
    Name: {
        showNullAs: "[NULL]",
        showEmptyAs: "[EMPTY]"
    }
}
  • showNullAsnull 또는 undefined 값에 대한 표시 텍스트를 지정합니다.

  • showEmptyAs는 빈 문자열("") 값에 대한 표시 텍스트를 지정합니다.

이 설정들은:

  • 값이 표시되는 방식에만 영향을 줍니다.

  • 실제 저장된 데이터를 수정하지 않습니다.

  • 실제 행 값을 변경하지 않습니다.

예를 들어 다음 레코드가 있는 경우:

{ Name: null }

저장된 값은 여전히 null이지만 표시 값은 [NULL]이 됩니다.

View 수준 재정의

이 속성들은 View 열 수준에서도 정의할 수 있습니다.

columns: {
    Name: {
        showNullAs: "[NULL]",
        showEmptyAs: "[EMPTY]"
    }
}

스키마 수준 설정과 View 수준 설정이 모두 존재하는 경우:

  • View 수준 구성이 스키마 수준 구성을 재정의합니다.

  • 스키마 수준 구성은 모든 View에 대한 기본 동작으로 사용됩니다.

spread

열이 객체 값을 포함하는 경우 spreadfetch() 중 해당 속성을 별도 열로 확장합니다.

columns: {
    address: {
        spread: true
    }
}

다음 데이터가 있다고 가정하면:

{
    id: 1,
    address: {
        city: "Berlin",
        zip: "10000"
    }
}

fetch() 이후 테이블 구조는 다음 열을 포함하도록 확장됩니다.

  • address.city

  • address.zip

이 변환은 테이블 수준에서 수행됩니다.

dataMap과 달리 spread는 구문 분석 이후 테이블 내부의 레코드 구조를 변경합니다.

indexed

테이블이 fetch된 후 해당 열에 대한 인덱스를 생성합니다.

columns: {
    customerId: {
        indexed: true
    }
}

인덱싱이 활성화되면:

  • 값-행 매핑 구조가 내부적으로 생성됩니다.

  • 해당 열에 대한 필터링 및 조회 작업의 효율성이 향상됩니다.

인덱싱은 쿼리 성능을 향상시키지만 메모리 사용량을 증가시킵니다.

인덱스는 fetch() 완료 후 생성됩니다.

동작적 책임 범위

데이터 동작 설정은 다음을 정의합니다.

  • 유효성 검사 제약 조건

  • 변경 가능성 규칙

  • 기본값

  • 구문 분석 동작

  • 레코드 구조 확장

  • 성능 최적화

다음은 정의하지 않습니다.

  • 시각적 서식

  • UI 컴포넌트

  • 열 레이아웃

  • 테이블 간 표시 방식

이러한 기능은 고급 모델링 및 View 구성에서 별도로 처리됩니다.