구조화된 데이터 추출을 위해 상세한 JSON 스키마를 작성하는 것은 AI 도구를 사용할 때 실제로 골칫거리가 될 수 있습니다. 복잡한 스키마를 만드는 대신 프롬프트에 직접 원하는 데이터 구조를 지정할 수 있는 기발한 해결 방법이 있습니다.
유연한 스키마 접근 방식
모든 데이터 추출 작업마다 상세한 스키마를 작성하는 대신, 어떤 객체 구조든 받아들이는 to_json이라는 범용 도구 하나를 만들 수 있습니다. 핵심은 입력 스키마가 추가 속성을 허용하도록 설정한 다음, 프롬프트 자체에 정확한 요구 사항을 명시하는 것입니다.

이 접근 방식은 대규모 JSON 스키마를 끊임없이 작성하고 관리해야 하는 주요 골칫거리를 제거합니다. 결과는 전용 스키마만큼 좋지는 않겠지만, 훨씬 적은 설정 작업으로도 여전히 고품질의 JSON 출력을 얻을 수 있습니다.
작동 방식
과정은 간단합니다:
- 어떤 객체 구조든 받아들이는 단일 유연한 스키마를 만듭니다
- 프롬프트에서 원하는 데이터 구조를 정확히 명시합니다
- Claude에게 지정한 구조로
to_json도구를 호출하도록 지시합니다 tool_choice를 사용하여 Claude가 해당 도구를 사용하도록 강제합니다
프롬프트 설정하기
프롬프트를 작성할 때는 원하는 구조에 대해 매우 명확하게 작성해야 합니다. 요청을 구성하는 방법의 예시는 다음과 같습니다:
Analyze the article below and extract key data. Then call the to_json tool.
<article_text>
{result["text"]}
</article_text>
When you call to_json, pass in the following structure:
{{
"title": str # title of the article,
"author": str # author of the article,
"topics": List[str] # List of topics mentioned in the article
}}API 호출하기
API 호출은 유연한 스키마를 사용하며 도구 사용을 강제합니다:
쉬운 구조 변경
실제 장점은 데이터 구조를 수정해야 할 때 명확해집니다. 전체 스키마를 다시 작성하는 대신 프롬프트만 업데이트하면 됩니다. 주제 개수를 나타내는 필드를 추가하고 싶으신가요? 한 줄만 추가하면 됩니다:
이것으로 끝입니다 - 스키마 수정이 필요 없습니다.
각 접근 방식을 사용해야 할 때
유연한 스키마 접근 방식은 다음과 같은 경우에 효과적입니다:
- 빠른 프로토타이핑 및 실험
- 간단한 데이터 추출 작업
- 데이터 요구 사항을 자주 변경하는 상황
다음과 같은 경우에는 전용 스키마를 사용하세요:
- 중요한 프로덕션 데이터 추출 작업
- 복잡한 중첩 데이터 구조
- 가능한 최고의 정확도가 필요한 경우
유연한 접근 방식은 설정 작업의 10%만으로 약 90%의 품질을 제공하므로, 스키마 관리 부담 없이 구조화된 데이터 추출이 필요한 대부분의 사용 사례에 적합합니다.