# Ctrl+F 발표 예상 질문 & 답변

---

## 1. 아키텍처 관련 질문

### Q1. 왜 MSA 구조를 선택했나요?

**답변:**
> 세 가지 이유가 있습니다.
>
> 첫째, **장애 격리**입니다. 챗봇 서비스에 문제가 생겨도 교육 서비스는 정상 운영됩니다.
>
> 둘째, **독립적 확장**입니다. 챗봇 사용량이 급증하면 챗봇 서비스만 스케일 아웃하면 됩니다.
>
> 셋째, **독립적 배포**입니다. 교육 서비스를 업데이트할 때 챗봇 서비스를 재배포할 필요가 없습니다.

**추가 답변 (기술적으로 더 물어볼 경우):**
> 서비스 간 통신은 REST API로 하고, 내부 통신용 X-Internal-Token으로 인증합니다. 공통 코드는 common-security, common-dto 등 공유 라이브러리로 분리했습니다.

---

### Q2. 왜 별도 벡터 DB(Pinecone, Weaviate) 대신 PostgreSQL pgvector를 선택했나요?

**답변:**
> 세 가지 이유입니다.
>
> 첫째, **비용 효율**입니다. 별도 벡터 DB는 추가 비용이 발생하지만, pgvector는 기존 PostgreSQL에서 바로 사용 가능합니다.
>
> 둘째, **트랜잭션 일관성**입니다. 문서 메타데이터와 임베딩 벡터를 같은 DB에서 관리하므로 ACID 트랜잭션이 보장됩니다.
>
> 셋째, **운영 단순화**입니다. 관리할 인프라가 줄어들어 운영 부담이 감소합니다.

**추가 답변 (성능 물어볼 경우):**
> pgvector는 1536차원 벡터에서 수십만 건까지 충분한 성능을 보입니다. 기업 내부 문서 규모에서는 전혀 문제없습니다.

---

### Q3. 서비스 간 통신은 어떻게 하나요?

**답변:**
> REST API 기반 동기 통신을 사용합니다.
>
> - **외부 요청**: API Gateway에서 JWT 토큰을 검증한 후 각 서비스로 라우팅
> - **내부 통신**: X-Internal-Token 헤더로 서비스 간 인증
> - **AI 서버 통신**: 비동기 콜백 방식 (문서 처리 완료 시 콜백 호출)

---

## 2. 문서 전처리 관련 질문

### Q4. 문서 전처리 파이프라인을 자세히 설명해주세요.

**답변:**
> 5단계로 진행됩니다.
>
> 1. **QUEUED**: 문서 업로드 후 대기
> 2. **PROCESSING**: AI 서버에서 텍스트 추출 및 청킹
> 3. **SUCCEEDED/FAILED**: 처리 완료 또는 실패
> 4. 청크별로 임베딩 생성 후 pgvector에 저장
> 5. 검색 가능 상태로 전환
>
> 각 단계에서 상태가 DB에 기록되어 관리자가 실시간으로 확인할 수 있습니다.

---

### Q5. 문서 버전 관리는 어떻게 하나요?

**답변:**
> 동일한 문서 ID에 대해 version 필드를 증가시키며 관리합니다.
>
> 예: 인사규정 v1 → v2 → v3
>
> 이전 버전도 보관되어 있어 필요 시 이력 조회가 가능하고, 챗봇은 항상 최신 버전을 기준으로 답변합니다.

---

### Q6. 부서별 문서 접근 제어는 어떻게 구현했나요?

**답변:**
> 각 문서에 department 필드가 있습니다.
>
> - "전체": 모든 직원이 접근 가능
> - "개발팀": 개발팀 소속 직원만 접근 가능
>
> 사용자가 질문하면 JWT 토큰에서 부서 정보를 추출하고, 해당 부서가 접근 가능한 문서만 검색 대상에 포함합니다.

---

## 3. RAG / AI 관련 질문

### Q7. A/B 테스트는 구체적으로 어떻게 동작하나요?

**답변:**
> 사용자 UUID를 해시하여 0~1 사이 값으로 변환합니다.
>
> - 0.5 미만: OpenAI 임베딩 모델
> - 0.5 이상: SRoBERTa (한국어 특화) 모델
>
> 동일 사용자는 항상 같은 모델을 사용하므로 일관된 경험을 제공하고, 비율은 설정으로 조정 가능합니다. 이후 만족도와 정확도 데이터를 분석하여 최적 모델을 결정합니다.

