docs: 2025-08-27 긴급 이슈 점검 및 코드 업데이트 문서화
- Frontend-Backend 연동 불일치 문제 분석 - Gmail 토큰 관련 코드 확인 - ID 체계 (slack_id → slack_user_id) 변경 확인 - Gemini 2.5 Flash Lite 모델 지원 추가 - ChromaDB 사용자 격리 문제 발견 - 전체 프로젝트 Git 동기화 수행 작업 결과 및 후속 조치 사항 정리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
5b1a6fdc3b
commit
ecffa04c29
176
troubleshooting/250827_happybell80_긴급이슈점검및코드업데이트.md
Normal file
176
troubleshooting/250827_happybell80_긴급이슈점검및코드업데이트.md
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
# 긴급 이슈 점검 및 코드 업데이트
|
||||||
|
|
||||||
|
## 작성일: 2025-08-27
|
||||||
|
## 작성자: happybell80
|
||||||
|
## 상태: ✅ 완료
|
||||||
|
## 관련 서비스: rb8001, skill-email, robeing-monitor, frontend-customer
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 작업 배경
|
||||||
|
|
||||||
|
2025-08-27 오전, 시스템 전반 점검 및 긴급 이슈 해결:
|
||||||
|
- Frontend-Backend 연동 불일치 문제 분석
|
||||||
|
- Gmail 토큰 재인증 필요성 검토
|
||||||
|
- ID 체계 정리 (slack_id → slack_user_id)
|
||||||
|
- Gemini 2.5 Flash Lite 모델 지원 추가
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 수행 작업
|
||||||
|
|
||||||
|
### 2.1 Git 저장소 동기화
|
||||||
|
모든 프로젝트 폴더 최신 상태 확인 및 pull:
|
||||||
|
- rb8001: 3개 파일 업데이트 (router.py, dm_skill.py, database.py)
|
||||||
|
- skill-email: db_credentials_provider.py 업데이트
|
||||||
|
- robeing-monitor: items.py 업데이트
|
||||||
|
- DOCS: 5개 신규 문서 추가
|
||||||
|
|
||||||
|
### 2.2 코드 분석 및 이슈 파악
|
||||||
|
|
||||||
|
#### A. Frontend-Backend 연동 불일치 ✅
|
||||||
|
**현황:**
|
||||||
|
```typescript
|
||||||
|
// Frontend (activity-panel.tsx)
|
||||||
|
- localStorage 기반 저장
|
||||||
|
- 다중 작업 관리 지원
|
||||||
|
- Mock 데이터 하드코딩
|
||||||
|
|
||||||
|
// Backend (dm_skill.py)
|
||||||
|
- PostgreSQL user_preferences 테이블 사용
|
||||||
|
- 사용자당 1개 설정만 저장
|
||||||
|
- news_keywords만 활용
|
||||||
|
```
|
||||||
|
|
||||||
|
**문제점:**
|
||||||
|
- 데이터 구조 완전 불일치
|
||||||
|
- API 엔드포인트 미구현
|
||||||
|
- 다중 작업 관리 불가
|
||||||
|
|
||||||
|
**관련 문서:** `/DOCS/troubleshooting/250827_frontend_backend_user_preferences_mismatch.md`
|
||||||
|
|
||||||
|
#### B. Gmail 토큰 관련 코드 확인 ✅
|
||||||
|
**현황:**
|
||||||
|
- auth-server/gmail_refresh.py: 자동 갱신 API 구현됨
|
||||||
|
- refresh_token 확인 및 갱신 로직 정상
|
||||||
|
- 0914eagle@gmail.com 토큰 만료는 서버 확인 필요
|
||||||
|
|
||||||
|
#### C. ID 체계 정리 (slack_id → slack_user_id) ✅
|
||||||
|
**변경 완료:**
|
||||||
|
```python
|
||||||
|
# skill-email/services/db_credentials_provider.py
|
||||||
|
- WHERE slack_id = %s
|
||||||
|
+ WHERE slack_user_id = %s
|
||||||
|
|
||||||
|
# robeing-monitor/app/api/items.py
|
||||||
|
- WHERE slack_id = $1
|
||||||
|
+ WHERE slack_user_id = $1
|
||||||
|
```
|
||||||
|
|
||||||
|
**결론:** 코드는 이미 수정 완료. DB 컬럼명만 변경 필요
|
||||||
|
|
||||||
|
### 2.3 Gemini 2.5 Flash Lite 모델 지원 추가 ✅
|
||||||
|
|
||||||
|
#### 수정 파일
|
||||||
|
`/home/happybell80/ivada_project/rb8001/app/llm/llm_service.py`
|
||||||
|
|
||||||
|
#### 변경 내용
|
||||||
|
```python
|
||||||
|
# Line 26: LLMRequest 모델
|
||||||
|
model: Optional[Literal[..., "gemini-2.5-flash-lite"]] = None
|
||||||
|
|
||||||
|
# Line 71-72: handlers 딕셔너리
|
||||||
|
"gemini-2.5-flash-lite": GeminiHandler("gemini-2.5-flash-lite") # 추가
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Git 작업
|
||||||
|
- Commit: `3bff75c` - "feat: Gemini 2.5 Flash Lite 모델 지원 추가"
|
||||||
|
- Push: origin/main 성공
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 발견된 추가 이슈
|
||||||
|
|
||||||
|
### 3.1 ChromaDB 사용자 격리 문제 🔴
|
||||||
|
**심각도: HIGH**
|
||||||
|
|
||||||
|
rb8001이 모든 사용자 대화를 하나의 ChromaDB 컬렉션에 저장:
|
||||||
|
- 컬렉션명: `robeing_rb8001_memories` (고정)
|
||||||
|
- 사용자 간 대화 내용 섞일 위험
|
||||||
|
- 개인정보 노출 가능성
|
||||||
|
|
||||||
|
**해결 방안:**
|
||||||
|
1. 임시: 검색 시 user_id 필터링 강화
|
||||||
|
2. 근본: 사용자별 컬렉션 분리 (rb10508 방식 적용)
|
||||||
|
|
||||||
|
**관련 문서:** `/DOCS/troubleshooting/250827_claude_chromadb_user_isolation.md`
|
||||||
|
|
||||||
|
### 3.2 보안 공격 차단 업데이트 ✅
|
||||||
|
- 10개 IP 차단 (3차에 걸쳐 추가)
|
||||||
|
- WordPress, Symfony 공격 패턴 추가 탐지
|
||||||
|
- iptables 규칙 영구 저장 완료
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 작업 결과 요약
|
||||||
|
|
||||||
|
| 작업 항목 | 상태 | 비고 |
|
||||||
|
|---------|------|------|
|
||||||
|
| Git 저장소 동기화 | ✅ | 24개 폴더 모두 최신 상태 |
|
||||||
|
| Frontend-Backend 불일치 분석 | ✅ | 구조적 재설계 필요 |
|
||||||
|
| Gmail 토큰 코드 확인 | ✅ | 자동 갱신 로직 정상 |
|
||||||
|
| ID 체계 코드 수정 확인 | ✅ | 이미 수정 완료 |
|
||||||
|
| Gemini 2.5 Flash Lite 추가 | ✅ | 배포 준비 완료 |
|
||||||
|
| 트러블슈팅 문서 작성 | ✅ | 본 문서 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 후속 작업 필요 사항
|
||||||
|
|
||||||
|
### 우선순위 HIGH 🔴
|
||||||
|
1. **ChromaDB 사용자 격리 구현**
|
||||||
|
- rb8001 MemoryManager 수정
|
||||||
|
- 사용자별 컬렉션 생성
|
||||||
|
- 기존 데이터 마이그레이션
|
||||||
|
|
||||||
|
2. **Frontend-Backend 연동 재설계**
|
||||||
|
- user_preferences 테이블 구조 확장
|
||||||
|
- API 엔드포인트 구현
|
||||||
|
- 다중 작업 관리 지원
|
||||||
|
|
||||||
|
### 우선순위 MEDIUM 🟡
|
||||||
|
1. **Gmail 토큰 갱신 모니터링**
|
||||||
|
- 0914eagle@gmail.com 토큰 상태 확인
|
||||||
|
- 자동 갱신 실패 시 알림
|
||||||
|
|
||||||
|
2. **DB 컬럼명 표준화**
|
||||||
|
- gmail_tokens.slack_id → slack_user_id
|
||||||
|
- 서버 작업 필요
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 교훈
|
||||||
|
|
||||||
|
### 개발 원칙 재확인
|
||||||
|
1. **보안 우선**: 사용자 데이터는 반드시 격리
|
||||||
|
2. **일관성**: Frontend-Backend 데이터 구조 동기화 필수
|
||||||
|
3. **문서화**: 모든 변경사항 즉시 문서화
|
||||||
|
4. **코드 리뷰**: 배포 전 보안/프라이버시 검토 필수
|
||||||
|
|
||||||
|
### 프로세스 개선점
|
||||||
|
1. 정기적인 전체 시스템 점검 (주 1회)
|
||||||
|
2. 긴급 이슈 대응 프로세스 문서화
|
||||||
|
3. 코드 변경 시 영향 범위 분석 강화
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 참고 문서
|
||||||
|
|
||||||
|
- [Frontend-Backend 불일치 분석](./250827_frontend_backend_user_preferences_mismatch.md)
|
||||||
|
- [ChromaDB 격리 문제](./250827_claude_chromadb_user_isolation.md)
|
||||||
|
- [ID 체계 표준화](./250826_slack_id_column_standardization.md)
|
||||||
|
- [보안 공격 차단](./250826_security_attack_detection.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*작성 완료: 2025-08-27 11:00*
|
||||||
Loading…
x
Reference in New Issue
Block a user