📰 AI 뉴스2026-07-164분
OpenAI, Structured Outputs 스키마 제약 완화—재귀·유니온 타입 정식 지원
OpenAI가 Structured Outputs의 JSON Schema 지원 범위를 확장해, 그동안 불가능했던 재귀 참조(`$ref`)와 `anyOf` 유니온 타입을 `strict: true` 모드에서 공식 지원한다. 복잡한 중첩 데이터 모델을 단일 API 호출로 100% 스키마 준수 형태로 출력할 수 있게 돼, 파싱 오류와 재시도 로직을 제거할 수 있다.
openaistructured-outputsapi
기존 한계와 이번 변경 내용
Structured Outputs가 2024년 도입된 이후 strict: true 모드는 스키마 준수를 보장하지만, 두 가지 주요 제약이 있었다.
- 재귀 스키마 불가: 트리·그래프 구조처럼 자기 참조(
$ref: "#")를 포함한 스키마는 오류 반환 anyOf제한: 유니온 타입은null허용(Optional) 용도로만 사용 가능, 실질적 다형성 불가
이번 업데이트로 두 제약이 모두 해제되었다.
{
"name": "ast_node",
"strict": true,
"schema": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["BinaryExpr", "Literal", "Identifier"] },
"left": { "anyOf": [{ "$ref": "#" }, { "type": "null" }] },
"right": { "anyOf": [{ "$ref": "#" }, { "type": "null" }] },
"value": { "type": "string" }
},
"required": ["type", "left", "right", "value"]
}
}
위 스키마로 GPT-4.1 기반 코드 파서가 AST를 직접 JSON으로 반환하는 파이프라인을 구성할 수 있다.
실무 적용 시나리오
코드 분석 도구: 소스 코드를 입력받아 AST 또는 CFG(제어 흐름 그래프)를 재귀 JSON으로 직접 출력, 별도 파서 없이 프론트엔드에서 시각화
다형성 API 응답 생성: anyOf로 SuccessResponse | ErrorResponse | PendingResponse를 하나의 스키마로 정의해 LLM이 상황에 맞는 타입을 선택 출력
문서 구조 추출: 중첩 섹션·하위 섹션이 무한 깊이로 이어지는 법률 문서·기술 매뉴얼을 재귀 스키마로 구조화
지원 모델: GPT-4.1, GPT-4.1 Mini, GPT-4o, o3 계열. 가격은 기존 모델별 토큰 요금 동일 적용(공식 페이지 참조).
한국 개발자 주목 포인트
- 재시도 비용 제거: 기존에는 스키마 불일치로 인한 재시도가 평균 10~20% 토큰 낭비를 유발했으나,
strict모드 확장으로 제거 가능 - Zod·Pydantic 연동 강화: TypeScript 프로젝트의
zod-to-json-schema, Python의pydantic모델이 재귀 타입을 포함해도 그대로 스키마로 변환·전달 가능 - 공공·금융 데이터 처리: 계층형 행정구역 코드, 복합 금융 상품 구조처럼 국내 도메인에서 자주 등장하는 재귀 데이터 모델 처리에 즉시 활용 가능
출처: OpenAI API Changelog