JSON·Markdown·표 등 구조화된 출력 형식을 자유자재로 제어하고, 파싱 오류 없는 안정적인 AI 출력을 설계하는 법을 익힌다.
왜 출력 형식 제어가 중요한가?
AI 출력을 실제 업무나 애플리케이션에서 사용하려면 예측 가능한 형식이 필요합니다. 자유 형식 텍스트는 읽기는 좋지만 프로그램이 파싱하기 어렵고, 매번 형식이 달라지면 후처리가 복잡해집니다.
JSON 출력 제어: AI 연동의 핵심
API 기반 AI 애플리케이션에서 JSON은 가장 중요한 출력 형식입니다.
# 기본 JSON 요청
"다음 텍스트에서 정보를 추출해서 JSON으로 반환해줘.
다른 설명 없이 JSON만 반환해줘.
형식:
{
"이름": string,
"회사": string,
"직책": string,
"연락처": string | null
}
텍스트: 안녕하세요, 저는 누구나HRD의 프로덕트 매니저 김지원입니다.
이메일은 jiwon@nugunahrd.com입니다."
JSON 출력 안정화 기법
# 기법 1: 마크다운 코드블록 요청
"JSON을 마크다운 코드블록(```json ... ```)으로 감싸서 반환해줘"
# 기법 2: 스키마 명시 (타입 강제)
"반드시 다음 스키마를 따르는 JSON만 반환해줘:
- id: 정수
- tags: 문자열 배열 (최소 1개)
- score: 0~100 사이의 숫자"
# 기법 3: OpenAI JSON Mode 사용
response = client.chat.completions.create(
model="gpt-4o",
response_format={"type": "json_object"},
messages=[...]
)
마크다운 구조 제어
보고서, 문서, 블로그 포스트에 적합한 형식입니다.
"다음 주제로 보고서를 작성해줘. 아래 마크다운 구조를 정확히 따라줘:
# [제목]
## 요약 (3문장 이내)
## 1. 현황 분석
### 1.1 주요 지표
(표 형식으로)
### 1.2 트렌드
## 2. 핵심 발견사항
(번호 목록, 각 항목 2~3줄)
## 3. 권고사항
(우선순위 순서로, 각 항목에 기대 효과 포함)
## 참고사항
(단, 불확실한 사항은 이 섹션에 명시)"
표(Table) 출력 제어
"비교 결과를 마크다운 표로 만들어줘.
컬럼: 항목 | 옵션A | 옵션B | 옵션C | 추천
행: 가격, 성능, 편의성, 지원, 확장성
추천 컬럼에는 ✓ 또는 빈칸으로 표시해줘"
리스트 형식 세밀 제어
# 중첩 구조 지정
"결과를 다음 구조로 작성해줘:
1. 메인 카테고리 (굵은 글씨)
- 세부 항목 (들여쓰기)
* 예시 (두 단계 들여쓰기)
각 메인 카테고리는 최대 3개, 세부 항목은 최대 5개"
# 번호 형식 지정
"1) 2) 3) 형식이 아닌 ① ② ③ 형식으로 번호 매겨줘"
출력 길이 정밀 제어
# 길이 제어 방법들
"정확히 3문장으로만 답해줘"
"100자 이내로 요약해줘"
"트위터 게시물처럼 140자 이내로"
"A4 한 장 분량 (약 800자)으로"
"핵심 포인트만, 1줄씩 최대 5개"
# 섹션별 길이 지정
"도입부 50자, 본문 200자, 결론 50자로 작성해줘"
멀티파트 출력 제어
# 여러 형식 혼합
"다음 회의록을 분석해서 세 부분으로 정리해줘:
[SUMMARY]
3문장 이내 전체 요약
[ACTION_ITEMS]
JSON 배열 형식:
[{"담당자": "...", "작업": "...", "기한": "..."}]
[RISKS]
발견된 리스크를 위험도(상/중/하) 표시와 함께 목록으로
회의록: [내용]"
출력 형식 검증 프롬프트
# 모델 자체 검증 요청
"JSON을 반환하기 전에, 형식이 올바른지 스스로 확인해줘:
1. 모든 필수 필드가 있는가?
2. 타입이 맞는가?
3. null이 아닌 값이 있어야 할 곳에 null이 있지 않은가?
확인 후 JSON만 출력해줘."
형식 제어 실패 시 복구 전략
# 잘못된 형식이 나왔을 때
"이전 답변을 다음 형식으로 변환해줘. 내용은 바꾸지 말고 형식만:
[원하는 형식 설명]"
# 파싱 전 정제
"마크다운 코드블록 제거하고 JSON만 남겨줘"
"답변에서 설명 텍스트를 제거하고 JSON만 반환해줘"
출력 형식을 정밀하게 제어하는 것은 AI를 실제 시스템에 통합할 때 핵심 역량입니다. JSON 스키마를 명시하고, 예시를 보여주고, 마지막에 형식 확인을 요청하는 3단계 패턴으로 파싱 오류를 90% 이상 줄일 수 있습니다.
관련 검색어 · 프롬프트 JSON 출력, 구조화된 AI 출력, 마크다운 형식 제어, ChatGPT 출력 형식, AI JSON 파싱, LLM 응답 형식 제어