diff --git a/troubleshooting/250826_slack_id_column_standardization.md b/troubleshooting/250826_slack_id_column_standardization.md index 8ef44aa..eaeb8ff 100644 --- a/troubleshooting/250826_slack_id_column_standardization.md +++ b/troubleshooting/250826_slack_id_column_standardization.md @@ -2,28 +2,32 @@ ## 작성일: 2025-08-26 22:00 ## 작성자: 51124 서버 담당 -## 상태: 작업 필요 +## 상태: ✅ 모든 DB 작업 완료 / ✅ 코드 수정 완료 ## 영향: ID 일관성, 사용자 맞춤화 +## 최종 업데이트: 2025-08-27 00:10 --- -## 1. Slack 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) | +### ~~현재 상태~~ 해결됨 +| 테이블 | 이전 컬럼명 | 현재 컬럼명 | 타입 | +|--------|------------|------------|------| +| slack_user_mapping | slack_user_id | slack_user_id | VARCHAR(100) | +| gmail_tokens | ~~slack_id~~ ❌ | **slack_user_id** ✅ | VARCHAR(100) | +| conversation_logs | slack_user_id | slack_user_id | VARCHAR(100) | -### 해결 방안 +### ✅ 적용 완료 -#### DB 스키마 변경 +#### ✅ 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; +-- 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; -- ✅ + +-- 인덱스도 생성됨 +CREATE INDEX idx_gmail_tokens_slack_user_id ON gmail_tokens(slack_user_id); -- ✅ ``` #### 코드 수정 필요 @@ -36,33 +40,34 @@ ALTER TABLE gmail_tokens DROP COLUMN slack_id; --- -## 2. 뉴스 키워드 하드코딩 문제 +## 2. 뉴스 키워드 하드코딩 문제 ✅ (완료) -### 현재 상태 -- rb8001이 `["AI", "기술", "IT"]`만 사용 (dm_skill.py:309) -- 매일 같은 뉴스 반복 +### ~~현재 상태~~ 해결됨 +- ~~rb8001이 `["AI", "기술", "IT"]`만 사용 (dm_skill.py:309)~~ +- ~~매일 같은 뉴스 반복~~ -### 해결 방안: user_preferences 테이블 +### ✅ 구현 완료: user_preferences 테이블 (생성 확인됨) ```sql -CREATE TABLE user_preferences ( +CREATE TABLE user_preferences ( -- ✅ 테이블 생성 완료 id SERIAL PRIMARY KEY, user_id UUID REFERENCES users(id), slack_user_id VARCHAR(100), - news_keywords VARCHAR(128)[], -- 뉴스 키워드 - email_filter VARCHAR(128)[], -- 이메일 필터 + news_keywords VARCHAR(128)[], -- ✅ 배열 타입 적용됨 + email_filter VARCHAR(128)[], -- ✅ 배열 타입 적용됨 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 테이블에서 조회 -- 없으면 기본값 사용 +### ✅ rb8001 코드 수정 완료 (커밋: aed931e, 7103599) +- dm_skill.py의 get_news_content() 메서드에서 사용자별 키워드 조회 구현 +- _get_user_news_keywords() 메서드 추가 +- user_preferences 테이블에서 조회, 없으면 기본값 사용 +- send_daily_summary_dm()에서 사용자별 뉴스 제공 -### 슬랙 명령어 설계 +### ⏳ 슬랙 명령어 설계 (추후 구현 예정) #### 일반 메시지 명령어 - **설정**: "@로빙 뉴스 키워드 설정: 삼성, 반도체, AI" @@ -85,4 +90,28 @@ CREATE TABLE user_preferences ( --- -*작성: 2025-08-26 22:00* \ No newline at end of file +## 3. 작업 완료 요약 + +### ✅ 완료된 작업 +1. **Slack ID 컬럼명 통일** (2025-08-27 DB 확인) + - gmail_tokens.slack_id → slack_user_id 변경 완료 + - 인덱스 idx_gmail_tokens_slack_user_id 생성됨 + +2. **user_preferences 테이블 생성** (2025-08-27 DB 확인) + - 테이블 존재 확인됨 + - news_keywords, email_filter 배열 타입 적용됨 + +3. **뉴스 키워드 하드코딩 제거** (2025-08-26 21:00) + - rb8001/app/skills/dm_skill.py 수정 완료 + - 사용자별 맞춤 키워드 설정 가능 + - Git 커밋: aed931e (기능), 7103599 (프롬프트) + - Gitea Actions 자동 배포 완료 + +### ⏳ 보류/예정 작업 +1. **슬랙 명령어 구현** - 사용자가 직접 키워드 설정 가능하도록 +2. **프론트엔드 UI** - ActivityPanel에서 키워드 관리 + +--- + +*작성: 2025-08-26 22:00* +*최종 업데이트: 2025-08-27 00:00* \ No newline at end of file