파라미터 크기가 작은 LLM을 사용하여 AI 에이전트를 만들다 보면 이런 상황이 반드시 생겨요."분명히 JSON으로 답하라고 했는데 왜 마크다운 코드블록으로 감싸서 오지? 왜 필드가 빠져 있지?"LLM 출력을 믿고 그냥 json.loads() 하면 언젠가 반드시 터져요. 이번 글에서는 Pydantic으로 LLM 출력을 안정적으로 검증하는 방법을 정리해 드릴게요.왜 LLM 출력 파싱이 어려운가LLM은 확률적으로 텍스트를 생성해요. "JSON으로만 답해"라고 해도 이런 일이 생겨요.문제 1: 마크다운 펜스가 붙어서 옴```json{"result": "success"}**문제 2: 필드가 빠져 있음**```json{"result": "success"}// reasoning 필드가 없음문제 3: 타입이 틀림{"..