← 전체 회차
C-0502026-09-08

AI Ready 데이터 : 당신의 모델에 빠진 연결고리

AI Ready 데이터의 다섯 가지 조건과 수집·정제·표준화·벡터화·관리 파이프라인을 설명한다. 단순한 데이터 정제를 넘어 맥락, 권한, 접근성을 갖추는 방법과 적용 시 주의점을 다룬다.

#AI Ready 데이터#데이터 품질#데이터 파이프라인#데이터 거버넌스#벡터화#지식 그래프
01

영상

· video
▶ 6:35youtu.be/Iwpu-79GGMU
03

학습 자료

· material

AI Ready 데이터의 조건과 준비 파이프라인

출처: https://www.youtube.com/watch?v=Iwpu-79GGMU · 스마트한 또라이 · 6:35 · 2026-02-08

요지

  • AI가 활용하는 데이터의 품질과 맥락은 결과의 신뢰성에 큰 영향을 준다.
  • AI Ready 데이터는 오류와 중복을 제거하는 데서 나아가, 특정 AI 작업에 필요한 구조·맥락·보안·접근성을 갖춘 데이터다.
  • 영상은 데이터 준비 과정을 수집, 정제, 표준화, 벡터화, 이력 추적 및 관리의 다섯 단계로 설명한다.
  • 준비된 데이터를 재사용하면 반복적인 가공 작업을 줄일 수 있지만, 성능 개선과 비용 절감의 정도는 실제 작업에서 검증해야 한다.
  • 에이전트가 데이터를 해석하고 행동에 활용하도록 하려면 데이터 사이의 의미와 관계, 사용 권한까지 함께 관리해야 한다.

개요

영상은 AI 프로젝트의 성패를 모델 선택뿐 아니라 데이터 준비의 관점에서 살펴본다. 아무리 뛰어난 모델이라도 잘못된 정보, 설명이 없는 수치, 서로 충돌하는 문서를 입력받으면 신뢰할 수 있는 결과를 만들기 어렵다. 좋은 재료를 준비해야 좋은 요리를 만들 수 있다는 비유로 데이터 품질의 중요성을 설명한다.

AI Ready는 데이터를 특정 AI 용도에 바로 투입할 수 있도록 준비한 상태를 뜻한다. 이 교안은 영상의 다섯 가지 조건과 파이프라인을 중심으로 설명한다. 아래의 구체적인 설계 지침과 Python 코드는 이해를 돕기 위한 보충 예시이며, 영상에 제시된 구현은 아니다.

배경 / 사전 지식

Garbage in, garbage out은 입력이 부정확하면 출력도 부정확해질 수 있다는 원칙이다. 예를 들어 폐기된 환불 규정과 현재 규정이 구분 없이 섞여 있다면, AI는 문장이 자연스럽더라도 잘못된 안내를 생성할 수 있다. 이 경우 맞춤법을 고치는 것만으로는 문제가 해결되지 않는다. 적용 시점과 문서 상태를 함께 알려줘야 한다.

데이터 준비의 요구사항은 활용 방식에 따라 달라진다. 모델 학습에서는 학습 사례와 정답의 품질이 중요하고, 검색 증강 생성(RAG)에서는 질문에 맞는 근거를 찾아 제공할 수 있어야 한다. 에이전트가 업무 도구를 실행하는 경우에는 정보의 최신성과 작업 권한도 중요해진다. 따라서 AI Ready는 모든 데이터에 동일하게 부여하는 절대적인 상태라기보다, 정해진 작업의 요구조건을 충족했는지 판단하는 기준이다.

영상은 AI 프로젝트 시간의 80%가 데이터 준비에 쓰인다는 수치를 제시한다. 제공된 자막에는 조사 출처나 대상이 없으므로, 보편적인 통계로 확정하기보다 데이터 준비 부담을 강조하는 주장으로 이해해야 한다.

핵심 개념

정제성과 구조화

정제성은 오류, 중복, 누락 등 활용을 방해하는 문제를 다루는 조건이다. 같은 문서가 여러 번 들어 있거나 날짜 형식이 잘못된 경우가 여기에 해당한다. 다만 값이 비어 있다는 이유만으로 행을 삭제하면 중요한 사례까지 잃을 수 있으므로, 필수값과 선택값을 구분해야 한다.

구조화는 데이터를 일관된 형식으로 표현하는 일이다. 문서라면 식별자, 제목, 본문, 출처, 수정일 같은 필드를 분리하고, 수치라면 자료형과 단위를 명확히 한다. 구조가 같아야 여러 원천의 데이터를 같은 규칙으로 검사하고 처리할 수 있다.

맥락화

맥락화는 데이터의 의미를 해석하는 데 필요한 설명을 붙이는 일이다. 매출: 100만으로는 통화, 기간, 집계 범위를 알 수 없다. 2025년 1분기 국내 매출, 단위: 백만 원이라는 설명이 있어야 적절하게 사용할 수 있다.

