데이터 검증 vs 데이터 확인: 차이점은 무엇인가요?

데이터 검증과 데이터 확인의 핵심 차이점을 학습하십시오. 여기에는 실용적인 Python 예제와 최상위 데이터 품질을 위해 각각을 언제 사용해야 하는지에 대한 내용이 포함됩니다.
3 분 읽기
Data Vlidation vs Data Verification

이 글에서 배우게 될 내용:

  • 데이터 유효성 검증이 무엇인지, 언제 사용해야 하는지, 포함된 검사 항목, 그리고 구현에 사용해야 할 라이브러리를 알아봅니다.
  • 실제 Python 예제를 통한 데이터 검증 수행 방법.
  • 데이터 검증의 정의, 작동 방식, 검증 체크 예시 및 최적의 접근법.
  • 전용 AI 에이전트를 활용한 데이터 검증 구현 방법.
  • 데이터 유효성 검사와 데이터 검증 비교 요약표.

자, 시작해 보겠습니다!

데이터 검증: 꼭 알아야 할 모든 것

데이터 유효성 검사와 데이터 검증의 여정을 첫 번째 접근 방식인 데이터 유효성 검사부터 살펴보며 시작해 보세요.

데이터 유효성 검증이 무엇이며 왜 중요한가?

데이터 유효성 검사는 데이터의 정확성, 품질 및 무결성을 확인하는 과정입니다. 일반적으로 데이터가 저장, 사용 또는 처리되기 전에 수행됩니다. 궁극적인 목표는 일관된 수준의 품질과 신뢰성을 보장하는 것입니다.

특히 이 기술은 데이터가 정의된 규칙과 표준을 따르는지 확인합니다. 이는 부정확하거나 불완전한 정보가 시스템, 애플리케이션, 워크플로에 유입되거나 데이터 파이프라인을 통해 계속 전달되는 것을 방지합니다.

데이터 유효성 검사는 높은 데이터 품질 유지의 기초입니다. 또한 GDPR 및 CCPA와 같은 규정 준수 요구사항 충족과 보안 모범 사례 준수에 중요한 역할을 합니다.

데이터 유효성 검사를 적용하면 데이터의 오류와 문제를 조기에 발견할 수 있습니다. 이는 데이터 수명 주기에서 문제가 확대되기 전에 식별하여 비용이 많이 드는 실수와 심각한 합병증을 방지하는 데 도움이 됩니다.

데이터 유효성 검사 예시

적용 가능한 데이터 유효성 검사 항목은 무수히 많으며, 특정 요구 사항, 데이터 필드 유형 및 특정 시나리오에 따라 달라집니다. 가장 중요한 검사 항목은 다음과 같습니다:

  • 데이터 유형 검사: 필드에 입력된 데이터가 올바른 유형인지 확인합니다(예: 연령 필드에 숫자만 입력되도록 보장).
  • 형식 검사: 데이터가 특정 패턴(예: (XXX) XXX-XXXX 형식의 전화번호, YYYY-MM-DD 형식의 날짜, [email protected] 형식의 이메일)을 준수하는지 확인합니다.
  • 범위 검사: 숫자 값이 미리 정의된 최소값과 최대값 범위 내에 있는지 확인합니다(예: 점수 필드는 0과 100 사이여야 함).
  • 존재 여부검사: 필수 필드가 비워지거나 null로 설정되지 않았는지 확인하여 중요한 정보가 누락되지 않도록 합니다.
  • 코드 검사: 입력값이 허용 가능한 사전 정의된 값 목록(예: ISO 3166 목록의 국가 코드)에서 선택되었는지 검증합니다.
  • 일관성 검사: 동일 입력 내 여러 필드 간 또는 서로 다른 입력 간 데이터가 논리적이고 일관성을 유지하는지 검증합니다(예: 주문 날짜는 배송 날짜보다 이전이어야 함).
  • 고유성 검사: 직원 ID나 이메일 주소처럼 고유값이 필요한 필드에서 중복 입력을 방지합니다.

실시 시기

일반적으로 데이터 유효성 검사는 데이터 수명 주기 전반에 걸쳐 지속적으로 수행해야 합니다. 동시에 검사가 빠를수록 오류 확산을 효과적으로 방지할 수 있습니다. 이를 데이터 품질에 대한 “좌측 이동(shift-left)” 접근법이라 합니다.

