개발 slecs

크롤링 데이터에 AI 콘텐츠 자동 생성 차단 로직 추가

목차

brainstorm 실행 스크립트에서 크롤 기반 사이트로부터 수집한 데이터에 대해 자동으로 AI 콘텐츠를 생성하지 않도록 막는 로직을 추가했다. 얘기는 간단하지만, 뒤에는 여러 문제 정황이 있었다.

왜 이런 제약이 필요했나

자동 brainstorm 실행 파이프라인이 모든 데이터 소스에 동일한 규칙을 적용하다 보니, 크롤링으로 수집한 콘텐츠까지 new_content(새로운 AI 창작 콘텐츠) 생성 대상으로 삼고 있었다. 처음엔 "자동화할 수 있는 건 다 자동화하자"라는 마인드로 처리했지만, 몇 가지 숨은 리스크가 있었다:

  • 출처 불명확성: 크롤링 데이터는 그 자체로 타 사이트의 콘텐츠를 수집한 것인데, 거기에 AI 재창작을 얹으면 원저작자 관점에서 법적 애매함
  • 품질 편향: 크롤 데이터는 이미 외부 문맥을 포함하고 있는데, AI가 그걸 다시 해석해서 창작하면 정합성이 떨어질 수 있음
  • 팀 업무 증가: AI 생성 결과가 부실하면 수동 검수/수정 비용이 늘어남

기술 입장에서 "자동화"는 신뢰도와 함께 와야 한다. 신뢰도가 없으면 자동화가 역효과다.

구현: 데이터 출처 체크 추가

scripts/brainstorm_exec.py 에서 new_content 생성 로직이 실행되기 전에 데이터 소스를 판단하는 단계를 추가했다. 크롤 기반 사이트에서 온 데이터라면 new_content 생성 단계를 건너뛰고, 원본 데이터만 기록하도록 분기 처리.

데이터 소스 AI 창작 (new_content) 주석
직접 입력 / 네이티브 수집 ✓ 실행 신뢰 가능한 출처
크롤 기반 사이트 ✗ 차단 출처 명확하지 않음
파트너 API ✓ 실행 (조건부) 계약상 허용 범위 확인 후

대략적인 로직 구조:

def process_content(item):
    # 데이터 출처 판정
    if is_crawled_source(item['source']):
        # 크롤 기반: 원본만 저장, AI 창작 스킵
        return {
            'content': item['content'],
            'new_content': None,  # 생성 안 함
            'source_type': 'crawled'
        }
    else:
        # 신뢰 가능한 출처: 정상 파이프라인
        return {
            'content': item['content'],
            'new_content': generate_ai_content(item),  # 생성 실행
            'source_type': 'native'
        }

배운 점과 앞으로의 설계

이 수정을 통해 팀과 함께 정한 원칙이 몇 가지 있다.

첫째, 자동화 파이프라인은 명시적 가드레일을 가져야 한다. 처음부터 "이 조건에선 실행할 수 없다"를 코드에 심는 게, 나중에 사람이 "어, 이 케이스를 빠뜨렸네" 하면서 수동 대응하는 것보다 훨씬 명확하다.

둘째, 데이터 혈통(data lineage)이 중요하다. 어디서 온 데이터인지 추적할 수 있어야 문제가 생겼을 때 롤백이나 조정이 쉽다. 이번 경우도 크롤 소스를 명시적으로 마킹해뒀기 때문에, 나중에 "크롤 데이터도 AI 창작할 수 있게 허용하자"는 요청이 들어와도 confidence threshold를 추가하는 식으로 대응할 수 있다.

셋째, 자동화의 신뢰도는 팀 신뢰도다. 이 수정으로 brainstorm 결과물에 대한 팀의 신뢰가 한 단계 올라갔다. "혹시 크롤 데이터가 섞여 있진 않나" 하는 의구심 없이 결과를 쓸 수 있게 됐다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.