# 기술 부채 정리

## 작성일: 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 적용