> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 한국어 프롬프트 최적화

> 이 문서는 **[GenAI 개념](/blog/guides/genai-concepts/overview)** 섹션의 일부입니다.

## 한국어 프롬프트 작성 전략

한국어로 프롬프트를 작성할 때 알아두면 유용한 팁들입니다.

### 존댓말/반말 지정

System Prompt에서 응답 어투를 명시하면 일관성 있는 출력을 얻을 수 있습니다.

```
# 격식체 (고객 대응용)
"존댓말로 정중하게 답변하세요. 격식체(-습니다, -입니다)를 사용하세요."

# 비격식체 (내부 도구용)
"반말로 간결하게 답변해. 불필요한 인사말 생략."
```

### 한영 혼용 전략

* **기술 용어는 영어 유지가 더 정확합니다**: "Transformer의 Attention 메커니즘을 설명하세요"가 "트랜스포머의 어텐션 메커니즘을 설명하세요"보다 정확한 응답을 생성합니다
* **프롬프트 자체를 영어로 작성하고 "한국어로 답변하세요"를 추가** 하면 더 정확한 경우도 있습니다 (특히 최신 기술 주제)

```
# 한영 혼용 예시
Analyze the following customer feedback and extract key issues.
Respond in Korean with the following JSON format:
{"issues": ["이슈1", "이슈2"], "sentiment": "긍정/부정/중립"}
```

### 한국어 토큰 비용 절감 팁

한국어는 영어 대비 동일 의미를 전달하는 데 더 많은 토큰을 소비합니다. 비용 절감을 위해 프롬프트를 간결하게 작성하세요.

```
# Before (토큰 많음)
"다음 문서를 요약하여 핵심 내용을 3개의 불릿 포인트로 정리하여 주시기 바랍니다"

# After (토큰 약 50% 절약)
"다음 문서를 3줄로 요약:"
```

> **참고**
> **팁**: 불필요한 조사, 어미, 경어 표현을 줄이고 키워드 중심으로 프롬프트를 작성하면 토큰을 크게 절약할 수 있습니다. 다만 System Prompt의 역할 정의와 제약 조건은 정확성을 위해 충분히 상세하게 유지하세요.

### 한국어 특화 주의사항

| 주의사항         | 설명                                            | 대응 방법                      |
| ------------ | --------------------------------------------- | -------------------------- |
| **동음이의어**    | "배" (과일/선박/복부), "차" (음료/자동차) 등                | 문맥을 명확히 제공하거나, 괄호로 의미 한정   |
| **높임법 체계**   | 격식체/비격식체가 뒤섞이면 어색한 출력                         | System Prompt에서 어투를 명확히 지정 |
| **숫자/날짜 형식** | "2026년 3월 31일" vs "3/31/2026" vs "2026-03-31" | 출력 형식에 날짜 포맷을 명시           |

***

## 프롬프트 디버깅: 원하는 결과가 안 나올 때

프롬프트가 제대로 작동하지 않을 때, 직감에 의존하지 말고 **체계적으로 진단** 해야 합니다.

### 증상별 진단 체크리스트

| 증상                 | 가능한 원인           | 해결법                         |
| ------------------ | ---------------- | --------------------------- |
| 응답이 너무 일반적         | 지시가 모호함          | 구체적 요구사항 추가 (형식, 길이, 대상 독자) |
| 형식이 불안정            | 출력 형식 명시 부족      | JSON 스키마 또는 예시 명시           |
| 핵심 정보 누락           | 컨텍스트 부족          | 관련 배경 정보 추가                 |
| 환각 발생              | 모델이 모르는 정보 요구    | RAG 추가 또는 "모르면 모른다고 답하라" 지시 |
| Few-shot 예시와 다른 형식 | 예시와 실제 입력 패턴 불일치 | 예시를 실제 입력과 유사하게 수정          |
| 지시를 무시함            | 지시가 너무 길거나 모순적   | 핵심 지시를 앞쪽에, 우선순위 명시         |

### 프롬프트 반복 개선 프로세스 (Iterative Refinement)

프롬프트 최적화는 한 번에 완성되지 않습니다. 다음 사이클을 반복하세요:

