DOCS/journey/plans/archive/250831_unified_id_system_implementation_roadmap.md
2026-01-04 14:28:10 +09:00

2.1 KiB

UUID 통합 시스템 구현 로드맵

날짜: 2025-08-31 목표: 모든 서비스에서 UUID를 Primary Key로 사용


현재 문제

  • rb8001: UUID 매핑 제공하나 내부 혼용
  • skill-email: slack_id 직접 사용 (UUID 미지원)
  • Gateway: JWT에서 UUID 추출
  • ChromaDB: 일관성 없는 collection 명명

영향: 서비스 간 통신 오류, 데이터 불일치


Phase 1: DB 스키마 통일 ( 완료)

완료된 작업

1. 외래 키 제약

  • conversation_log.user_iduser.id (main_db.py:146)
  • gmail_token.user_iduser.id (이미 구현됨)

2. 인덱스 ⚠️ 부분 완료

  • 일부 테이블에 인덱스 존재 (ir_deck_evaluations, robeing_diary 등)
  • conversation_log.user_id, gmail_token.user_id 인덱스는 확인 필요

3. 데이터 검증 미착수

  • orphaned UUID 확인
  • NULL UUID 처리

Phase 2: 서비스 수정 ( 완료)

skill-email

  • 파일: services/db_credentials_provider.py
  • 변경: UUID 지원 추가 완료 (250920)
  • 추가 수정: UUID 강제 (250926, 2025-12-17)

rb8001

  • 파일: app/skills/email_integration.py
  • 변경: UUID 우선 사용 완료 (250926)

ChromaDB

  • Collection 명명: {service}_{identifier}_{type} 통일 완료 (250920)
  • 예: rb8001_53529291-5050-4daa-89fb-008b546feb63_memory
  • 참고: troubleshooting/250920_chromadb_collection_naming_unification.md

Phase 3: Gateway 통합 ( 완료)

JWT 표준화

{
  "sub": "uuid",  # user.id
  "username": "happybell80",
  "email": "user@example.com"
}
  • auth-server에서 UUID를 sub에 포함하여 발급 중

헤더 표준화

  • X-User-Id: UUID (모든 내부 API)
  • Slack ID는 oauth_providers JSONB에만 저장
  • Gateway에서 UUID 변환 후 전달 중

검증

테스트 시나리오:

  1. Gmail 재인증 → JWT 발급 → UUID 확인
  2. skill-email 호출 → UUID로 토큰 조회
  3. ChromaDB 저장 → collection 명명 확인

참고

  • troubleshooting/250911_PostgreSQL_테이블명_단수형_통일.md
  • troubleshooting/250924_UUID_체계_전환_및_대화저장_오류.md