DOCS/troubleshooting/250826_slack_id_column_standardization.md
Claude-51124 faa9ce7ba9 docs: 문서 전면 재작성 및 간소화
- 제목 변경: ID 체계 표준화 및 사용자 설정 시스템
- 핵심 2가지 문제와 해결책만 정리
- 불필요한 내용 모두 제거
- 65줄로 압축
2025-08-26 22:14:51 +09:00

67 lines
1.7 KiB
Markdown

# ID 체계 표준화 및 사용자 설정 시스템
## 작성일: 2025-08-26 22:00
## 작성자: 51124 서버 담당
## 상태: 작업 필요
## 영향: ID 일관성, 사용자 맞춤화
---
## 1. Slack ID 컬럼명 불일치
### 현재 상태
| 테이블 | 컬럼명 | 타입 |
|--------|--------|------|
| slack_user_mapping | slack_user_id | VARCHAR(100) |
| gmail_tokens | **slack_id** ❌ | VARCHAR(100) |
| conversation_logs | slack_user_id | VARCHAR(100) |
### 해결 방안
```sql
-- gmail_tokens 컬럼명 변경
ALTER TABLE gmail_tokens ADD COLUMN slack_user_id VARCHAR(100);
UPDATE gmail_tokens SET slack_user_id = slack_id;
ALTER TABLE gmail_tokens DROP COLUMN slack_id;
```
---
## 2. 뉴스 키워드 하드코딩 문제
### 현재 상태
- rb8001이 `["AI", "기술", "IT"]`만 사용 (dm_skill.py:309)
- 매일 같은 뉴스 반복
### 해결 방안: user_preferences 테이블
```sql
CREATE TABLE user_preferences (
id SERIAL PRIMARY KEY,
user_id UUID REFERENCES users(id),
slack_user_id VARCHAR(100),
news_keywords TEXT[], -- 뉴스 키워드
email_filter TEXT[], -- 이메일 필터
briefing_enabled BOOLEAN DEFAULT true,
briefing_time TIME DEFAULT '09:00',
updated_at TIMESTAMP DEFAULT NOW()
);
```
```python
# rb8001/dm_skill.py 수정
async def get_user_keywords(slack_user_id: str) -> List[str]:
db = SessionLocal()
result = db.execute(
text("SELECT news_keywords FROM user_preferences WHERE slack_user_id = :sid"),
{"sid": slack_user_id}
).fetchone()
return result[0] if result else ["AI", "기술", "IT"]
```
### 프론트엔드 연동
- ActivityPanel 설정 UI 활용 (250825 문서 참조)
- Gateway API로 user_preferences CRUD 구현
---
*작성: 2025-08-26 22:00*