여러분 유효성 검사라고 들어보셨을까요?
온라인 쇼핑몰이나 시스템 같은 데에 회원가입을 하거나 날짜를 입력할 때 종종 "잘못된 형식입니다."라는 메시지를 본 적이 있을 거예요...!
특히 회원가입 시 많이 보게 되는 메시지인데요, 바로 이것이 유효성 검사(Validation Check)입니다!
유효성 검사는 사용자가 올바른 형식의 데이터를 입력하도록 돕는 중요한 과정인데요.
시스템 상에서 서비스 제공을 위해 데이터를 조회할 때, 충분히 구별할 수 있는 형식과 규격으로 데이터를 저장해 두어야만 추후 기능 정확도나 오류 방지에 문제가 생기지 않도록 할 수 있기 때문에 이용하고 있죠...!

날짜의 경우에는 <yyyy-mm-dd(yy.dd.mm 등)=""> 형식으로만 저장하고, 닉네임의 경우에는 예외도 있지만 보통 중복 적용이 안되도록 회원가입 시도 기능 상에서 제한하고 있죠!</yyyy-mm-dd(yy.dd.mm>
유효성 검사 예시
✅ 최소 & 최대 길이 확인 → (ex. 최소 3자, 최대 12자)
✅ 특수문자 제한 → (ex. 욕설 포함 금지, "!!!" 같은 연속 기호 제한)
✅ 금지어 필터링 → (ex. 닉네임 설정 시 "관리자", "GM", "운영자" 같은 단어 사용 금지)
이렇게 유효성 검사를 적절히 사용해야 데이터 품질을 높일 수 있습니다...!
으음, 그러면 유효성 검사 적용 상태를 확인하는 것은 데이터 품질검사에 해당할까요..?
......
유효성 검사를 잘 적용했는지 검증하는 경우는 데이터 품질검사가 아니라. 시스템 품질검사에 해당한다고 뷸 수 있을 거 같아요!
유효성 검사는 데이터를 올바르게 저장하도록 유도하는 과정이고, "데이터를 올바르게 데이터베이스에 저장하도록 설계했는지"는 기능적인 측면에서 판단하는 부분이거든요..!
그렇다면 데이터 품질검사란 무엇을 입증하기 위해 있는 개념일까요?

https://www.informatica.com/ko/resources/articles/what-is-data-quality.html.html
음... 뭐라 뭐라 하는 것 같은데 이번엔 다른 용어에 비해 해석하기 쉬운 거 같아요!
우리가 가진 데이터 세트가,
우리가 제공할 서비스나 우리의 의도에 맞게끔 사용하고 분석하기에 용이한 상태로 놓여있는지,
기준을 통해 품질을 판단하고 분석하는 거라고 볼 수 있겠군요!
우리가 매일 사용하는 데이터, 과연 얼마나 용이한 상태로 존재하는지 장담할 수 있을까요?
정확한 품질 측정을 위해 존재하는 기준은 과연 무엇일까요?

ISO/IEC 25024는 데이터 품질을 정량적으로 측정하기 위해 만들어진 국제 표준인데요,
다양한 데이터 품질 특성(Quality Characteristics)과 그에 대한 정의(Definitions)를 기준 내에 포함하고 있습니다...!
아래는 ISO/IEC 25024 데이터 품질 특성과 데이터 생명주기입니다...!

데이터 품질 특성

데이터 생명주기
✔ 정확성(Accuracy)
데이터가 실제 값을 얼마나 정확하게 반영하는지를 측정하는 품질 속성.
예: "생년월일이 실제 존재하는 날짜인지", "계좌 잔액이 올바르게 기록되었는지"
✔ 완전성(Completeness)
데이터가 빠짐없이 수집되었는지를 평가하는 품질 속성.
예: "환자의 병원 기록에 필수 항목이 누락되지 않았는지", "거래 데이터에서 모든 필드가 채워졌는지"
✔ 일관성(Consistency)
데이터가 시스템 전반에서 동일하게 유지되는지를 검토하는 품질 속성.
예: "결제 금액과 실제 청구 금액이 일치하는지", "회원 정보가 여러 시스템에서 동일한지"
✔ 신뢰성(Reliability)
데이터가 오랜 기간 동안 정확하고 안정적으로 유지될 수 있는지를 의미.
예: "데이터베이스 백업이 정상적으로 유지되고 있는지", "오래된 데이터도 신뢰할 수 있는지"
✔ 효율성(Efficiency)
데이터가 불필요한 낭비 없이 효율적으로 관리되는지를 평가하는 품질 속성.
예: "데이터 저장과 검색 속도가 최적화되어 있는지", "데이터 중복이 최소화되어 있는지"
✔ 접근성(Accessibility)
사용자가 필요한 데이터를 쉽게 접근할 수 있는지를 측정하는 품질 속성.
예: "사용자 권한에 따라 적절한 데이터가 제공되는지", "데이터 검색 기능이 원활하게 제공되는지"
✔ 기밀성(Confidentiality)
데이터가 인가된 사용자만 접근할 수 있도록 보호되는지를 평가하는 품질 속성.
예: "개인정보 및 기업 기밀 정보가 암호화되어 있는지", "권한이 없는 사용자는 중요한 데이터를 볼 수
없는지"
✔ 가용성(Availability)
데이터가 필요할 때 항상 접근 가능하고 사용할 수 있는지를 나타내는 품질 속성.
예: "서버 장애 시에도 데이터가 정상적으로 제공되는지", "백업 시스템이 원활하게 작동하는지"
✔ 이해성(Understandability)
데이터가 쉽게 이해될 수 있도록 구성되어 있는지를 평가하는 품질 속성.
예: "데이터 필드의 명칭이 직관적인지", "설명 문서나 메타데이터가 충분한지"
✔ 추적성(Traceability)
데이터가 생성된 출처와 변화를 기록하고 추적할 수 있는지를 나타내는 품질 속성.
예: "고객의 개인정보가 언제, 누구에 의해 수정되었는지 로그를 남기는지"
✔ 정밀성(Precision)
데이터가 필요한 수준의 세부 정보를 포함하고 있는지를 평가하는 품질 속성.
예: "측정값이 소수점 몇 자리까지 제공되는지", "주소 데이터가 시/군/구 단위까지 포함되는지"
✔ 복구성(Recoverability)
데이터가 손실되었을 때 복구할 수 있는지를 평가하는 품질 속성.
예: "시스템 장애 시 백업 데이터를 통해 복구할 수 있는지", "삭제된 데이터를 복원할 수 있는지"
✔ 현재성(Currency)
데이터가 최신 상태를 반영하고 있는지를 나타내는 품질 속성.
예: "고객의 주소 정보가 최신 상태인지", "재고 데이터가 현재 실제 보유 수량과 일치하는지"
✔ 준수성(Compliance)
데이터가 규제, 정책, 표준을 준수하고 있는지를 나타내는 품질 속성.
예: "개인정보 보호법을 준수하는지"
✔ 이식성(Portability)
데이터가 다양한 환경에서도 문제없이 이전 및 활용될 수 있는지를 평가하는 품질 속성.
예: "다른 시스템에서도 데이터를 쉽게 변환하여 사용할 수 있는지", "다양한 데이터 형식으로 저장 및
제공되는지"

어휴 많아요 많아.....
이렇게 나열해 보니까 구체적으로 어떤 부분으로 품질 완성도를 높여야 할지 직관적이지 않은데요
저도 예전에 실무 때 관련된 사항으로
모종의 데이터셋에 대한 데이터 수량의 적절성 등을 심사받은 적이 있었습니다..!

이런 식으로 A 데이터에 4가지의 부수적인 B 데이터가 매핑된다면,
A 데이터가 25개라면, B 데이터는 큰 이변이 있지 않은 이상 100개가 나와야겠죠?
하지만 실제로 이렇게 적은 양의 데이터만 관리하지는 않을 테니까...
훨씬 더 많은 수량의 데이터를 관리해야 한다는 점은 있지만요.....
그렇지만 데이터 품질을 측정한다는 것 = 데이터의 가치를 극대화하는 것!
데이터 품질이 서비스에 중요한 영향을 끼지는 대상에 해당한다면, 빼놓을 수 없겠요..!
안 그래도 데이터 파일(csv), 데이터 모델, DBMS 등 다양한 환경에서 데이터 품질을 평가할 수 있도록 정해진 규격이라서, 가지고만 있다면 시스템, AI 모델 등 기업의 비즈니스에 큰 도움이 될 것도 같습니다...!