---

### Q8. 할루시네이션(거짓 답변)은 어떻게 방지하나요?

**답변:**
> 세 가지 방법을 사용합니다.
>
> 첫째, **RAG 기반 답변**입니다. LLM이 자체 지식이 아닌, 검색된 문서 내용만 참고하여 답변합니다.
>
> 둘째, **출처 명시**입니다. 답변과 함께 근거 문서와 페이지를 표시하여 사용자가 직접 검증할 수 있습니다.
>
> 셋째, **신뢰도 점수**입니다. AI가 답변에 대한 확신도를 함께 제공하여, 낮은 신뢰도의 답변은 주의가 필요함을 알립니다.

---

### Q9. 답변 정확도는 어떻게 측정하나요?

**답변:**
> 두 가지 방식으로 측정합니다.
>
> 첫째, **사용자 피드백**입니다. 답변에 대해 좋아요/싫어요를 받아 만족도를 측정합니다.
>
> 둘째, **재질문률**입니다. 같은 주제로 다시 질문하는 비율을 추적하여, 재질문률이 높으면 답변 품질에 문제가 있다고 판단합니다.
>
> 이 데이터는 관리자 대시보드에서 실시간으로 확인할 수 있습니다.

---

### Q10. OpenAI와 EXAONE 두 LLM을 지원하는 이유는?

**답변:**
> **비용과 성능의 트레이드오프** 때문입니다.
>
> - EXAONE: 한국어에 최적화되어 있고 비용이 저렴. 일상적인 질문에 적합
> - OpenAI: 복잡한 추론이 필요한 질문에서 높은 성능
>
> 관리자가 상황에 따라 선택할 수 있어 비용 최적화가 가능합니다.

---

## 4. 보안 관련 질문

### Q11. 인증/인가는 어떻게 구현했나요?

**답변:**
> Keycloak 기반 OAuth2/OIDC를 사용합니다.
>
> - **인증**: Keycloak에서 JWT 토큰 발급
> - **인가**: 토큰에 포함된 역할(Role) 정보로 접근 제어
> - **역할 종류**: 일반 직원, 콘텐츠 검토자, 영상 제작자, 시스템 관리자
>
> API Gateway에서 모든 요청의 토큰을 검증하고, 각 서비스에서 역할별 권한을 체크합니다.

---

### Q12. 개인정보(PII) 탐지는 어떻게 하나요?

**답변:**
> AI 서버에서 질문과 답변을 분석하여 개인정보를 탐지합니다.
>
> - 주민등록번호, 전화번호, 이메일 등 패턴 감지
> - 개인정보가 포함된 질문은 FAQ 후보에서 자동 제외
> - 탐지된 건수는 관리자 대시보드에서 모니터링
>
> 이를 통해 민감정보 유출을 방지합니다.

---

### Q13. 서비스 간 통신의 보안은?

**답변:**
> 두 가지 레이어로 보호합니다.
>
> 첫째, **API Gateway 레이어**입니다. 외부 요청은 반드시 JWT 토큰 검증을 거칩니다.
>
> 둘째, **내부 통신 레이어**입니다. 서비스 간 통신은 X-Internal-Token 헤더로 인증합니다. 이 토큰 없이는 내부 API 호출이 불가능합니다.

---

## 5. 성능 관련 질문

### Q14. 응답 시간은 어느 정도인가요?

**답변:**
> 평균 1~2초 내외입니다.
>
> - 벡터 검색: 수백 ms
> - LLM 답변 생성: 1~2초
>
> 스트리밍 응답을 지원하여 사용자가 답변이 생성되는 것을 실시간으로 볼 수 있어 체감 대기 시간이 줄어듭니다.

---

### Q15. 동시 사용자는 얼마나 처리 가능한가요?

**답변:**
> MSA 구조와 Kubernetes 기반이라 수평 확장이 용이합니다.
>
> - 각 서비스는 독립적으로 Pod 수를 늘릴 수 있음
> - Auto Scaling 설정으로 트래픽에 따라 자동 확장
> - LLM API 호출이 병목이 될 수 있지만, 요청 큐잉으로 관리
>
> 기업 내부 서비스 규모에서는 충분히 처리 가능합니다.

---

## 6. 차별점 관련 질문

