- gmail_tokens 컬럼 변경 시 수정해야 할 4개 파일 명시 - 슬랙에서 뉴스 키워드 설정하는 명령어 설계 - 일반 메시지 명령어와 슬래시 명령어 대안 제시 - 코드 제거하고 설명으로 대체
88 lines
2.6 KiB
Markdown
88 lines
2.6 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) |
|
|
|
|
### 해결 방안
|
|
|
|
#### DB 스키마 변경
|
|
```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;
|
|
```
|
|
|
|
#### 코드 수정 필요
|
|
| 파일 경로 | 변경 내용 |
|
|
|-----------|----------|
|
|
| auth-server/models.py | slack_id → slack_user_id |
|
|
| robeing-monitor/database.py | slack_id → slack_user_id |
|
|
| skill-email/db_client.py | slack_id → slack_user_id |
|
|
| rb8001/app/brain/state_client.py | gmail_tokens 조회 시 컬럼명 |
|
|
|
|
---
|
|
|
|
## 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()
|
|
);
|
|
```
|
|
|
|
### rb8001 코드 수정
|
|
- dm_skill.py의 get_news_content() 메서드에서 사용자별 키워드 조회
|
|
- 하드코딩된 ["AI", "기술", "IT"] 대신 user_preferences 테이블에서 조회
|
|
- 없으면 기본값 사용
|
|
|
|
### 슬랙 명령어 설계
|
|
|
|
#### 일반 메시지 명령어
|
|
- **설정**: "@로빙 뉴스 키워드 설정: 삼성, 반도체, AI"
|
|
- **확인**: "@로빙 내 뉴스 키워드"
|
|
- **초기화**: "@로빙 뉴스 키워드 초기화"
|
|
|
|
#### 슬래시 명령어 (대안)
|
|
- **/news-keywords set** 삼성, 반도체, AI
|
|
- **/news-keywords list**
|
|
- **/news-keywords reset**
|
|
|
|
#### 구현 방법
|
|
1. rb8001이 메시지에서 "뉴스 키워드 설정:" 패턴 감지
|
|
2. user_preferences 테이블에 키워드 저장 (INSERT ON CONFLICT UPDATE)
|
|
3. 다음 브리핑부터 해당 키워드로 뉴스 검색
|
|
|
|
### 프론트엔드 연동
|
|
- ActivityPanel 설정 UI에서도 동일하게 user_preferences 수정
|
|
- Gateway API 엔드포인트로 CRUD 구현
|
|
|
|
---
|
|
|
|
*작성: 2025-08-26 22:00* |