따라서 데이터를 검증하기 가장 선제적이고 효율적인 시점은 입력 시점입니다. 이때 오류를 포착하면 불량 데이터가 시스템에 유입되는 것을 차단하여 후속 정리에 소요되는 시간과 자원을 절약할 수 있습니다. 이는 사용자가 입력한 데이터(예: 양식 또는 파일 업로드), 웹 스크래핑을 통해 수집한 데이터, 또는 완전히 신뢰할 수 없는 공개 저장소의 데이터에도 적용됩니다.

백엔드 시스템의 API를 통한 사용자 제출 데이터의 경우, 실시간 검증을 통해 즉각적인 피드백을 제공할 수 있습니다(예: 형식이 잘못된 이메일 주소나 불완전한 전화번호를 API 응답에서 직접 400 Bad Request 오류로 표시).

그러나 데이터를 즉시 검증하는 것이 항상 가능한 것은 아닙니다. 예를 들어, ETL 또는 ELT 파이프라인에서는 일반적으로 특정 단계에서 검증이 적용됩니다:

  • 추출 후: 소스 시스템에서 가져온 데이터가 전송 중 손상되거나 손실되지 않았는지 확인합니다.
  • 변환 후: 각 변환 단계(예: 집계)의 출력이 예상된 규칙과 표준을 충족하는지 확인합니다.

데이터가 저장된 후에도 주기적으로 재검증해야 합니다. 데이터는 업데이트, 보강 또는 용도 변경될 수 있으므로 정적이지 않기 때문입니다. 따라서 지속적인 검증이 필요합니다.

데이터 검증 방법

데이터 검증 프로세스는 다음 단계를 포함합니다:

  1. 요구 사항 정의: 비즈니스 요구사항, 규제 기준 및 기대치에 기반하여 명확한 검증 규칙을 수립합니다(예: 데이터 규칙이 포함된 스키마 정의).
  2. 데이터 수집: 웹 스크래핑, API, 데이터베이스 등 다양한 출처에서 데이터를 수집합니다.
  3. 검증 적용: 정의된 규칙을 구현하여 데이터의 정확성, 일관성, 완전성을 확인합니다.
  4. 오류 처리: 조직 정책에 따라 무효 레코드를 기록, 격리 또는 수정합니다. 사용자가 잘못된 데이터를 입력할 경우 명확한 피드백을 제공합니다.
  5. 데이터 로드: 검증 및 정제된 데이터를 데이터 웨어하우스와 같은 대상 시스템에 로드합니다.

참고: 다음 장에서 가이드된 Python 예제를 통해 이러한 단계를 적용하는 방법을 확인할 수 있습니다.

데이터 유효성 검증을 위한 라이브러리

다음은 데이터 유효성 검증을 위한 최고의 오픈소스 라이브러리 일부를 정리한 표입니다:

라이브러리 프로그래밍 언어 GitHub 스타 설명
Pydantic 파이썬 25.3k+ Python 타입 힌트를 사용한 데이터 유효성 검사
Marshmallow Python 7.2k 복잡한 객체를 간단한 Python 데이터 유형으로 변환하거나 그 반대로 변환하기 위한 경량 라이브러리
Cerberus 파이썬 3.2k Python을 위한 가볍고 확장 가능한 데이터 유효성 검사 라이브러리
jsonschema Python 4.8k+ Python용 JSON Schema 사양 구현
Validator.js JavaScript 23.6k 문자열 유효성 검사기 및 세척기 라이브러리.
Joi JavaScript 21.2k+ JS를 위한 가장 강력한 데이터 유효성 검사 라이브러리
Yup JavaScript 23.6k+ 매우 간단한 객체 스키마 유효성 검사
Ajv JavaScript 14.4k+ 가장 빠른 JSON 스키마 유효성 검사기. JSON 스키마 draft-04/06/07/2019-09/2020-12 및 JSON 유형 정의(RFC8927)를 지원합니다.
FluentValidation C# (.NET) 9.5k 강력한 유형의 유효성 검사 규칙을 구축하기 위한 인기 있는 .NET 유효성 검사 라이브러리
validator Go 19.1k+ Go 구조체 및 필드 유효성 검사, 크로스 필드, 크로스 구조체, 맵, 슬라이스 및 배열 다이빙 포함