### Q16. 기존 챗봇 서비스(ChatGPT, Copilot 등)와 뭐가 다른가요?

**답변:**
> 세 가지 핵심 차이가 있습니다.
>
> 첫째, **내부 문서 기반**입니다. ChatGPT는 일반 지식으로 답변하지만, 저희는 회사 사규/정책 문서만 참조합니다.
>
> 둘째, **출처 명시**입니다. "인사규정 제23조 15페이지"처럼 정확한 근거를 제시합니다.
>
> 셋째, **버전 관리**입니다. 사규가 개정되면 자동으로 최신 버전을 반영하고, 이전 버전도 추적 가능합니다.

---

### Q17. 다른 기업용 RAG 솔루션과 차별점은?

**답변:**
> 네 가지입니다.
>
> 1. **A/B 테스트**: 두 AI 모델을 동시 운영하며 최적 모델을 데이터로 검증
> 2. **부서별 개인화**: 같은 질문도 부서에 따라 다른 문서 참조
> 3. **문서 전처리 상태 추적**: 5단계 상태 관리, 실패 시 재처리
> 4. **통합 교육 시스템**: 챗봇 + 교육 영상 + 퀴즈가 하나의 플랫폼

---

## 7. 개발 과정 관련 질문

### Q18. 개발하면서 가장 어려웠던 점은?

**답변 예시 1 (MSA 관련):**
> 서비스 간 통신 설계가 어려웠습니다. 어떤 데이터를 어느 서비스가 소유할지, 서비스 간 의존성을 어떻게 최소화할지 고민이 많았습니다. 공통 DTO 라이브러리를 만들고, 내부 API 규격을 명확히 정의하여 해결했습니다.

**답변 예시 2 (RAG 관련):**
> 답변 품질 향상이 어려웠습니다. 처음에는 관련 없는 문서가 검색되거나 답변이 부정확했습니다. 데이터셋을 목적별로 분리하고, 청킹 전략을 개선하고, A/B 테스트로 최적 모델을 찾아 해결했습니다.

---

### Q19. 향후 개선 계획은?

**답변:**
> 세 가지 계획이 있습니다.
>
> 첫째, **다국어 지원**입니다. 현재 한국어 중심이지만, 영어 등 다국어 문서 지원을 추가할 예정입니다.
>
> 둘째, **대화 맥락 강화**입니다. 이전 대화를 더 잘 기억하여 자연스러운 후속 질문을 처리하겠습니다.
>
> 셋째, **분석 고도화**입니다. 어떤 주제의 질문이 많은지, 어떤 문서가 자주 참조되는지 분석하여 콘텐츠 개선에 활용하겠습니다.

---

### Q20. 실제 기업에 도입한다면 고려할 점은?

**답변:**
> 세 가지입니다.
>
> 첫째, **문서 품질**입니다. 사규 문서가 정리되어 있지 않으면 답변 품질도 떨어집니다. 도입 전 문서 정비가 필요합니다.
>
> 둘째, **변화 관리**입니다. 직원들이 챗봇을 신뢰하고 사용하도록 교육과 홍보가 필요합니다.
>
> 셋째, **지속적 개선**입니다. 사용자 피드백을 분석하여 답변 품질을 계속 개선해야 합니다. 대시보드가 이를 지원합니다.

---

## 8. 데모 관련 질문

### Q21. 실시간 데모가 가능한가요?

**답변 (가능할 경우):**
> 네, 준비되어 있습니다. [데모 시연]

**답변 (불가능할 경우):**
> 현재 개발 환경이라 실시간 데모는 어렵지만, 녹화된 시연 영상을 준비했습니다. / 스크린샷으로 주요 화면을 보여드리겠습니다.

---

## 답변 팁

### Do
- **결론 먼저**: "세 가지 이유가 있습니다" → 이유 나열
- **구체적 수치**: "1~2초", "5단계" 등 명확한 숫자 사용
- **비교 활용**: "일반 챗봇은 ~하지만, 저희는 ~합니다"

### Don't
- 모르는 것을 아는 척하지 않기
- 너무 기술적인 용어 남발하지 않기
- 질문과 관련 없는 내용으로 빠지지 않기

### 모르는 질문이 나왔을 때
> "좋은 질문입니다. 해당 부분은 추가 검토가 필요할 것 같습니다. 확인 후 말씀드리겠습니다."

---

*작성일: 2026-01-06*