문서 데이터에서도 작성 시점, 적용 대상, 유효 기간, 원본 위치가 중요한 맥락이 된다. 메타데이터는 이런 배경을 기계가 읽을 수 있는 필드로 보존하는 수단이다.

보안 및 준수

영상은 민감한 정보를 가리고 안전하게 사용할 수 있도록 관리해야 한다고 설명한다. 실무에서는 데이터에 접근할 수 있는 사람과 시스템, 허용된 사용 목적, 보관 범위를 정해야 한다.

민감정보를 제거하는 것과 접근 권한을 관리하는 것은 서로 다른 작업이다. 개인정보가 없는 사내 문서도 외부 공개가 허용되지 않을 수 있다. 데이터의 내용을 검사하면서 권한 정보도 함께 유지해야 한다.

접근성

접근성은 필요한 데이터를 적절한 방식으로 가져올 수 있는 상태다. 파일이 존재하더라도 위치를 모르거나 읽을 수 없는 형식이라면 AI 작업에서 활용하기 어렵다. 검색 가능한 저장소, 안정적인 조회 방식, 명확한 식별자 등이 접근성을 높인다.

여기서 접근성은 모든 사용자에게 데이터를 개방한다는 뜻이 아니다. 허용된 주체가 필요한 데이터를 찾고 읽을 수 있어야 한다는 의미다.

벡터화와 지식 그래프

벡터화는 텍스트 등의 데이터를 숫자 배열로 표현하는 과정이다. 텍스트 임베딩은 의미가 비슷한 문서를 찾는 검색에 활용할 수 있다. 다만 숫자로 바꿨다고 내용이 정확해지거나 권한 문제가 해결되는 것은 아니다.

지식 그래프는 개체와 그 사이의 관계를 명시적으로 표현한다. 예를 들어 제품 A → 적용 규정 → 규정 B처럼 연결하면 관련 정보를 따라가는 데 도움이 된다. 영상은 이를 에이전트 AI를 위한 준비 방향으로 제안한다. 모든 AI 시스템이 지식 그래프를 반드시 요구하는 것은 아니며, 관계 탐색이 필요한 작업인지부터 판단해야 한다.

작동 원리

영상이 제시한 다섯 단계를 문서 활용 상황에 적용하면 다음과 같다.

  1. 수집: 파일, 업무 시스템, 데이터베이스 등에서 필요한 자료를 모은다. 보충 설계로 원본 식별자와 수집 시점을 함께 기록하면 이후 결과를 원천 자료까지 추적할 수 있다.
  2. 정제: 빈 본문, 중복 자료, 잘못된 형식 등을 검사한다. 수정 가능한 문제는 정해진 규칙으로 고치고, 판단이 필요한 자료는 사유와 함께 검토 대상으로 분리한다.
  3. 표준화: 날짜, 단위, 필드 이름 등을 통일한다. 출처와 적용 범위 같은 맥락도 공통 스키마에 담는다. 문서를 나눠 저장한다면 각 조각이 원문 식별자를 유지하도록 한다.
  4. 벡터화: 의미 검색이 필요한 경우 텍스트를 임베딩으로 변환한다. 원문과 벡터를 연결해 검색 결과의 근거를 확인할 수 있게 한다. 정형 데이터 분석이나 단순 키워드 검색에서는 다른 표현 방식이 더 적절할 수 있다.
  5. 이력 추적 및 관리: 어떤 원본에 어떤 변환을 적용했는지 기록하고, 저장된 데이터의 권한과 갱신을 관리한다. 보충 설계로 원본이 수정되거나 삭제됐을 때 파생 데이터에도 반영하는 절차가 필요하다.

영상에서는 관리가 마지막 단계로 등장하지만, 출처 기록과 권한 확인은 수집부터 이어져야 한다. 최종 결과는 실제 질문이나 작업에 적용해 정확성, 조회 가능 여부, 근거 추적 가능성을 확인해야 한다.

코드 예시

다음은 Python 3 표준 라이브러리만 사용하는 실행 예시다. 문서의 공백과 날짜를 표준화하고, 필수값과 허용된 접근 등급을 검사하며, 동일 출처·동일 본문의 중복을 걸러낸다. 결과에는 출처와 변환 이력을 남긴다. 영상의 전체 파이프라인 중 정제·표준화·기초 이력 관리 부분을 보여준다.

import hashlib
import json
from datetime import date

raw_documents = [
    {
        "text": "  제품 A의   보증 기간은 1년입니다. ",
        "source": "manual-a",
        "updated_on": "2026-02-01",
        "access": "public",
    },
    {
        "text": "제품 A의 보증 기간은 1년입니다.",
        "source": "manual-a",
        "updated_on": "2026-02-01",
        "access": "public",
    },
    {
        "text": " ",
        "source": "manual-b",
        "updated_on": "2026-02-01",
        "access": "public",
    },
]