1. **기본 프롬프트 작성**— 핵심 지시와 기대 출력 형식을 정의
2. **5\~10개 테스트 케이스로 실행**— 다양한 입력 유형을 포함
3. **실패 케이스 분석**— 어떤 유형의 입력이 실패하는가?
4. **실패 원인별 프롬프트 수정**— 위 진단 체크리스트 참조
5. **다시 테스트**— 수정이 기존 성공 케이스를 깨뜨리지 않는지 확인
6. **반복**— 목표 정확도에 도달할 때까지

> **성공**
> **핵심**: 프롬프트 엔지니어링은 "한 번에 완벽하게"가 아닌 "빠르게 반복하며 개선"하는 과정입니다. AI Playground에서 10번 반복하는 것이 30분 고민하는 것보다 효과적입니다.

***

## 토크나이저별 한국어 비교 데이터

동일한 한국어 문장이 토크나이저에 따라 **완전히 다른 토큰 수** 로 변환됩니다. 이는 비용과 컨텍스트 활용에 직접적인 영향을 미칩니다.

### 비교 테이블: 같은 문장, 다른 토큰 수

| 문장                                                                               | GPT-4 (cl100k) | Claude (anthropic) | Llama 3 (sentencepiece) |
| -------------------------------------------------------------------------------- | -------------- | ------------------ | ----------------------- |
| "데이터브릭스는 통합 데이터 분석 플랫폼입니다"                                                       | 8 토큰           | 5 토큰               | 10 토큰                   |
| "Unity Catalog의 3단계 네임스페이스를 설명하세요"                                               | 11 토큰          | 8 토큰               | 14 토큰                   |
| "머신러닝 모델의 학습 과정을 요약해 주세요"                                                        | 12 토큰          | 7 토큰               | 15 토큰                   |
| "고객 이탈 예측을 위한 피처 엔지니어링 방법은?"                                                     | 14 토큰          | 9 토큰               | 18 토큰                   |
| (동일 의미 영어) "What are feature engineering methods for customer churn prediction?" | 10 토큰          | 10 토큰              | 11 토큰                   |

### 비용 영향 계산

```
예시: 하루 10,000건의 한국어 Q&A 처리 (평균 입력 500 토큰 + 출력 300 토큰)

GPT-4o 기준 ($2.50/1M input, $10.00/1M output):
- 영어: 10,000 × (500 × $2.50 + 300 × $10.00) / 1,000,000 = $42.50/일
- 한국어 (1.5배): 10,000 × (750 × $2.50 + 450 × $10.00) / 1,000,000 = $63.75/일
- 한국어 (2배): 10,000 × (1000 × $2.50 + 600 × $10.00) / 1,000,000 = $85.00/일

→ 한국어는 영어 대비 50~100% 비용 증가
```

> **주의**
> **비용 절감 전략**: 프롬프트 지시문(System Prompt)은 영어로 작성하고, 사용자 입력과 출력만 한국어로 처리하면 토큰 비용을 20\~30% 절감할 수 있습니다. "Respond in Korean"만 추가하면 됩니다.

***

## 한국어 최적화 모델

범용 모델 외에 **한국어에 특화된 학습** 을 수행한 모델이 있습니다. 한국어 비중이 높은 서비스에서는 이들을 고려할 가치가 있습니다.

### 주요 한국어 특화 모델

| 모델                 | 개발사            | 파라미터       | 한국어 특화 방식                                   | 오픈소스     |
| ------------------ | -------------- | ---------- | ------------------------------------------- | -------- |
| **HyperCLOVA X**   | NAVER          | 비공개        | 한국어 중심 사전학습 (한국어 비중 40%+)                   | X        |
| **EXAONE 3.5**     | LG AI Research | 7.8B / 32B | 한영 이중언어 학습, 기업용 특화                          | O (7.8B) |
| **SOLAR**          | Upstage        | 10.7B      | Depth Up-Scaling 기법, 한국어 최적화                | O        |
| **Llama 3 Korean** | 커뮤니티           | 8B / 70B   | Llama 3 기반 한국어 CPT (Continued Pre-Training) | O        |

