추후 이미지 추가 예정
1. 개요: LLM 서비스의 불확실성을 시스템으로 제어하기
LLM 기반 서비스는 사용자의 자유로운 발화라는 '비정형성'을 다룬다. 이는 기획과 개발 단계에서 예측 불가능한 변수를 창출하며, 안정적인 서비스 운영을 저해하는 요소가 된다. Project DOQ는 이러한 불확실성을 해결하기 위해 AI 프로토타이핑을 설계의 중심(SSOT)에 두고, 데이터 구조와 파이프라인을 체계화했다.
2. 프로토타입 중심의 Single Source of Truth(SSOT)
기존의 '기획-디자인-개발'로 이어지는 순차적 워크플로우는 정적인 피그마(Figma)만으로는 LLM의 동적인 상태 변화를 모두 정의하기 어려웠다.
- 문제 상황: 대화 흐름에 따른 예외 케이스와 상태 변화의 시각화 한계로 인해 직군 간 해석 차이가 발생했다.
- 해결 방안: 실제 동작하는 목사이트(Mock-site)를 최우선으로 구현하여 이를 팀의 단일 진실 공급원(SSOT)으로 설정했다.
- 성과: 프로토타입을 바탕으로 기획을 수정하고 디자인을 역제안(CR)하는 구조를 확립했다. 이를 통해 개발 단계에서의 불필요한 재작업(Rework)을 방지하고 협업 효율을 극대화했다.
3. 데이터 설계: 비정형 입력의 정형화 파이프라인
사용자의 자유 텍스트를 신뢰할 수 있는 계약 데이터로 변환하기 위해, 단일 LLM 호출 방식에서 벗어나 단계별 검증 파이프라인을 설계했다.
3.1 LLM 데이터 추출 및 검증 레이어
자연어 입력을 필드 단위로 파싱하고 유효성을 검사하는 다단계 구조를 도입했다.
- Extract: LLM이 대화에서 contract_type, amount 등 핵심 필드를 추출한다.
- Validate: 추출된 데이터의 타입(숫자, 날짜 등) 및 필수 필드 누락 여부를 검증한다.
- Feedback: 누락된 정보가 있을 경우 missing_fields를 기반으로 LLM이 정교한 재질문을 생성하도록 유도한다.
3.2 Context Buffer를 통한 대화 복구력 확보
사용자가 흐름을 벗어나는 발화(Out-of-Scope)를 할 경우 시스템 붕괴를 방지하기 위해 Context Buffer를 도입했다. 현재 상태가 유효하지 않을 경우 last_valid_state로 즉시 복귀할 수 있는 기준점을 유지하여 대화의 연속성을 보장했다.
4. 아키텍처 개선: 데이터 패킷 진화와 Thin Client화
LLM 응답을 시스템 아키텍처 내에서 안정적으로 관리하기 위해 데이터 구조를 상태 중심(State-based)으로 개편했다.
4.1 상태 기반 데이터 패킷 구조 (After)
{
"state": {
"current_step": "gathering_info",
"required_fields": ["duration"],
"is_final_draft": false
},
"data": {
"contract_type": "용역 계약",
"amount": 5000000
},
"meta": { "confidence": 0.92 }
}
4.2 프론트엔드 역할의 재정의 (Thin Client)
기존에는 프론트엔드가 응답을 파싱하고 UI 분기를 직접 판단했으나, 개편 후에는 서버가 전달하는 state 객체를 렌더링만 하는 상태 기반 UI 엔진으로 단순화했다. 이를 통해 시스템 책임을 명확히 분리하고 프론트엔드의 복잡도를 획기적으로 낮췄다.
5. 실무 적용 및 검증
5.1 중계형 모델 시연
캡스톤 디자인 2차 발표에서 1:1 대화를 넘어선 중계형(Brokerage) 워크플로우를 라이브 시연했다. 대화가 단계별로 전이되며 실시간으로 계약 문서가 업데이트되는 과정을 보여줌으로써 기술적 타당성을 증명했다.
5.2 버전 관리 및 비교(Diff) 기능 역제안
계약 수정 과정의 투명성을 높이기 위해 Version Diff 기능을 선제적으로 제안했다. 수정 전후의 변경점을 데이터 구조(changed_fields)에 반영하여 사용자 신뢰도를 높이는 성과를 거두었다.
6. 결론
Project DOQ에서의 경험은 LLM이라는 불확실한 도구를 어떻게 견고한 엔지니어링 체계 안으로 편입시킬 것인가에 대한 해답을 찾는 과정이었다.
- 정량적 성과: 상태 기반 패킷 및 SSOT 프로토타입 도입 후 커뮤니케이션 비용을 약 30% 절감했다.
- 기술적 가치: 비정형 데이터를 정형화된 상태 머신으로 관리하여 예측 가능한 UX를 구현했다.
개발자의 프로토타이핑은 단순한 시각화 도구가 아니다. 그것은 복잡한 설계를 검증하고 팀의 의사결정을 리딩하는 가장 강력한 엔지니어링 언어임을 확인했다.
'DevLog' 카테고리의 다른 글
| LLM 활용 프로토타이핑(2) - DESIGN.md를 활용한 디자인 시스템 수립 (3) | 2026.05.04 |
|---|---|
| ML/AI 개선을 위한 위한 로그 수집 및 모니터링 - 데이터 최적화 (0) | 2026.02.19 |
| LLM 정량평가하기(3) - 시스템 로깅 및 AI agent 활용 (0) | 2026.01.12 |
| LLM 정량평가하기(2) - 시나리오 기반의 AI 챗봇 테스트 자동화 (0) | 2026.01.08 |
| 아키텍처 재사용성 및 확장성 검증 (cloc 분석) (0) | 2025.12.07 |