[]
데이터 동작 설정은 열 값이 구문 분석 이후 어떻게 유효성 검사되고, 변환되고, 인덱싱되고, 저장되는지를 제어합니다.
식별자와 형식을 정의하는 핵심 구조 설정과 달리, 동작 설정은 열이 데이터 작업에 어떻게 참여하는지를 정의합니다.
이러한 설정은 다음에 영향을 줍니다.
데이터 무결성
값 정규화
레코드 구조 변환
쿼리 성능
이 설정들은 데이터 매니저 계층에서 동작하며 특정 View와는 독립적입니다.
새 레코드 삽입 시 해당 열을 필수 항목으로 지정합니다.
columns: {
name: {
dataType: "string",
required: true
}
}필수 열에 값이 없는 상태로 새 행이 생성되면 해당 레코드는 유효하지 않은 것으로 간주됩니다.
이 제약 조건은 데이터 계층에 적용되며 UI 유효성 검사에만 국한되지 않습니다.
값이 설정된 이후 열 값을 수정할 수 없도록 합니다.
columns: {
id: {
dataType: "number",
readonly: true
}
}읽기 전용 열은:
데이터 업데이트 작업으로 변경할 수 없습니다.
수식 및 관계에는 계속 참여합니다.
읽기 전용 설정은 레코드 생성 시 초기값 설정을 막지는 않습니다.
새 행 삽입 시 기본값을 정의합니다.
columns: {
status: {
dataType: "string",
defaultValue: "New"
}
}기본값은 다음 중 하나일 수 있습니다.
상수 값
수식 표현식
기본값은 삽입 시 해당 필드가 명시적으로 제공되지 않은 경우에만 적용됩니다.
문자열 값이 형식이 지정된 값으로 구문 분석되는 방식을 정의합니다.
columns: {
birthday: {
dataType: "date",
dataPattern: "dd/MM/yyyy"
}
}지원되는 구문 분석 시나리오 예:
날짜 형식 문자열
사용자 지정 소수점 구분 기호
Boolean 참/거짓 매핑(예: "Yes|No")
dataPattern은 구문 분석 동작에만 영향을 줍니다.
변환 이후 내부적으로 저장되는 값은 변경하지 않습니다.
저장된 값을 표시 친화적인 값으로 매핑합니다.
columns: {
product: {
dataMap: {
1: "Product-A",
2: "Product-B"
}
}
}중요:
실제 저장 값은 변경되지 않습니다.
매핑은 View 수준의 데이터 표시 방식에만 영향을 줍니다.
dataMap은 테이블 데이터를 수정하거나 원본 레코드 값을 변경하지 않습니다.
showNullAs와 showEmptyAs는 특수 값이 표시되는 방식을 정의합니다.
columns: {
Name: {
showNullAs: "[NULL]",
showEmptyAs: "[EMPTY]"
}
}showNullAs는 null 또는 undefined 값에 대한 표시 텍스트를 지정합니다.
showEmptyAs는 빈 문자열("") 값에 대한 표시 텍스트를 지정합니다.
이 설정들은:
값이 표시되는 방식에만 영향을 줍니다.
실제 저장된 데이터를 수정하지 않습니다.
실제 행 값을 변경하지 않습니다.
예를 들어 다음 레코드가 있는 경우:
{ Name: null }저장된 값은 여전히 null이지만 표시 값은 [NULL]이 됩니다.
이 속성들은 View 열 수준에서도 정의할 수 있습니다.
columns: {
Name: {
showNullAs: "[NULL]",
showEmptyAs: "[EMPTY]"
}
}스키마 수준 설정과 View 수준 설정이 모두 존재하는 경우:
View 수준 구성이 스키마 수준 구성을 재정의합니다.
스키마 수준 구성은 모든 View에 대한 기본 동작으로 사용됩니다.
열이 객체 값을 포함하는 경우 spread는 fetch() 중 해당 속성을 별도 열로 확장합니다.
columns: {
address: {
spread: true
}
}다음 데이터가 있다고 가정하면:
{
id: 1,
address: {
city: "Berlin",
zip: "10000"
}
}fetch() 이후 테이블 구조는 다음 열을 포함하도록 확장됩니다.
address.city
address.zip
이 변환은 테이블 수준에서 수행됩니다.
dataMap과 달리 spread는 구문 분석 이후 테이블 내부의 레코드 구조를 변경합니다.
테이블이 fetch된 후 해당 열에 대한 인덱스를 생성합니다.
columns: {
customerId: {
indexed: true
}
}인덱싱이 활성화되면:
값-행 매핑 구조가 내부적으로 생성됩니다.
해당 열에 대한 필터링 및 조회 작업의 효율성이 향상됩니다.
인덱싱은 쿼리 성능을 향상시키지만 메모리 사용량을 증가시킵니다.
인덱스는 fetch() 완료 후 생성됩니다.
데이터 동작 설정은 다음을 정의합니다.
유효성 검사 제약 조건
변경 가능성 규칙
기본값
구문 분석 동작
레코드 구조 확장
성능 최적화
다음은 정의하지 않습니다.
시각적 서식
UI 컴포넌트
열 레이아웃
테이블 간 표시 방식
이러한 기능은 고급 모델링 및 View 구성에서 별도로 처리됩니다.