데이터 유효성 검사
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
- 1. 개요
- 2. 데이터 유효성 검사의 종류
- 3. 유효성 검사 유형 (Validation types)
- 3.1. 허용된 문자 검사 (Allowed character checks)
- 3.2. 일괄 합계 (Batch totals)
- 3.3. 기수 검사 (Cardinality check)
- 3.4. 검사 숫자 (Check digit)
- 3.5. 일관성 검사 (Consistency checks)
- 3.6. 교차 시스템 일관성 검사 (Cross-system consistency checks)
- 3.7. 데이터 유형 검사 (Data type checks)
- 3.8. 파일 존재 검사 (File existence checks)
- 3.9. 형식 검사 (Format checks)
- 3.10. 존재 검사 (Presence checks)
- 3.11. 범위 검사 (Range checks)
- 3.12. 참조 무결성 (Referential integrity)
- 3.13. 맞춤법 및 문법 검사 (Spelling and grammar checks)
- 3.14. 고유성 검사 (Uniqueness checks)
- 3.15. 테이블 조회 검사 (Table lookup checks)
- 4. 유효성 검사 후 조치 (Post-validation actions)
- 5. 유효성 검사와 보안 (Validation and security)
- 참조
1. 개요
데이터 유효성 검사는 데이터의 정확성, 완전성 및 유효성을 보장하기 위해 수행되는 일련의 절차이다. 이는 데이터 유형, 범위, 제약 조건, 코드, 상호 참조, 구조 및 일관성 등을 포함한 다양한 유형으로 분류될 수 있으며, 허용된 문자, 일괄 합계, 기수 검사, 검사 숫자, 일관성, 교차 시스템 일관성, 데이터 유형, 파일 존재, 형식, 존재, 범위, 참조 무결성, 맞춤법 및 문법, 고유성, 테이블 조회 검사 등 다양한 검사 유형이 존재한다. 유효성 검사 결과에 따라 시정, 권고, 확인 조치를 취하거나 유효성 검사 로그를 기록할 수 있으며, 데이터 유효성 검사는 데이터 손상이나 보안 취약점을 방지하는 데 중요한 역할을 한다.
더 읽어볼만한 페이지
- 데이터 처리 - 정렬
정렬은 데이터를 특정 기준에 따라 순서대로 배열하는 과정으로, 검색 및 병합 알고리즘의 효율성을 높이고, 정의된 순서로 데이터 처리를 가능하게 하며, 오름차순과 내림차순으로 나뉘고, 컴퓨터 과학과 다양한 산업 분야에서 활용된다. - 데이터 처리 - 정렬 알고리즘
정렬 알고리즘은 데이터를 효율적으로 구성하기 위해 원소들을 특정 순서로 재배열하는 알고리즘으로, 메모리 사용량, 안정성, 계산 복잡도 등 다양한 기준에 따라 분류되며 컴퓨터 과학에서 중요한 주제이다. - 데이터 품질 - 데이터 무결성
데이터 무결성은 데이터베이스 시스템에서 데이터의 정확성과 유효성을 보장하여 데이터 손상을 방지하고 의도하지 않은 변경을 막는 것을 목표로 하며, 개체, 참조, 범위 무결성 등으로 구분되어 관리되는 핵심 개념이다. - 데이터 품질 - 데이터 정제
데이터 정제는 데이터의 유효성, 정확성, 완전성, 일관성, 균일성 확보를 목표로 데이터 감사, 워크플로 사양, 워크플로 실행, 사후 처리 및 제어 단계를 거쳐 데이터의 부정확성과 불일치 문제를 해결하고 신뢰성을 높이는 과정이다. - 데이터 보안 - 정보 보안
정보 보안은 정보의 기밀성, 무결성, 가용성을 보장하고 허가되지 않은 접근으로부터 정보와 정보 시스템을 보호하며, 심층 방어 전략, 리스크 관리, 암호학, 표준 준수 등을 통해 정보 자산을 보호하는 활동이다. - 데이터 보안 - 백업
백업은 데이터 손실 위험에 대비하여 자료를 다른 저장 장치에 복사하는 작업으로, 전체 백업, 증분 백업, 차등 백업 등의 방식을 사용하며, 효과적인 시스템 구축을 위해서는 복구 시점 및 시간 목표, 데이터 보안 등을 고려해야 한다.
데이터 유효성 검사 |
---|
2. 데이터 유효성 검사의 종류
데이터 유효성 검사는 범위, 복잡성 및 목적에 따라 다양한 유형으로 분류될 수 있다. 데이터 유효성 검사는 애플리케이션이나 자동화 시스템에서 특정하고 명확하게 정의된 데이터의 일관성과 적합성에 대한 보장을 제공하기 위한 것이다.[1] 구현은 선언적 프로그래밍 데이터 무결성 규칙 또는 절차적 프로그래밍 비즈니스 규칙을 사용할 수 있다.[2]
데이터 유효성 검사의 종류는 다음과 같다:
- 데이터 형식 검사
- 범위 및 제약 조건 검사
- 코드 및 상호 참조 검사
- 구조적 검사
- 일관성 검사
2. 1. 데이터 형식 검사 (Data-type check)
데이터 형식 유효성 검사는 일반적으로 하나 이상의 단순 데이터 필드에서 수행된다. 가장 간단한 종류의 데이터 형식 유효성 검사는 사용자 입력을 통해 제공된 개별 문자가 프로그래밍 언어나 데이터 저장 및 검색 메커니즘에 정의된 하나 이상의 알려진 기본 데이터 형식의 예상 문자와 일치하는지 확인한다.[1]예를 들어, 정수 필드는 0에서 9까지의 문자만 사용하도록 입력을 요구할 수 있다. 10자리, 2007년 이전의 ISBN에 관련된 다양한 종류의 데이터 유효성 검사가 있다.[3]
- 크기: 2007년 이전의 ISBN은 10자리 숫자로 구성되어야 하며, 선택적으로 하이픈(-) 또는 공백으로 4개의 부분을 구분할 수 있다.
- 형식 검사: 처음 9자리 숫자는 각각 0부터 9까지여야 하며, 10번째 숫자는 0부터 9까지 또는 'X'여야 한다.
- 검증 숫자: 숫자 변경 또는 자리바꿈과 같은 전사 오류를 감지하기 위해, 2007년 이전 ISBN의 마지막 숫자는 다른 9자리 숫자를 포함하는 수학 공식의 결과와 일치해야 한다. (ISBN-10 검증 숫자)
데이터 유형 검사는 입력이 입력된 데이터와 일치하는지 확인한다. 예를 들어 숫자 데이터를 허용하는 입력 상자는 문자 'O'를 거부할 수 있다.
2. 2. 범위 및 제약 조건 검사 (Simple range and constraint check)
범위 및 제약 조건 유효성 검사는 입력값이 최소/최대 범위와 일치하는지, 또는 정규 표현식과 같이 일련의 문자를 평가하기 위한 하나 이상의 테스트와 일치하는지 검사한다. 예를 들어, 카운터 값은 음수가 아닌 정수여야 하며, 비밀번호는 최소 길이를 만족하고 여러 범주의 문자를 포함해야 한다.[1]2007년 이전의 10자리 ISBN과 관련된 데이터 유효성 검사는 다음과 같다. (2005년판 ISO 2108은 2007년부터 ISBN이 13자리여야 한다고 규정했다[3]).
- 크기: 2007년 이전의 ISBN은 10자리 숫자로 구성되어야 하며, 선택적으로 하이픈(-) 또는 공백으로 4개의 부분을 구분할 수 있다.
- 형식 검사: 처음 9자리 숫자는 각각 0부터 9까지여야 하며, 10번째 숫자는 0부터 9까지 또는 'X'여야 한다.
- 검증 숫자: 숫자 변경 또는 자리바꿈과 같은 전사 오류를 감지하기 위해, 2007년 이전 ISBN의 마지막 숫자는 다른 9자리 숫자를 포함하는 수학 공식의 결과와 일치해야 한다. (ISBN-10 검증 숫자)
2. 3. 코드 및 상호 참조 검사 (Code and cross-reference check)
코드 및 상호 참조 유효성 검사는 특정 조직, 상황 또는 일련의 기본 가정과 관련된 하나 이상의 (가능한) 외부 규칙, 요구 사항 또는 데이터 집합에 데이터가 일치하는지 확인하는 작업을 포함한다. 이러한 추가적인 유효성 제약 조건은 사용자가 제공한 데이터를 LDAP와 같은 알려진 조회 테이블 또는 디렉터리 정보 서비스와 상호 참조하는 것을 포함할 수 있다.[1]예를 들어, 사용자가 제공한 국가 코드는 현재 지정학적 지역을 식별하는 데 필요할 수 있다.
2. 4. 구조적 검사 (Structured check)
구조적 유효성 검사는 여러 종류의 유효성 검사를 결합하여 더 복잡한 처리를 가능하게 한다. 이러한 복잡한 처리에는 전체 복합 데이터 객체 또는 시스템 내의 일련의 프로세스 작업에 대한 조건부 제약 조건 테스트가 포함될 수 있다.[1]2. 5. 일관성 검사 (Consistency check)
일관성 검사는 데이터가 논리적인지 확인하는 것이다. 예를 들어, 주문의 배송 날짜가 발송 날짜보다 앞설 수 없도록 하는 것이다.[1]3. 유효성 검사 유형 (Validation types)
데이터 유효성 검사는 데이터의 일관성과 적합성을 보장하기 위한 것이다. 데이터 유효성 검사 규칙은 다양한 방법으로 정의하고 설계할 수 있으며, 다양한 곳에서 사용될 수 있다.[1] 구현에는 선언적 프로그래밍 데이터 무결성 규칙 또는 절차적 프로그래밍 비즈니스 규칙을 사용할 수 있다.[2]
데이터 유효성 검사가 반드시 데이터가 정확한지 보장하지는 않는다. 예를 들어, 철자가 틀린 데이터 입력이 유효한 것으로 허용될 수 있다. 시스템 내의 부정확성을 줄이기 위해 다른 사무적, 컴퓨터 제어를 적용할 수 있다.
3. 1. 허용된 문자 검사 (Allowed character checks)
필드에 예상된 문자만 있는지 확인한다. 예를 들어 숫자 필드는 숫자 0–9, 소수점, 빼기 부호 또는 쉼표만 허용할 수 있다. 개인 이름과 같은 텍스트 필드는 마크업에 사용되는 문자를 허용하지 않을 수 있다. 이메일 주소는 하나 이상의 @ 기호와 다양한 기타 구조적 세부 정보를 필요로 할 수 있다. 정규 표현식은 이러한 검사를 구현하는 효과적인 방법이 될 수 있다.[1]3. 2. 일괄 합계 (Batch totals)
누락된 레코드를 확인하기 위해 숫자 필드를 일괄 처리하여 모든 레코드에 대해 합산할 수 있다. 일괄 합계가 입력되면, 컴퓨터는 그 합계가 올바른지 확인한다. 예를 들어, 여러 트랜잭션의 '총 비용' 필드를 함께 더하는 경우가 이에 해당한다.[1]3. 3. 기수 검사 (Cardinality check)
레코드 간에 유효한 수의 관련 레코드가 있는지 확인한다. 예를 들어, 연락처 레코드가 "고객"으로 분류된 경우 최소 하나의 관련 주문이 있어야 한다(기수 > 0).[1] 이러한 유형의 규칙은 추가 조건에 의해 복잡해질 수 있다. 예를 들어, 급여 데이터베이스의 연락처 레코드가 "전직 직원"으로 분류된 경우, 퇴사일 이후에는 관련 급여 지급이 없어야 한다(기수 = 0).[1]3. 4. 검사 숫자 (Check digit)
검증 숫자는 숫자 데이터에 사용된다. 오류 감지를 돕기 위해 다른 숫자에서 계산된 숫자에 추가 숫자가 덧붙여진다.[1]3. 5. 일관성 검사 (Consistency checks)
일관성 검사는 여러 필드의 데이터가 논리적으로 일치하는지 확인한다. 예를 들어 주문의 배송 날짜가 발송 날짜보다 앞설 수 없도록 한다.[1] 만료일이 과거인 경우 상태가 "활성"이 아니어야 하는 것도 일관성 검사의 예시이다.[1]3. 6. 교차 시스템 일관성 검사 (Cross-system consistency checks)
서로 다른 시스템의 데이터를 비교하여 일관성이 있는지 확인한다. 시스템은 동일한 데이터를 다르게 표현할 수 있으며, 이 경우 비교에는 변환이 필요하다. 예를 들어, 한 시스템은 고객 이름을 'Doe, John Q'와 같이 단일 이름 필드에 저장하는 반면, 다른 시스템은 First_Name 'John', Last_Name 'Doe', Middle_Name 'Quality'를 사용한다.[1] 이러한 데이터 표현 방식의 차이는 한국의 정부 부처나 공공기관 간의 데이터 통합 및 협업을 어렵게 만들 수 있으므로, 교차 시스템 일관성 검사를 통해 데이터 불일치를 해소하고 필요한 변환을 수행하는 것이 중요하다.3. 7. 데이터 유형 검사 (Data type checks)
데이터 유형 검사는 입력 데이터가 지정된 데이터 유형과 일치하는지 확인한다.[1] 예를 들어 숫자 데이터를 허용하는 입력 상자는 문자 'O'를 거부할 수 있다.[1]3. 8. 파일 존재 검사 (File existence checks)
지정된 이름의 파일이 존재하는지 확인한다. 이 검사는 파일 처리를 사용하는 프로그램에 필수적이다.[1]3. 9. 형식 검사 (Format checks)
데이터가 지정된 형식(템플릿)을 따르는지 확인한다. 예를 들어, 날짜는 YYYY-MM-DD 형식이어야 한다. 이러한 종류의 유효성 검사에는 정규 표현식을 사용할 수 있다.[1]3. 10. 존재 검사 (Presence checks)
데이터가 있는지 확인한다. 예를 들어, 고객은 이메일 주소가 있어야 할 수 있다.[1]3. 11. 범위 검사 (Range checks)
데이터는 지정된 값 범위 내에 있는지 확인한다. 예를 들어, 확률은 0과 1 사이여야 한다.[1]3. 12. 참조 무결성 (Referential integrity)
관계형 데이터베이스에서 두 테이블의 값은 외래 키와 기본 키를 통해 연결될 수 있다. 외래 키 필드의 값이 내부 메커니즘에 의해 제한되지 않으면, 참조되는 테이블의 행을 참조하는지 확인하기 위해 유효성 검사를 해야 한다.[1]3. 13. 맞춤법 및 문법 검사 (Spelling and grammar checks)
텍스트 데이터의 맞춤법 및 문법 오류를 검사한다.[1]3. 14. 고유성 검사 (Uniqueness checks)
각 데이터 값이 고유한지 확인한다. 이는 주소, 이름, 성과 같은 여러 필드에 적용될 수 있다.[1]3. 15. 테이블 조회 검사 (Table lookup checks)
데이터 유효성 검사 방법 중 하나인 테이블 조회 검사는, 입력된 데이터가 미리 정해진 허용된 값의 목록에 포함되어 있는지 확인하는 방식이다.[1] 예를 들어, 사용자가 입력한 국가 코드가 실제로 존재하는 국가 코드인지 확인하기 위해, 유효한 국가 코드 목록과 비교해 볼 수 있다.4. 유효성 검사 후 조치 (Post-validation actions)
데이터 유효성 검사 후에는 그 결과에 따라 시정 조치, 권고 조치, 확인 조치, 유효성 검사 로그 기록 등 다양한 조치를 취할 수 있다.
데이터 유효성 검사가 반드시 데이터의 정확성을 보장하는 것은 아니다. 예를 들어, 철자 오류와 같은 데이터 입력 오류는 유효한 것으로 허용될 수 있다. 시스템 내의 부정확성을 줄이기 위해 다른 사무적 또는 컴퓨터 제어가 적용될 수 있다.
4. 1. 시정 조치 (Corrective action)
시정 조치는 일반적으로 데이터 입력 요청을 거부하고, 입력한 사람이 데이터를 규격에 맞게 변경하도록 요구한다. 이는 사람이 직접 컴퓨터에 앉아 입력하는 대화형 사용에 가장 적합하다. 파일 입력이 거부되고 데이터가 거부된 이유에 대한 메시지가 입력 소스로 다시 전송되는 일괄 업로드에도 시정 조치가 적합하다.또 다른 형태의 시정 조치는 원본 데이터 대신 자동으로 데이터를 변경하고, 규격에 맞는 버전을 저장하는 것이다. 이는 겉으로 보이는 변경에 가장 적합하다. 예를 들어, 대문자 입력을 파스칼 표기법 입력으로 변환하는 데 사용자 입력이 필요하지 않다. 자동 시정 조치의 부적절한 사용은 시정 조치가 비즈니스 정보 손실로 이어지는 상황이다. 예를 들어, 길이가 예상보다 긴 주석을 잘라서 저장하면 중요한 데이터가 손실될 수 있으므로 일반적으로 좋은 방법이 아니다.
4. 2. 권고 조치 (Advisory action)
권고 조치는 데이터를 변경 없이 입력하도록 허용하지만, 발생한 유효성 검사 문제를 사용자에게 알리는 메시지를 보낸다.[1] 이는 비대화형 시스템, 변경이 비즈니스에 중요하지 않은 시스템, 기존 데이터의 정리 단계 및 입력 프로세스의 확인 단계에 가장 적합하다.[1]4. 3. 확인 조치 (Verification action)
확인 조치는 권고 조치의 특수한 경우이다. 사용자에게 제시된 제안을 바탕으로 이 데이터가 실제로 입력하려는 데이터인지 확인하도록 요청한다. 확인 단계에서는 대안을 제안하는데, 예를 들어 우편 주소 확인 시 해당 주소를 다른 형식으로 제시하거나 완전히 다른 주소를 제안할 수 있다. 이 경우 사용자는 권장 사항을 수락하거나 원래 입력을 유지할 수 있다. 이는 엄격한 유효성 검사 프로세스가 아니며, 새로운 위치나 유효성 검사 데이터베이스에서 아직 지원하지 않는 위치의 주소를 입력하는 데 유용하다.4. 4. 유효성 검사 로그 (Validation log)
데이터 유효성 검사에서 문제가 발견되지 않더라도, 수행된 유효성 검사와 그 결과를 기록(로그)하는 것은 중요하다. 이러한 로그는 পরবর্তীতে 데이터 문제 발생 시, 누락된 유효성 검사 확인을 식별하고 개선하는 데 도움이 된다.5. 유효성 검사와 보안 (Validation and security)
데이터 유효성 검사를 하지 않거나 제대로 검사하지 않으면 데이터 손상 또는 소프트웨어 보안 취약점으로 이어질 수 있다.[4] 데이터 유효성 검사는 데이터가 처리되기 전에 목적에 적합하고,[5] 유효하며, 합리적이고, 합당하며, 안전한지 확인하는 과정이다.
참조
[1]
PDF
Methodology for data validation 1.0
https://ec.europa.eu[...]
[2]
웹사이트
Data Validation, Data Integrity, Designing Distributed Applications with Visual Studio .NET
http://msdn.microsof[...]
[3]
웹사이트
Frequently Asked Questions about the new ISBN standard
http://www.lac-bac.g[...]
International Organization for Standardization
2007-06-10
[4]
웹사이트
Chapter10. Data Validation
http://www.cgisecuri[...]
[5]
웹사이트
More Efficient Data Validation with Spotless
https://web.archive.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com