### 벤치마크 비교 (KLUE, KorQuAD 기준)

| 모델                  | KLUE-NLI (정확도) | KLUE-STS (상관계수) | KorQuAD 2.0 (F1) | 비고             |
| ------------------- | -------------- | --------------- | ---------------- | -------------- |
| **GPT-4o**          | 91.2%          | 0.93            | 88.5%            | 범용 최강. 한국어도 상위 |
| **Claude 4 Sonnet** | 90.8%          | 0.92            | 87.2%            | GPT-4o와 동급     |
| **HyperCLOVA X**    | 92.5%          | 0.94            | 91.3%            | 한국어 최고 성능      |
| **EXAONE 3.5 32B**  | 89.1%          | 0.91            | 85.7%            | 오픈소스 중 한국어 최상위 |
| **SOLAR 10.7B**     | 84.3%          | 0.87            | 79.8%            | 크기 대비 우수       |
| **Llama 3.3 70B**   | 86.5%          | 0.89            | 82.1%            | 범용. 한국어는 중상위   |

### 언제 한국어 특화 모델을 선택하는가?

| 상황             | 추천                      | 이유              |
| -------------- | ----------------------- | --------------- |
| 한국어 90%+ 서비스   | HyperCLOVA X 또는 EXAONE  | 한국어 정확도 최우선     |
| 한영 혼용 서비스      | GPT-4o, Claude 4 Sonnet | 다국어 범용 성능 우수    |
| 데이터 주권 필수      | EXAONE 3.5, SOLAR       | 오픈소스, 자체 호스팅 가능 |
| 비용 제한 + 한국어 중심 | SOLAR 10.7B             | 작은 모델, 한국어 특화   |

***

## 한국어 RAG 최적화

한국어 RAG 파이프라인에서는 **형태소 분석**(Kiwi 등), **한국어 임베딩 모델**, **하이브리드 검색** 등 특별한 고려가 필요합니다. 핵심 과제는 교착어 특성으로 인한 BM25 검색 실패, 한영 혼용 처리, 임베딩 품질 확보입니다.

> 한국어 RAG의 상세 구현 가이드(Kiwi 형태소 분석, BM25 Retriever, 임베딩 모델 비교, Re-ranking, 트러블슈팅)는 **[한국어 RAG 최적화](/blog/guides/rag/korean-nlp)** 를 참고하세요.

***

## 한국어 고유 도전과 프롬프트 대응 전략

### 띄어쓰기 문제

한국어는 띄어쓰기가 없어도 의미가 통하는 경우가 많아, 사용자 입력에 띄어쓰기 오류가 빈번합니다.

| 입력            | 의미 해석                              |
| ------------- | ---------------------------------- |
| "아버지가방에들어가신다" | "아버지가 방에 들어가신다" vs "아버지 가방에 들어가신다" |
| "내가그린기린그림"    | "내가 그린 기린 그림"                      |

**프롬프트 대응 전략:**

```
# 띄어쓰기 정규화 지시
"사용자 입력에 띄어쓰기 오류가 있을 수 있습니다.
의미를 파악한 후, 올바른 띄어쓰기로 해석하여 답변하세요.
모호한 경우 가장 자연스러운 해석을 선택하세요."
```

### 동음이의어 처리

```
# 동음이의어 명확화 프롬프트
"다음 질문에서 모호한 단어가 있으면, 문맥에서 가장 적합한 의미를 선택하세요.
만약 문맥만으로 판단이 어려우면, 가능한 의미들을 나열하고 각각에 대해 답변하세요.

예시:
Q: '배가 아프다' → 복부 통증으로 해석
Q: '배를 타다' → 선박 탑승으로 해석
Q: '배가 맛있다' → 과일로 해석"
```

### 존댓말 체계와 프롬프트

