- gmail_tokens → gmail_token (33 files) - companies → company (17 files) - conversation_logs → conversation_log (27 files) - workspace_members → workspace_member (28 files) All table names now match the actual PostgreSQL schema
106 lines
3.0 KiB
Markdown
106 lines
3.0 KiB
Markdown
# 기술 부채 정리
|
|
|
|
## 작성일: 2025년 8월 31일
|
|
## 최종 수정: 2025년 9월 15일
|
|
|
|
## 🔴 미해결 주요 이슈
|
|
|
|
### 1. 임시 코드 방식 제거 필요
|
|
**현재 상황**:
|
|
- Gmail/Slack 모두 임시 코드 → `/auth/verify` → JWT
|
|
- 불필요한 Redis 의존성, 60초 TTL 제한
|
|
|
|
**개선 방안**:
|
|
- JWT 직접 전달 또는 Secure cookie 사용
|
|
- Redis 의존성 제거
|
|
|
|
### 2. DB 스키마 불일치
|
|
**문제**:
|
|
- company vs workspaces 테이블 공존
|
|
- SlackWorkspace 모델 FK 오류 (company_id를 workspace_id로 참조)
|
|
|
|
**해결 계획**:
|
|
1. 데이터 백업
|
|
2. company → workspaces 마이그레이션
|
|
3. FK 관계 재설정
|
|
4. 모델 파일 통일
|
|
|
|
### 3. 하드코딩된 URL 제거 🔴
|
|
**위치**:
|
|
```python
|
|
# app/providers/slack.py
|
|
login_callback_url = "https://auth.ro-being.com/auth/slack/login/callback"
|
|
redirect_uri = "http://localhost:3000"
|
|
|
|
# frontend-customer/src/contexts/auth-context.tsx
|
|
fetch('https://auth.ro-being.com/auth/verify')
|
|
```
|
|
|
|
**해결**: 환경변수로 추출 (dev/staging/prod 분리)
|
|
|
|
### 4. 사용자 매핑 로직 개선
|
|
**문제점**:
|
|
- email 변경 시 중복 계정 생성 가능
|
|
- workspace 없이 매핑 불가
|
|
- username 생성 로직 분산
|
|
|
|
**해결**: UserIdentityService 통합 서비스 구현
|
|
|
|
## ✅ 해결 완료 항목
|
|
|
|
### 2025-09-15 해결
|
|
- Rate Limiting 구현 완료
|
|
|
|
### 2025-09-04 해결
|
|
- python-multipart 의존성 추가 완료
|
|
- Docker dangling 이미지 39개 제거 (3.9GB 회수)
|
|
- nginx 권한 644 정상 확인
|
|
- Redis TTL 자동 만료 정상 작동
|
|
- PostgreSQL 테이블 robeings 소유권 확인
|
|
- git config pull.rebase false 설정 완료
|
|
|
|
### 2025-08-31 해결
|
|
- Slack OAuth 2.0 로그인 구현
|
|
- Frontend-Backend 인증 방식 통일 (임시 코드 방식)
|
|
- Git merge conflict 해결 (커밋: 5bb14a6)
|
|
|
|
## 🟡 개선 필요 사항
|
|
|
|
### 보안 강화
|
|
- Refresh Token 구현
|
|
- PKCE 적용
|
|
- 토큰 암호화 저장
|
|
|
|
### 코드 품질
|
|
- 에러 처리 개선 (구체적 메시지)
|
|
- 테스트 추가 (단위/통합/E2E)
|
|
- API 문서화 (OpenAPI/Swagger)
|
|
|
|
## 📋 작업 요약
|
|
|
|
### 완료된 작업
|
|
1. **Slack OAuth 구현**: `/auth/slack/login`, JWT 30일, Redis 60초 TTL
|
|
2. **사용자 매핑**: slack_user_mapping 테이블 활용
|
|
3. **프론트엔드 통합**: auth-context.tsx 수정, Gmail과 통일
|
|
|
|
### 미해결 과제
|
|
1. **기술 부채**: 임시 코드 제거, DB 스키마 통일
|
|
2. **개선 사항**: 통합 인증 서비스, OAuth 토큰 갱신
|
|
3. **문서화**: API 문서, 배포 가이드, 트러블슈팅
|
|
|
|
## 📌 관련 문서
|
|
- [미해결 항목 매트릭스](./000000_unresolved_items_matrix.md)
|
|
- [인증 시스템 아키텍처](../300_architecture/380_authentication_system.md)
|
|
- [Slack OAuth 구현](../troubleshooting/250831_slack_oauth_login_implementation.md)
|
|
|
|
## 환경변수 위치
|
|
- `/home/admin/auth-server/.env`
|
|
- `/home/admin/frontend-customer/.env`
|
|
|
|
## 체크리스트
|
|
- [ ] 하드코딩 URL 환경변수화
|
|
- [ ] DB 스키마 통일 (company → workspaces)
|
|
- [ ] 임시 코드 방식 제거
|
|
- [ ] UserIdentityService 구현
|
|
- [ ] Refresh Token 구현
|
|
- [ ] PKCE 적용 |