자동화 slecs

CMS 사이트 메타데이터를 LLM으로 자동 학습하는 구조 구축

목차

CMS 시스템의 각 사이트가 메타데이터를 자동으로 학습하도록 site_learner.py를 구현했다. Claude CLI와 Sonnet 모델을 활용해 cms_site.meta 스키마를 동적으로 파악하는 작업이었다.

수동 메타데이터 정의의 한계

처음엔 각 사이트의 메타데이터(제목, 설명, 콘텐츠 타입, 필드 스키마 등)를 수동으로 정의하거나, 매번 프롬프트를 짜서 LLM에 물어보는 식으로 처리했다. 문제는:

  • 유지보수 비용: 사이트가 추가될 때마다 메타데이터 정의를 손으로 작성해야 함
  • 일관성 문제: 사람마다 다르게 정의해서 나중에 파싱 로직이 깨짐
  • 응답 시간: 매 요청마다 LLM을 호출하는 비효율
  • 프롬프트 관리: 각 상황에 맞춰 프롬프트를 조정해야 하는 오버헤드

특히 새로운 사이트를 온보딩할 때, 팀원이 "이 사이트의 meta를 어떻게 정의할까?" 하는 질문이 자주 나왔다. 정답이 없어서 결국 몇 번의 시행착오를 거쳐야 했다.

Claude CLI를 선택한 이유

이 문제를 해결하기 위해 claude_cli로 자동화하기로 결정했다. 몇 가지 옵션을 비교했는데:

접근법 장점 단점
수동 정의 정확도 높음 스케일 안 함, 시간 오래 걸림
매번 LLM 호출 유연함 느림, 비용 높음, 일관성 없음
Claude CLI + 캐싱 빠름, 재현 가능, 비용 효율 초기 구현 필요

Claude CLI의 장점은:
- Prompt Caching: 동일한 사이트 구조를 학습할 때 캐시 히트로 토큰 절감
- 일관된 모델: SDK와 동일한 Claude 모델 사용 가능
- 버전 관리: LLM 버전 업그레이드 시에도 코드 변경 최소화

특히 Prompt Caching은 중요했다. 사이트의 HTML 구조나 API 응답 예시가 크면, 매번 전송할 때 비용이 컸거든.

Sonnet을 선택한 회고

Sonnet(Claude 3.5 Sonnet)을 골랐다. 왜냐면:

  1. 속도 vs 비용: 우리 팀에서는 메타데이터 학습이 배치 작업(night job)이나 온보딩 시점에만 필요했음. 엄청 빠를 필요는 없음. 하지만 Opus는 비용이 3배 이상 비쌈.

  2. 충분한 능력: 사이트 구조 파악, 필드 타입 추론, 스키마 생성 정도는 Sonnet이 충분히 잘함. 복잡한 추론이 필요 없음.

  3. 팀 내 경험: 우리 팀은 이미 여러 프로젝트에서 Sonnet으로 배치 작업을 돌리고 있었음. 모니터링/디버깅 노하우도 있음.

단점도 있었다. Haiku는 더 싸지만, 메타데이터 정의 부정확으로 인한 downstream 버그 수정 비용이 더 클 수 있었음. "좀 더 비싸더라도 한 번에 제대로"가 우리 상황엔 맞았다.

# 대략적인 사용 패턴 (의사코드)
learner = SiteLearner(model="claude-3-5-sonnet")

# 첫 학습: full context 포함
meta = learner.learn(
    site_html=site_content,
    example_responses=[...],  # 캐시됨
    seed_schema={}
)

# 다음 호출: 캐시 히트
meta_updated = learner.refine(
    existing_meta=meta,
    new_examples=[...]
)

일반적인 LLM 자동화 패턴의 적용

이런 류의 작업을 하다 보니 느낀 패턴들:

  • 단계적 검증: 학습 후 결과를 샘플로 검증하는 단계가 필수. LLM이 만든 스키마가 실제 데이터와 맞는지 항상 확인해야 함
  • 재현성: 같은 입력이면 같은 출력이 나와야 하는데, 온도 설정이나 버전에 따라 달라질 수 있음. 로깅이 중요
  • 점진적 도입: 한 번에 모든 사이트를 자동 학습으로 전환하는 것보다, 파일럿 그룹에서 테스트 후 확대하는 게 안전

앞서 배운 점

  • Claude CLI 사용 결정은 "한 번만 구현하고 반복 사용"하는 배치 작업에 좋음. 실시간 API는 프로덕션 안정성이 더 중요하니 다른 고려사항이 있음
  • 팀 내에 "이 모델 썼을 때 이 정도 품질"에 대한 경험이 쌓이면, 다음 프로젝트에서 결정이 빨라짐
  • 비용 절감과 정확도 사이의 트레이드오프는 "사용 패턴"에 따라 달라짐. 자주 쓸수록 저가형 모델, 중요할수록 고가형 모델

이 작업을 통해 팀이 "LLM을 단순한 API 호출이 아니라 자동화 인프라의 일부"로 보는 시각이 생겼다.


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

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

댓글 0

첫 댓글 달아줘.