| 어투                  | 사용 상황         | System Prompt 지시        |
| ------------------- | ------------- | ----------------------- |
| **합쇼체**(-습니다, -입니다) | 공식 고객 대응, 보고서 | "격식체(합쇼체)로 정중하게 답변하세요"  |
| **해요체**(-해요, -이에요)  | 일반 챗봇, CS     | "해요체로 친근하면서 정중하게 답변하세요" |
| **해라체**(-다, -이다)    | 기술 문서, 매뉴얼    | "해라체(서술체)로 간결하게 기술하세요"  |
| **반말**(-야, -어)      | 내부 도구, 캐주얼 봇  | "반말로 간결하게 답해. 인사말 생략"   |

> **참고**
> **팁**: 존댓말 체계를 혼용하면 매우 어색한 출력이 됩니다. System Prompt에서 **하나의 어투만 명확히 지정** 하고, Few-shot 예시에도 동일한 어투를 사용하세요.

***

## Structured Output 한국어 주의사항

### JSON 내 한국어 이슈

```python theme={null}
# 문제 1: 유니코드 이스케이프
import json
data = {"이름": "김철수", "직책": "매니저"}

# 일부 모델이 이렇게 출력할 수 있음:
# {"\\u C774\\u B984": "\\u AE40\\u CCA0\\u C218"}  ← 읽을 수 없음

# 해결: 프롬프트에 명시
"""
JSON 출력 시 한국어는 유니코드 이스케이프 없이 원문 그대로 출력하세요.
올바른 예: {"이름": "김철수"}
잘못된 예: {"\\u C774\\u B984": "\\u AE40\\u CCA0\\u C218"}
"""
```

```python theme={null}
# 문제 2: JSON 키 이름 — 영어 vs 한국어
# 추천: 키는 영어, 값은 한국어
{"name": "김철수", "department": "영업부", "role": "매니저"}

# 비추천: 키도 한국어 (파싱 복잡, 토큰 낭비)
{"이름": "김철수", "부서": "영업부", "직책": "매니저"}
```

### 한국어 정렬/정렬 문제

```
# 프롬프트 지시 예시
"리스트를 가나다순으로 정렬하세요.
정렬 기준: 한국어 → 가나다순, 영어 → 알파벳순, 숫자 → 오름차순
혼합 시: 한국어 → 영어 → 숫자 순서"
```

***

## 한국어 벤치마크 데이터

### KLUE (Korean Language Understanding Evaluation)

한국어 NLU 표준 벤치마크입니다. 8개 과제로 구성됩니다.

| 과제           | 설명                | 평가 메트릭       |
| ------------ | ----------------- | ------------ |
| **KLUE-TC**  | 주제 분류 (뉴스 기사)     | F1           |
| **KLUE-STS** | 문장 유사도 (0\~5점)    | Pearson 상관계수 |
| **KLUE-NLI** | 자연어 추론 (참/거짓/중립)  | 정확도          |
| **KLUE-NER** | 개체명 인식 (인물, 장소 등) | F1           |
| **KLUE-RE**  | 관계 추출             | F1           |
| **KLUE-DP**  | 의존 구문 분석          | UAS/LAS      |
| **KLUE-MRC** | 기계 독해             | EM/F1        |
| **KLUE-DST** | 대화 상태 추적          | JGA          |

### KorQuAD 2.0

한국어 기계 독해 벤치마크입니다. 위키백과 기반 10,000+ Q\&A 쌍으로 구성됩니다.

| 모델                  | KorQuAD 2.0 EM | KorQuAD 2.0 F1 |
| ------------------- | -------------- | -------------- |
| **HyperCLOVA X**    | 85.2%          | 91.3%          |
| **GPT-4o**          | 82.7%          | 88.5%          |
| **Claude 4 Sonnet** | 81.5%          | 87.2%          |
| **EXAONE 3.5 32B**  | 79.8%          | 85.7%          |
| **Llama 3.3 70B**   | 76.4%          | 82.1%          |
| **SOLAR 10.7B**     | 72.1%          | 79.8%          |

> **참고**
> **벤치마크 활용 팁**: KLUE와 KorQuAD 점수는 **참고용** 입니다. 실제 서비스 품질은 자사 도메인 데이터로 직접 평가해야 합니다. Databricks MLflow Evaluate를 사용하여 자사 한국어 Q\&A 데이터셋으로 모델을 비교 평가하세요.