Python에서 데이터 유효성 검사를 적용하는 방법: 단계별 예제

이 가이드 워크스루에서는 Pydantic을 사용하여 JSON 입력 데이터에 데이터 유효성 검사를 적용하는 방법을 배웁니다. 이 튜토리얼은 데이터 유효성 검사 프로세스 구축의 주요 측면을 다룹니다.

시나리오 설명

전자상거래 사이트에서 데이터를 가져온다고 가정합니다. 특히 이 제품 웹 페이지에 집중하세요:

The target page

데이터 추출 과정에서 페이지 콘텐츠를 LLM에 제공하여 데이터 파싱을 간소화합니다. 그러나 LLM은 부정확할 수 있으며, 허위, 신뢰할 수 없거나 불완전한 데이터를 생성할 수 있습니다. 따라서 데이터 유효성 검사를 적용하는 것이 매우 중요합니다.

간편함을 위해 개발 환경이 설정된 Python 프로젝트가 이미 존재한다고 가정하겠습니다.

단계 #1: 대상 스키마 및 규칙 정의

대상 페이지를 검토하여 제품 페이지에 다음 필드가 포함되어 있음을 확인하세요:

  • 제품 URL: 제품 페이지의 URL.
  • 제품명: 제품명을 포함하는 문자열.
  • 이미지: 이미지 URL 목록.
  • 가격: 부동 소수점 숫자로 된 가격.
  • 통화: 통화를 나타내는 단일 문자.
  • SKU: 제품 ID를 포함하는 문자열.
  • 카테고리: 하나 이상의 카테고리를 포함하는 배열.
  • 설명: 제품 설명이 포함된 텍스트 필드.
  • 상세 설명: 모든 세부사항이 포함된 전체 제품 설명을 담는 텍스트 필드.
  • 추가 정보: 다음을 포함하는 객체:
    • 사이즈 옵션: 사용 가능한 사이즈를 포함하는 문자열 배열.
    • 색상 옵션: 사용 가능한 색상을 포함하는 문자열 배열.

그런 다음 아래와 같이 Pydantic 모델 로 표현합니다:

# pip install pip install pydantic

from typing import List, Optional, Annotated
from pydantic import BaseModel, ConfigDict, HttpUrl, PositiveFloat, StringConstraints, model_validator

class AdditionalInformation(BaseModel):
    size_options: Optional[List[str]] = None # nullable
    color_options: Optional[List[str]] = None # nullable

class Product(BaseModel):
    model_config = ConfigDict(strict=True, extra="forbid")

    product_url: HttpUrl  # 필수, 유효한 URL이어야 함
    product_name: str      # 필수
    images: Optional[List[HttpUrl]] = None  # 유효한 URL 목록, nullable
    price: Optional[PositiveFloat] = None  # nullable, >= 0이어야 함
    currency: Optional[Annotated[str, StringConstraints(min_length=1, max_length=1)]] = None  # nullable, 단일 문자
    sku: str  # 필수
    category: Optional[List[str]] = None  # nullable
    description: Optional[str] = None  # nullable
    long_description: Optional[str] = None  # nullable
    additional_information: Optional[AdditionalInformation] = None  # nullable

    @model_validator(mode="after")
    # 가격이 항상 통화와 연관되도록 하는 사용자 정의 검증 규칙
    def check_currency_if_price(cls, values):
        price = values.price
        currency = values.currency
        if price is not None and not currency:
            raise ValueError("가격이 설정된 경우 통화가 반드시 제공되어야 합니다")
        return values

Product 모델은 필드와 그 유형(예: str, HttpUrl 등)을 정의할 뿐만 아니라 유효성 제약 조건(예: 통화 필드는 단일 문자여야 함)도 포함합니다. 또한 가격이 항상 통화와 연관되도록 보장하는 엄격한 유효성 검사 규칙을 포함하며, 모델과 직접 일치하지 않는 추가 필드는 허용되지 않습니다.

단계 #2: 데이터 수집

아래 튜토리얼 중 하나에서 보여주는 것처럼 AI 웹 스크래핑을 통해 데이터를 수집한다고 가정해 보겠습니다:

스크래핑된 데이터가 담긴 product.json 파일이 생성됩니다. 여기서는 LLM이 다음과 같이 채웠다고 가정하겠습니다:

The input data from the product.json file

보시다시피, 이 출력은 Pydantic 모델과 정확히 일치하지 않습니다. 프롬프트에 출력 구조를 명시적으로 지정하지 않았거나 AI의 온도(temperature) 설정이 너무 높을 경우 흔히 발생하는 현상입니다.

3단계: 검증 규칙 적용

product.json 파일에서 데이터를 로드합니다:

import json

input_data_file_name = "product.json"
with open(input_data_file_name, "r", encoding="utf-8") as f:
    product_data = json.load(f)

그런 다음 Pydantic으로 다음과 같이 검증합니다:

try:
    # Pydantic 모델을 통해 데이터 검증
    product = Product(**product_data)
    print("검증 성공!")
except ValidationError as e:
    print("검증 실패:")
    print(e)

스크립트를 실행하면 다음과 같은 오류 출력이 나타납니다:

All the validation errors detected by Pydantic

이 경우 입력 데이터가 Product 모델에 부합하지 않아 9개의 검증 오류가 감지되었습니다.

4단계: 오류 수정

검증 단계를 통과하도록 데이터를 자동으로 수정하는 보편적인 프로세스는 존재하지 않습니다. 모든 데이터 파이프라인이나 워크플로는 서로 다르며, 각기 다른 측면에서 수정이 필요할 수 있습니다.

이 경우 해결책은 LLM 프롬프트에 예상 출력 형식을 명확히 지정하는 것만큼 간단합니다. OpenAI와 같은 대부분의 LLM이 지원하는 기능입니다.

: GPT Vision을 활용한 시각적 웹 스크래핑 가이드에서 해당 기능이 실제로 작동하는 모습을 확인할 수 있습니다.

구조화된 출력 기능이 지원되지 않는 경우, LLM에 JSON 문자열로 덤프하여 프롬프트에 예상되는 Pydantic 모델을 일치시키도록 요청할 수 있습니다:

prompt = f"""
주어진 페이지 콘텐츠에서 데이터를 추출하여 다음 구조로 반환하세요:
{Product.model_json_schema()}

콘텐츠:
<페이지 콘텐츠>
"""

두 경우 모두 LLM의 출력은 예상 형식과 일치해야 합니다.

이 변경 후 product.json에는 다음과 같은 내용이 포함됩니다:

The new product.json file

이번에 스크립트를 실행하면 다음과 같은 결과가 생성됩니다:

The new output of the script

훌륭합니다! 데이터 유효성 검사가 성공적으로 통과되었습니다. 데이터 유효성 검사가 완료되면, 데이터를 처리하거나 데이터베이스에 저장하거나 기타 작업을 수행할 수 있습니다.

데이터 검증: 핵심 개념 설명

데이터 유효성 검사 대 데이터 검증 가이드를 계속해서 두 번째 기술인 데이터 검증에 초점을 맞춰 살펴보겠습니다.

데이터 검증이란 무엇이며 왜 중요한가?

데이터 검증은 데이터가 정확하고 실제 사실을 반영하는지 확인하는 과정입니다. 이는 정보를 권위 있는 출처와 비교하여 수행됩니다.

데이터 유효성 검사가 미리 정의된 규칙(예: 이메일 주소가 올바른 형식인지)을 충족하는지만 확인하는 것과 달리, 검증은 데이터가 진실되고 현실과 일치하는지(예: 이메일이 실제로 존재하며 의도된 사람에게 속하는지)를 확인합니다.

데이터 검증은 특히 정보의 의미 측면에서 데이터 품질을 보장하는 핵심입니다. 결국, 구조가 잘 잡히고 깨끗해 보이는 데이터에도 잘못된 정보가 포함될 수 있습니다. 부정확한 데이터에 의존하면 비용이 많이 드는 실수, 결함이 있는 의사 결정, 불만족스러운 고객 경험, 운영 비효율성으로 이어질 수 있습니다.

데이터 검증 점검 사례

