1.2 KiB
1.2 KiB
대화 로그 사용자 매핑 불일치
상태: 해결 방안 제시 (2025-08-27)
문제
같은 사용자가 Slack/웹 접속 시 각각 다른 ID로 저장
현상
- Slack: slack_user_id만 저장 (UUID NULL)
- 웹: user_id(UUID)만 저장 (slack_user_id NULL)
- 결과: 동일 사용자가 2명으로 분리
원인
- Slack 경로: JWT 없이 Slack ID만 사용
- 웹 경로: JWT에서 UUID만 추출
- State Service: 두 ID를 연결하는 매픹 로직 없음
영향
- 동일 사용자 통계 분리
- 채널 간 대화 기록 단절
- 개인화 컨텍스트 손실
해결 방안: 분리 운영
선택한 방안
- Slack과 웹을 별도 체계로 운영
- Slack: Slack ID + Slack 서명 검증
- 웹: UUID + JWT 검증
구현
-
conversation_logs 테이블 현 구조 유지
- slack_user_id: Slack 사용자만
- user_id: 웹 사용자만
-
통계 조회 시 JOIN
- slack_user_mapping 테이블 활용
- WHERE user_id = ? OR slack_user_id IN (SELECT...)
결론
- 분리 운영이 가장 현실적
- 각 채널 특성에 맞는 인증 체계 유지
- 필요 시 slack_user_mapping 테이블로 통합 조회
작성: Claude 검토 필요: State Service 개발자