46 lines
1.2 KiB
Markdown
46 lines
1.2 KiB
Markdown
# 대화 로그 사용자 매핑 불일치
|
|
|
|
## 상태: 해결 방안 제시 (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 검증
|
|
|
|
### 구현
|
|
1. conversation_logs 테이블 현 구조 유지
|
|
- slack_user_id: Slack 사용자만
|
|
- user_id: 웹 사용자만
|
|
|
|
2. 통계 조회 시 JOIN
|
|
- slack_user_mapping 테이블 활용
|
|
- WHERE user_id = ? OR slack_user_id IN (SELECT...)
|
|
|
|
## 결론
|
|
- 분리 운영이 가장 현실적
|
|
- 각 채널 특성에 맞는 인증 체계 유지
|
|
- 필요 시 slack_user_mapping 테이블로 통합 조회
|
|
|
|
---
|
|
*작성: Claude*
|
|
*검토 필요: State Service 개발자* |