데이터 검증은 까다로울 수 있으며, 올바른 접근 방식은 입력 데이터와 운영 영역에 크게 좌우됩니다. 그럼에도 불구하고 몇 가지 일반적인 검증 방법으로는 다음과 같습니다:

  • 자동 검증: 전문 소프트웨어, 제3자 서비스 또는 에이전트형 AI 시스템을 활용하여 신뢰할 수 있는 출처와 데이터를 교차 참조합니다.
  • 교정: 문서, 데이터 또는 데이터 필드를 수동으로 검토하여 정확한 정보가 포함되었는지 확인합니다. 이는 해당 주제에 대한 지식을 가진 사람이 수동으로 수행하거나 AI가 자동으로 수행할 수 있습니다.
  • 이중 입력: 두 개의 별도 시스템(또는 자율 AI 에이전트)이 동일한 주제에 대한 데이터를 독립적으로 입력합니다. 이후 기록을 비교하여 불일치 사항을 표시하여 검토 또는 수정합니다.
  • 원본 데이터 검증: 데이터베이스에 저장된 데이터를 원본 문서(예: 환자 의료 기록)와 비교하여 일치 여부를 확인합니다.

언제 수행해야 하는가

데이터 출처를 완전히 신뢰할 수 없을 때 데이터 검증을 수행해야 합니다. AI를 활용해 데이터를 생성하거나 보강할 때 흔히 발생하는 사례로, 그럴듯해 보이지만 부정확한 정보가 생성될 수 있습니다.

데이터 이전이나 통합과 같이 데이터가 전송되거나 저장된 경우에도 데이터 검증은 중요합니다. 이러한 작업 후에는 결과 데이터의 정확성이 유지되는지 확인해야 합니다. 데이터 검증은 지속적인 데이터 품질 유지 관리의 일환으로도 관련성이 있습니다.

일반적으로 데이터 검증은 데이터 유효성 검사(validation) 이후에 수행된다는 점을 명심하세요. 데이터 구조가 예상된 형식과 일치하지 않으면 검증 자체가 무의미합니다. 데이터가 유효성 검사를 통과한 후에야 검증으로 진행하는 것이 타당합니다.

데이터 검증은 검증보다 확실히 더 복잡합니다. 앞서 간단한 Python 스크립트로 보여드렸듯이 결정론적 결과를 얻을 수 없기 때문입니다. 정보가 진실인지 절대적인 확신으로 판단하는 것은 매우 어려운 일이기 때문입니다.

데이터 검증의 주요 접근법

사용자가 제출한 콘텐츠를 다룰 때 가장 효과적인 검증 방법은 인적 검증을 통한 것입니다. 예시는 다음과 같습니다:

  • 이메일 검증: 사용자가 등록 시 이메일 주소를 입력하면, 해당 주소가 유효하고 접근 가능한지 확인하기 위해 확인 링크나 코드가 포함된 자동 이메일이 발송됩니다.
  • 전화번호 검증: 문자 메시지나 전화 통화로 일회용 비밀번호(OTP)를 전송하여 번호가 유효하고 활성화되었으며 사용자에게 속하는지 확인합니다.

마찬가지로, 신원 또는 주소 확인을 위해 사용자에게 문서나 청구서 제출을 요청할 수 있습니다. 이러한 문서는 OCR 시스템으로 처리하여 사용자가 입력한 데이터가 업로드된 문서의 정보와 일치하는지 확인할 수 있습니다. 이 접근 방식은 여전히 사기에 취약할 수 있지만, 데이터 신뢰성을 높이는 데 매우 유용합니다.

진정한 도전은 가장 방대하고 비정형화된 정보원인 웹에서 공개 데이터를 수집할 때 발생합니다. 이 경우 정보의 정확성을 판단하기 어렵습니다. 일반적인 접근법은 신뢰할 수 있는 출처(예: 문서, 공식 성명)를 우선시하고, 주어진 입력 내용을 바탕으로 그 출처를 추적하며, 신뢰할 수 있는 출처와 온라인에서 교차 검증하고 결과를 비교하는 것입니다.

이를 수동으로 수행하는 것은 매우 시간이 많이 소요되기 때문에, 웹 데이터 검색 및 스크래핑 도구를 갖춘 AI 에이전트를 사용하여 이러한 작업의 상당 부분이 자동화되고 있습니다.

데이터 검증 방법: Python 예시

