docs: README.md에 이메일 설정 가이드 설명 추가
- Gmail API 실시간 수신 및 발송 완전 가이드 설명 추가 - 문서 링크 가독성 개선 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
915dc2a921
commit
b1e816d229
@ -31,7 +31,7 @@ Slack 기반 AI 어시스턴트 **로빙(Robeing)** 프로젝트의 모든 문
|
||||
- [Slack 테스트 가이드](./docs/setups/slack-test-guide.md)
|
||||
- [Socket Mode 테스트 가이드](./docs/setups/socket-mode-test.md)
|
||||
- [ngrok 테스트 가이드](./docs/setups/ngrok-test-guide.md)
|
||||
- [이메일 설정 가이드](./docs/setups/Email_readme.md)
|
||||
- [이메일 설정 가이드](./docs/setups/Email_readme.md) - Gmail API 실시간 수신 및 발송 완전 가이드
|
||||
|
||||
### 외부 참조
|
||||
- [Slack API 문서](https://api.slack.com/web)
|
||||
|
||||
69
docs/setups/Traefix+DockerSwarm+SlackOath.md
Normal file
69
docs/setups/Traefix+DockerSwarm+SlackOath.md
Normal file
@ -0,0 +1,69 @@
|
||||
# Traefik + Docker Swarm + Slack OAuth 구조 정리
|
||||
|
||||
## 1. 구성요약
|
||||
|
||||
### 조합 목적
|
||||
|
||||
* **Traefik**: 동적 리버스 프록시, SSL 자동 발급, 라우팅 자동화
|
||||
* **Docker Swarm**: 컨테이너 오케스트레이션, 서비스 자동 배포·복구
|
||||
* **Slack OAuth**: 사용자 인증 및 API 호출을 위한 토큰 발급
|
||||
|
||||
### 기본 흐름
|
||||
|
||||
```
|
||||
사용자 ↔ Traefik ↔ FastAPI (컨테이너) ↔ Slack API
|
||||
↕
|
||||
PostgreSQL (토큰 저장)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 각 조합 비교 요약
|
||||
|
||||
| 조합 | 구성도 | 주요 용도 | 장점 | 단점 |
|
||||
| -------------------------- | ------------------------------ | -------------- | ---------------- | --------------- |
|
||||
| **Nginx + Traefik** | Nginx(외부) → Traefik(내부) → 컨테이너 | 고급 라우팅/보안 분리 | 복잡한 역할 분리 가능 | 설정 이중화, 구조 복잡 |
|
||||
| **Nginx + Docker Swarm** | Nginx → Swarm 서비스로 프록시 | 단순 구조, 테스트용 | 익숙함, 설정 간단 | 자동 라우팅/SSL 불가 |
|
||||
| **Traefik + Docker Swarm** | Traefik → Swarm 서비스 자동 인식 | 자동 SSL, 무중단 배포 | 설정 자동화, 라벨 기반 운영 | 학습 필요, 초기 설정 요구 |
|
||||
|
||||
→ **추천 조합**: Traefik + Docker Swarm
|
||||
|
||||
---
|
||||
|
||||
## 3. Slack OAuth 대응 여부
|
||||
|
||||
| 항목 | 설명 | 가능 여부 |
|
||||
| --------------- | ------------------------------------------ | ----- |
|
||||
| 컨테이너 교체 시 토큰 유지 | Swarm은 컨테이너를 자동으로 교체할 수 있음 | O |
|
||||
| Traefik 라우팅 지속성 | 서비스 이름 기준으로 자동 감지/연결 | O |
|
||||
| Slack 인증 콜백 유지 | `/auth/slack/callback` 같은 경로 고정 가능 | O |
|
||||
| OAuth 토큰 저장 방식 | DB(PostgreSQL), Redis, JSON 파일 등 외부 저장소 활용 | O |
|
||||
|
||||
→ 핵심: **토큰을 컨테이너 외부에 저장하는 설계 필요**
|
||||
|
||||
---
|
||||
|
||||
## 4. 권장 저장 방식
|
||||
|
||||
| 방식 | 설명 | 비고 |
|
||||
| -------------------- | ---------------- | ----------- |
|
||||
| Supabase/PostgreSQL | 토큰 안전 저장 + 조회 간편 | **추천** |
|
||||
| Redis | 캐시 + TTL 관리 | OK (단기 보관용) |
|
||||
| JSON + Docker volume | 간단한 테스트용 | 실운영 비추천 |
|
||||
| .env 환경변수 | 초기값 용도로만 사용 | **보안 취약** |
|
||||
|
||||
---
|
||||
|
||||
## 5. 운영 전략 요약
|
||||
|
||||
* Traefik으로 **SSL 자동 관리 + 서비스 라우팅 자동화**
|
||||
* Docker Swarm으로 **컨테이너 동적 배포 + 재시작 자동 처리**
|
||||
* Slack OAuth 토큰은 **PostgreSQL 등 외부 DB에 저장**하여 지속성 확보
|
||||
|
||||
---
|
||||
|
||||
## 6. 결론
|
||||
|
||||
* Traefik + Swarm 구조는 Slack OAuth 토큰의 지속성과 확장성 모두 확보 가능
|
||||
* 구조적으로 무중단 배포, 컨테이너 재시작, 스케일 아웃에 유리
|
||||
* 단, Slack 인증 토큰은 반드시 **컨테이너 외부에 저장**해야 함
|
||||
Loading…
x
Reference in New Issue
Block a user