DOCS/journey/troubleshooting/250827_happybell80_긴급이슈점검및코드업데이트.md
Claude-51124 22557e7132 docs: 오래된 트러블슈팅 아카이브 및 구조 정리
- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동
- book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서)
- 빈 폴더 제거 (journey/assets/*)
2025-11-17 14:06:05 +09:00

5.3 KiB

긴급 이슈 점검 및 코드 업데이트

작성일: 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 연동 불일치

현황:

// Frontend (activity-panel.tsx)
- localStorage 기반 저장
- 다중 작업 관리 지원
- Mock 데이터 하드코딩

// Backend (dm_skill.py)
- PostgreSQL user_preference 테이블 사용
- 사용자당 1 설정만 저장
- news_keywords만 활용

문제점:

  • 데이터 구조 완전 불일치
  • API 엔드포인트 미구현
  • 다중 작업 관리 불가

관련 문서: /DOCS/troubleshooting/250827_frontend_backend_user_preference_mismatch.md

B. Gmail 토큰 관련 코드 확인

현황:

  • auth-server/gmail_refresh.py: 자동 갱신 API 구현됨
  • refresh_token 확인 및 갱신 로직 정상
  • 0914eagle@gmail.com 토큰 만료는 서버 확인 필요

C. ID 체계 정리 (slack_id → slack_user_id)

변경 완료:

# 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

변경 내용

# 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 사용자 격리 문제 해결 완료 (2025-08-28)

심각도: HIGH해결됨 상세: 250828_UUID_통합_및_사용자_격리_계획.md

rb8001이 모든 사용자 대화를 하나의 ChromaDB 컬렉션에 저장:

  • 컬렉션명: robeing_rb8001_memories (모든 Slack 사용자 공유)
  • metadata의 user_id(Slack ID)로만 구분
  • 필터링 실패 시 타 사용자 대화 노출 위험

올바른 구조 (rb10508):

  • 컬렉션명: rb10508_test_{slack_id}_episodic
  • 사용자별 완전 격리

해결 방안:

  • rb8001의 MemoryManager를 rb10508 방식으로 수정 필요

관련 문서: /DOCS/troubleshooting/250827_51124_critical_issues.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_preference 테이블 구조 확장
    • API 엔드포인트 구현
    • 다중 작업 관리 지원

우선순위 MEDIUM 🟡

  1. Gmail 토큰 갱신 모니터링

  2. DB 컬럼명 표준화

    • gmail_token.slack_id → slack_user_id
    • 서버 작업 필요

6. 교훈

개발 원칙 재확인

  1. 보안 우선: 사용자 데이터는 반드시 격리
  2. 일관성: Frontend-Backend 데이터 구조 동기화 필수
  3. 문서화: 모든 변경사항 즉시 문서화
  4. 코드 리뷰: 배포 전 보안/프라이버시 검토 필수

프로세스 개선점

  1. 정기적인 전체 시스템 점검 (주 1회)
  2. 긴급 이슈 대응 프로세스 문서화
  3. 코드 변경 시 영향 범위 분석 강화

7. 참고 문서


작성 완료: 2025-08-27 11:00