## 왜 메시지 모호성이 문제인가
"DB 좀 고쳐줘", "에러 해결해주세요" 같은 모호한 요청은 개발 현장에서 흔하게 발생합니다. 특히 자동화된 워크플로우나 챗봇 시스템에서는 이런 불명확한 입력이 잘못된 처리로 이어질 수 있습니다. 3일간 56개 항목의 개선 작업을 통해 구축한 메시지 검증 시스템의 핵심 패턴을 공유합니다.
## 1. 휴리스틱 기반 모호성 스코어링
LLM API 호출 없이도 요청의 명확도를 수치화할 수 있습니다. 4가지 차원으로 가중치를 부여한 스코어링 방식을 사용했습니다:
- **목표(Goal)**: 45% - "무엇을 원하는가?" 명확성
- **제약조건(Constraints)**: 25% - 범위, 조건 명시 여부
- **컨텍스트(Context)**: 20% - 배경 정보 충분성
- **성공기준(Success)**: 10% - 완료 조건 정의 여부
```python
# 예시: 간단한 모호성 스코어 계산 로직
def calculate_ambiguity(message):
goal_score = check_goal_clarity(message) # 동사, 목적어 분석
constraint_score = check_constraints(message) # 조건절, 범위 키워드
context_score = check_context(message) # 배경 정보량
success_score = check_success_criteria(message) # 완료 조건
ambiguity = (
goal_score * 0.45 +
constraint_score * 0.25 +
context_score * 0.20 +
success_score * 0.10
)
return ambiguity
```
임계값은 0.65로 설정했습니다. 이 값을 초과하면 요청이 차단되고 사용자에게 명확화를 요구합니다.
## 2. 심층 인터뷰 패턴
요구사항 추출(Requirements Elicitation) 단계에서 수학적 모호성 점수를 활용한 반복 질문 패턴을 적용했습니다:
### 단계별 도전 모드
- **Contrarian Mode** (4라운드 이상): "정말 그게 최선인가요?" - 반대 관점 제시
- **Simplifier Mode** (6라운드 이상): "더 단순한 방법은?" - 과잉 설계 방지
- **Ontologist Mode** (8라운드 이상): 개념 체계 일관성 검증
### 명확도 게이트
모호성 점수가 0.2 이하(80% 이상 명확)가 될 때까지 질문을 반복합니다. 이를 통해 프로덕션 파이프라인 진입 전 요구사항 품질을 보장할 수 있습니다.
## 3. 검증 결과
실제 24시간 운영 테스트 결과:
| 지표 | 목표 | 실제 |
|------|------|------|
| 유닛 테스트 통과율 | 100% | 723/723 |
| 통합 테스트 | 전체 통과 | 24/24 |
| 에러율 | <5% | 0.0% |
| 평균 처리 시간 | <60초 | 3.1초 |
| 최대 처리 시간 | <60초 | 7.3초 |
### 라이브 테스트 사례
- ❌ "DB 좀 고쳐줘" → 차단됨 (모호성 점수: 0.76)
- ✅ "users 테이블에 email_verified 컬럼(BOOLEAN) 추가" → 통과 및 처리
## 4. 적용 가능한 시나리오
이 패턴은 다음 상황에서 유용합니다:
- **챗봇/가상 비서**: 사용자 요청 필터링
- **티켓 시스템**: 불완전한 이슈 자동 반려
- **CI/CD 파이프라인**: 배포 요청 검증
- **API 게이트웨이**: 요청 파라미터 충분성 검사
## 핵심 요약 및 다음 단계
**핵심 교훈:**
1. LLM 없이도 휴리스틱으로 70~80% 모호성 검출 가능
2. 4차원 가중 스코어링이 단순 키워드 매칭보다 효과적
3. 단계별 인터뷰 패턴으로 요구사항 품질 향상
4. 임계값 0.65는 실전에서 좋은 출발점 (도메인별 조정 필요)
**개선 방향:**
- 도메인별 가중치 자동 학습
- 다국어 지원 (현재는 한영 혼용 기준)
- 거부된 요청의 재작성 가이드 자동 생성
723개의 단위 테스트로 검증된 이 패턴은 실무에 바로 적용 가능합니다. 코드 예시는 GitHub에서 "ambiguity guard pattern" 키워드로 검색하면 다양한 오픈소스 구현을 찾을 수 있습니다.