1.7 KiB
1.7 KiB
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) |
해결 방안
-- 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 테이블
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()
);
# 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