ready = []
rejected = []
seen = set()

for row_number, raw in enumerate(raw_documents, start=1):
    try:
        text = " ".join(raw["text"].split())
        source = raw["source"].strip()
        updated_on = date.fromisoformat(raw["updated_on"]).isoformat()
        access = raw["access"]

        if not text or not source:
            raise ValueError("本文 또는 출처 누락")
        if access not in {"public", "internal"}:
            raise ValueError("알 수 없는 접근 등급")

        content_hash = hashlib.sha256(text.encode("utf-8")).hexdigest()
        key = (source, updated_on, access, content_hash)
        if key in seen:
            raise ValueError("동일 출처·버전·권한의 중복 본문")
        seen.add(key)

        ready.append({
            "text": text,
            "metadata": {
                "source": source,
                "updated_on": updated_on,
                "access": access,
                "content_hash": content_hash,
                "transforms": ["normalize_whitespace", "validate_fields"],
            },
        })
    except (KeyError, ValueError, TypeError, AttributeError) as error:
        rejected.append({"row": row_number, "reason": str(error)})

print(json.dumps({"ready": ready, "rejected": rejected},
                 ensure_ascii=False, indent=2))
assert len(ready) == 1
assert len(rejected) == 2

첫 번째 문서는 공백이 정리된 상태로 남고, 두 번째는 중복, 세 번째는 빈 본문으로 제외된다. 해시는 내용 비교에 쓰이며 사실의 정확성을 증명하지 않는다. 또한 access 필드는 권한 표시일 뿐이다. 실제 접근 제한은 데이터를 제공하는 시스템에서 집행해야 한다. 이 예시는 민감정보 탐지, 임베딩 생성, 검색 품질 평가까지 구현하지 않으므로 전체 AI Ready 요건을 충족하는 완성품은 아니다.

함정·실수

  • 깨끗한 데이터면 준비가 끝났다고 판단하기: 오류 없는 숫자도 단위와 기간이 없으면 잘못 해석될 수 있다. 용도별 필수 맥락을 정의하고 누락 여부를 검사한다.
  • 모든 데이터를 무조건 벡터화하기: 벡터화는 활용 방식 중 하나다. 정확한 코드 조회나 수치 계산에는 식별자 검색과 정형 질의가 더 적절할 수 있다.
  • 품질 개선이 환각과 편향을 없앤다고 기대하기: 영상은 감소 효과를 강조하지만, 데이터 준비만으로 결과를 보장하지는 않는다. 실제 질문에 대한 답변과 근거를 평가한다.
  • 권한 필드를 저장하는 것으로 보안 처리가 끝났다고 보기: 조회 시점에 권한을 검사하지 않으면 제한된 자료가 노출될 수 있다. 검색 결과를 모델에 전달하기 전에 접근 가능 여부를 확인한다.
  • 누락값이나 중복을 기계적으로 삭제하기: 같은 본문이라도 출처·버전·권한이 다르면 보존할 이유가 있다. 삭제 기준을 명시하고 제외 사유를 남긴다.
  • AI가 모든 입력으로 계속 학습한다고 이해하기: 영상의 마지막 표현은 비유적으로 받아들여야 한다. 추론 중 입력을 참고하는 것과 모델 가중치를 학습으로 갱신하는 것은 구분해야 한다.

베스트 프랙티스

  1. 사용할 작업부터 정의한다. 고객 지원 검색이라면 최신 규정, 적용 대상, 근거 문서, 접근 권한처럼 필요한 조건을 구체화한다.
  2. 조건을 검사 가능한 기준으로 바꾼다. 필수 메타데이터 누락률, 중복률, 갱신 지연, 검색 성공 여부 등을 측정한다. 임계값은 해당 업무의 요구에 맞춘다.
  3. 원본과 가공본을 연결한다. 원본 식별자, 버전, 변환 규칙을 보존해 문제의 원인을 찾고 다시 처리할 수 있게 한다.
  4. 모호한 자료를 별도로 검토한다. 유효한 데이터를 과도하게 버리지 않도록 자동 수정과 사람의 판단이 필요한 경우를 나눈다.
  5. 변경과 삭제를 파생 데이터에 반영한다. 원문을 갱신했을 때 검색 색인과 벡터 저장소도 같은 기준으로 갱신한다.
  6. 작은 범위에서 효과를 검증한다. 대표 질문으로 데이터 준비 전후의 답변 정확성, 근거 적합성, 처리 비용을 비교한다. 관계를 따라가는 작업이 필요해지면 지식 그래프 도입을 검토한다.

참고

(영상 내 명시 없음)

제공된 자막에는 80% 수치의 조사 출처, 특정 도구, 논문 또는 구현 자료가 제시되지 않았다. 코드와 실무 적용 지침은 학습을 위한 보충 예시다.