이 섹션에서는 데이터 검증을 위한 AI 에이전트를 구축하는 단계별 예시를 확인할 수 있습니다. 해당 에이전트는 다음과 같은 작업을 수행합니다:

  1. 샘플 텍스트를 입력으로 받습니다.
  2. 웹 검색 및 스크래핑 도구로 확장된 LLM에 정보를 전달합니다.
  3. AI에게 원본 텍스트의 주요 주제를 식별하고 정확성을 검증하기 위해 관련성이 높고 신뢰할 수 있는 페이지를 Google에서 검색하도록 요청합니다.
  4. 해당 페이지에서 정보를 스크래핑하여 원본 텍스트와 비교합니다.
  5. 데이터 정확성 여부를 표시하는 보고서를 반환하며, 부정확할 경우 수정 방법을 제안합니다.

웹 데이터 검색, 검색, 상호 작용 등을 지원하는 AI 지원 인프라(예: Bright Data의 AI 인프라) 없이는 이러한 유형의 워크플로를 구현할 수 없습니다.

보다 쉬운 통합을 위해 60개 이상의 도구를 제공하는 Bright Data Web MCP를 사용할 것입니다. 특히 무료 티어에는 다음 두 가지 도구가 포함됩니다:

  • search_engine: Google, Bing 또는 Yandex에서 JSON 또는 Markdown 형식의 검색 결과를 가져옵니다.
  • scrape_as_markdown: 봇 탐지 및 CAPTCHA를 우회하여 모든 웹페이지를 깔끔한 마크다운 형식으로 스크랩합니다.

이 두 도구만으로도 데이터 검증 에이전트를 구동하고 목표를 달성하기에 충분합니다!

시나리오 설명

정확성을 검증하고자 하는 요약 데이터가 summary.txt 파일에 있다고 가정합니다. 예를 들어, 다음은 슈퍼볼 LIX에 대한 간략한 요약입니다:

The summary.txt input file

LangChain과 Web MCP를 통합하여 데이터 검증 에이전트를 구축할 것입니다. 따라하려면 다음이 필요합니다:

  • 로컬에 설치된 Python.
  • 설정된 LangChain 프로젝트.
  • Web MCP 연결 인증을 위한 Bright Data API 키.
  • OpenAI API 키.

시작하기 전에 Bright Data의 Web MCP와 통합하기 위한 LangChain MCP 어댑터 사용법 튜토리얼을 검토하세요. 다른 프레임워크나 도구를 사용하려면 다음 가이드를 확인하세요:

데이터 검증을 위한 AI 에이전트 구축

LangChain과 Bright Data의 웹 MCP를 사용하여 데이터 검증 에이전트를 구축하는 방법은 다음과 같습니다:

# pip install langchain["openai"] langchain-mcp-adapters langgraph

import asyncio
import os
os.environ["OPENAI_API_KEY"] = "<YOUR_OPENAI_API_KEY>" # OpenAI API 키로 대체

from langchain_openai import ChatOpenAI
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent

async def main():
    # 검증할 입력 데이터 로드
    input_file_name = "summary.txt"
    with open(input_file_name, "r", encoding="utf-8") as f:
        summary_data_to_verify = f.read()

    # LLM 엔진 초기화
    llm = ChatOpenAI(
        model="gpt-5-nano",
    )

    # 로컬 Bright Data Web MCP 서버 인스턴스 연결 설정
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "@brightdata/mcp"],
        env={
            "API_TOKEN": "<YOUR_BRIGHT_DATA_API_KEY>", # 본인의 Bright Data API 키로 대체
        }
    )

    # MCP 서버에 연결
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # MCP 클라이언트 세션 초기화
            await session.initialize()

            # MCP 도구 가져오기
            tools = await load_mcp_tools(session)

            # ReAct 에이전트 생성
            agent = create_react_agent(llm, tools)

            # 에이전트 작업 설명
            input_prompt = f"""
            아래 입력 내용을 바탕으로 다음 단계를 수행하세요:
            1. 주제를 구글식 검색어로 식별하고, 이를 활용해 웹 검색을 통해 정보를 수집하세요.
            2. 검색 결과에서 상위 2~3개의 권위 있는 출처(예: 신뢰할 수 있는 뉴스 사이트, 학술지, 공식 간행물)를 선택하십시오.
            3. 선택된 페이지의 내용을 스크래핑하십시오.
            4. 스크래핑된 정보를 입력 내용과 비교하여 정확성을 판단하십시오.
            5. 정확하지 않은 경우, 입력 내용에서 발견된 모든 오류 목록과 수정된 정보, 그리고 이를 뒷받침하는 출처 링크를 포함한 보고서를 생성하십시오.

            입력 내용:
            {summary_data_to_verify}
            """

            # 에이전트 응답 스트리밍
            async for step in agent.astream({"messages": [input_prompt]}, stream_mode="values"):
                step["messages"][-1].pretty_print()

