구조화 출력은 필요한 필드와 타입을 스키마로 표현하고 모델 응답을 그 구조에 맞춥니다. 자유로운 문장을 파싱하는 부담을 줄이지만 값의 의미까지 자동으로 검증되지는 않습니다.
데모는 응답 객체에 필드가 채워지고 타입이 어긋난 값은 검사에서 걸리는 모습을 보여줍니다. 스키마를 통과한 뒤에도 업무 규칙과 사실 관계를 확인해야 합니다.
언제 쓰나
모델 결과를 API·DB·자동화 단계에 안전하게 연결할 데이터 형식이 필요할 때 사용합니다.
모델 응답을 정해진 필드와 타입의 데이터 형태로 받습니다.
<div class="scene"><div class="heading">SCHEMA CHECK</div><div class="schema mono">{<br> "title": <span id="title-value">"출시"</span>,<br> "count": <span id="count-value">3</span><br>}</div><div class="validation" id="validation">필드와 타입 일치</div></div>.scene{width:min(94vw,800px);height:min(88vh,326px);padding:clamp(10px,2.7vmin,19px);border:1px solid var(--line);border-radius:13px;background:var(--surface);font:500 clamp(13px,2.4vmin,17px)/1.3 var(--font-sans,sans-serif);position:relative;overflow:hidden}.scene .mono{font-family:ui-monospace,SFMono-Regular,monospace}.scene .muted{color:var(--muted)}.scene .accent{color:var(--accent)}.scene .heading{font-weight:750;color:var(--accent);margin-bottom:clamp(5px,1.6vmin,12px)}.schema{border:1px solid var(--line);background:var(--bg);border-radius:7px;padding:clamp(9px,3vmin,19px);height:62%;line-height:1.55}.schema span{color:var(--accent)}.schema span.bad{color:#c05545}.validation{margin-top:8px;padding:5px 8px;border-left:3px solid var(--accent);background:var(--bg)}.validation.bad{border-color:#c05545;color:#c05545}let bad=false;function draw(){bad=!bad;document.getElementById('count-value').textContent=bad?'"three"':'3';document.getElementById('count-value').classList.toggle('bad',bad);document.getElementById('validation').textContent=bad?'count는 숫자여야 함':'필드와 타입 일치';document.getElementById('validation').classList.toggle('bad',bad)}draw();setInterval(draw,1500)구조화 출력은 필요한 필드와 타입을 스키마로 표현하고 모델 응답을 그 구조에 맞춥니다. 자유로운 문장을 파싱하는 부담을 줄이지만 값의 의미까지 자동으로 검증되지는 않습니다.
데모는 응답 객체에 필드가 채워지고 타입이 어긋난 값은 검사에서 걸리는 모습을 보여줍니다. 스키마를 통과한 뒤에도 업무 규칙과 사실 관계를 확인해야 합니다.
모델 결과를 API·DB·자동화 단계에 안전하게 연결할 데이터 형식이 필요할 때 사용합니다.