if __name__ == "__main__":
    asyncio.run(main())

위의 스크립트에서 가장 중요한 부분은 프롬프트 자체이므로 이에 집중하세요.

에이전트 실행

에이전트를 실행하면 주요 주제를 “슈퍼볼 LIX”로 정확히 식별하는 것을 확인할 수 있습니다. 그런 다음 Web MCP의search_engine 도구를 사용하여 Google 검색을 실행합니다:

search_engine tool call

결과 SERP에서 ESPN과 CBS 스포츠 기사를 주요 출처로 식별하고 scrape_as_markdown 도구를 사용하여 스크래핑합니다:

The scrape_as_markdown tool call

세 뉴스 출처의 콘텐츠를 추출한 후, 다음과 같은 마크다운 보고서를 생성합니다:

The final output Markdown

Visual Studio Code에서 렌더링하면 최종 보고서를 확인할 수 있습니다.

보시다시피, Web MCP의 웹 검색 및 스크래핑 기능 덕분에 LangChain 에이전트는 원본 오류 텍스트의 모든 오류를 식별할 수 있었습니다. 미션 완료!

데이터 검증 vs 데이터 확인: 요약표

아래 데이터 검증 대 데이터 확인 요약표에서 두 기법을 비교해 보세요:

측면 데이터 검증 데이터 검증
정의 사용 또는 저장 전에 사전 정의된 규칙 및 표준에 따라 데이터의 정확성, 품질 및 무결성을 확인합니다. 권위 있는 출처와 비교하여 데이터가 실제 사실을 정확하게 반영하는지 확인합니다.
목적 데이터가 예상된 형식, 유형, 범위 및 규칙을 준수하도록 보장하며, 불량 데이터가 시스템에 유입되는 것을 방지합니다. 데이터가 의사 결정에 있어 진실되고 정확하며 신뢰할 수 있도록 보장합니다.
시기 데이터 입력 시점, 추출 후, 변환 후 또는 주기적으로 수행됩니다. 검증 후 또는 데이터 소스의 신뢰성이 불확실할 때마다 수행됩니다. 일반적으로 데이터 수집 또는 전송 후 수행됩니다.
복잡성 상대적으로 단순함; 정의된 규칙에 기반한 결정론적 검사. 더 복잡함; 불확실성, 외부 소스 및 수동 검토가 포함될 수 있음; 비결정적 결과가 발생할 수 있음.
가격은 0 이상이어야 함 가격이 공식 매장 목록과 일치하는지 확인

결론

이 데이터 검증 대 데이터 확인 블로그 게시물에서 배운 바와 같이, 데이터 검증과 데이터 확인은 서로 다르지만 상호 보완적인 두 가지 작업을 다룹니다. 특히, 둘 다 높은 데이터 품질 달성에 기여합니다. 또 다른 유사한 점은 둘 중 하나를 간과하면 대부분의 비즈니스 운영을 지원하는 데이터 기반 프로세스 전반에 걸쳐 심각한 문제를 야기할 수 있다는 것입니다.

그렇기에 신뢰할 수 있고 안정적인 데이터 공급자를 선택하는 것이 정말 필수적입니다. 이 공급자는 적절한 데이터 유효성 검증을 보장하는 다양한 솔루션을 제공하고 효과적인 데이터 검증 시스템을 구축할 수 있는 도구를 제공해야 합니다.

Bright Data는 훌륭한 사례입니다. 즉시 사용 가능한 검증된 데이터셋부터 웹에서 정확한 정보를 수집하기 위한 AI 지원 웹 스크래핑 솔루션까지 다양한 제품을 제공하여 검증 및 확인 워크플로우를 모두 지원합니다.

지금 바로 무료 Bright Data 계정에 가입하고 당사의 데이터 서비스를 경험해 보세요!