- 베이즈 추론 체계에서 '해석의 표현층' 역할 정의 - rb8001(지휘자) → 스킬(연주자) → skill-slack(편곡자) 오케스트레이션 - 기대효과: 일관된 UX, 관계 깊이 표현, 성장 가시화 - 로빙의 '관계의 인터페이스' 역할 명확화
182 lines
5.5 KiB
Markdown
182 lines
5.5 KiB
Markdown
# skill-slack 서비스 배포 계획 (51124 서버)
|
|
|
|
## 날짜: 2025-09-19
|
|
## 작성자: Claude
|
|
## 관련 서비스: skill-slack (포트 8502)
|
|
## 목적: 51124 서버에 skill-slack 자동 배포 설정
|
|
|
|
---
|
|
|
|
## 0. skill-slack의 철학적 위치와 역할
|
|
|
|
### 0.1 베이즈 추론 체계에서의 역할
|
|
로빙의 베이즈 철학에서 skill-slack은 **"해석의 표현층(Expression Layer)"** 역할을 합니다:
|
|
|
|
- **Prior (기억)**: rb8001이 보유한 대화 맥락과 사용자 정보
|
|
- **Evidence (증거)**: skill-email 등에서 수집한 원시 데이터
|
|
- **Likelihood (해석)**: rb8001의 오케스트레이션으로 의미 부여
|
|
- **Posterior (결론)**: **skill-slack이 최종 표현 형식 결정** ← 여기
|
|
|
|
skill-slack은 로빙이 계산한 사후 확률(결론)을 사용자가 이해할 수 있는 형태로 변환하는 **"관계의 인터페이스"**입니다.
|
|
|
|
### 0.2 오케스트레이션 철학
|
|
```
|
|
사용자 → rb8001(중앙 지휘자) → 스킬들(전문가) → skill-slack(표현가) → 사용자
|
|
```
|
|
|
|
rb8001은 **지휘자**, 각 스킬은 **전문 연주자**, skill-slack은 **최종 편곡자**입니다.
|
|
- rb8001: "무엇을 전달할 것인가" 결정
|
|
- skill-slack: "어떻게 전달할 것인가" 결정
|
|
|
|
### 0.3 기대 효과
|
|
|
|
**1. 일관된 사용자 경험**
|
|
- 모든 스킬의 출력이 통일된 Slack 포맷으로 변환
|
|
- 로빙의 '목소리'가 일관되게 유지
|
|
|
|
**2. 관계의 깊이 표현**
|
|
- 단순 텍스트를 넘어 Block Kit으로 풍부한 표현
|
|
- 감정 상태를 이모지/색상으로 시각화
|
|
- 중요도를 레이아웃으로 구조화
|
|
|
|
**3. 성장의 가시화**
|
|
- 초기: 단순한 텍스트 응답
|
|
- 성장 후: 구조화된 테이블, 차트, 인터랙티브 버튼
|
|
- 사용자와 함께 발전하는 표현 능력
|
|
|
|
---
|
|
|
|
## 1. 현재 상태 분석
|
|
|
|
### 1.1 서비스 현황
|
|
- **위치**: `/home/happybell/projects/ivada/skill-slack`
|
|
- **포트**: 8502
|
|
- **상태**: 미배포 (docker ps 결과 없음)
|
|
- **Gitea Actions**: cicd.yml 파일 존재하지만 deploy.yml 필요
|
|
|
|
### 1.2 기존 파일 구조
|
|
```
|
|
skill-slack/
|
|
├── .gitea/workflows/cicd.yml # 기존 CI/CD (비활성)
|
|
├── app/ # 애플리케이션 코드
|
|
├── docker-compose.yml # 개발용 compose
|
|
├── Dockerfile # 이미지 빌드
|
|
└── requirements.txt # Python 의존성
|
|
```
|
|
|
|
### 1.3 문제점
|
|
- cicd.yml은 self-hosted runner 사용 (51123 서버용)
|
|
- 51124 서버 배포를 위한 별도 워크플로우 필요
|
|
- 환경변수 설정 필요 (Slack 토큰 등)
|
|
|
|
---
|
|
|
|
## 2. 배포 전략
|
|
|
|
### 2.1 서버별 역할
|
|
| 서버 | 역할 | 배포 방식 |
|
|
|------|------|-----------|
|
|
| 51123 | Gitea Actions 실행 | self-hosted runner |
|
|
| 51124 | skill-slack 실행 | SSH 원격 배포 |
|
|
|
|
### 2.2 배포 흐름
|
|
```
|
|
1. Git Push → 2. Gitea Actions (51123) → 3. SSH 배포 (51124)
|
|
```
|
|
|
|
---
|
|
|
|
## 3. 구현 계획
|
|
|
|
### 3.1 deploy.yml 작성 필요
|
|
**경로**: `.gitea/workflows/deploy.yml`
|
|
- 51124 서버 배포용 워크플로우 필요
|
|
- SSH를 통한 원격 배포 방식 사용
|
|
- 헬스체크 포함
|
|
|
|
### 3.2 환경변수 설정 필요
|
|
**51124 서버 .env 파일**:
|
|
- Slack 토큰 설정 필요
|
|
- 서비스 연결 URL 설정 필요
|
|
- 포트 8502 설정
|
|
|
|
### 3.3 docker-compose.yml 확인
|
|
- 포트 매핑 명시적 설정 필요
|
|
- 환경변수 .env 파일에서 로드
|
|
|
|
---
|
|
|
|
## 4. 실행 단계별 체크리스트
|
|
|
|
### 4.1 사전 준비 (51124 서버)
|
|
- [ ] skill-slack 디렉토리 존재 확인
|
|
- [ ] git remote 설정 확인
|
|
- [ ] .env 파일 생성 및 토큰 설정
|
|
- [ ] Docker 설치 상태 확인
|
|
|
|
### 4.2 Gitea Actions 설정
|
|
- [ ] .gitea/workflows/deploy.yml 생성
|
|
- [ ] SSH 키 설정 (51123 → 51124)
|
|
- [ ] workflow_dispatch 트리거 활성화
|
|
|
|
### 4.3 초기 배포
|
|
- [ ] 수동 git pull (51124 서버)
|
|
- [ ] docker compose up -d --build 실행
|
|
- [ ] 헬스체크: curl http://localhost:8502/health
|
|
- [ ] 로그 확인: docker logs skill-slack
|
|
|
|
### 4.4 연동 테스트
|
|
- [ ] rb8001 → skill-slack API 호출 테스트
|
|
- [ ] Slack 메시지 포맷팅 기능 테스트
|
|
- [ ] 에러 로그 모니터링
|
|
|
|
---
|
|
|
|
## 5. 트러블슈팅
|
|
|
|
### 5.1 일반적인 문제
|
|
| 문제 | 원인 | 해결 방법 |
|
|
|------|------|-----------|
|
|
| 포트 충돌 | 8502 이미 사용 중 | `ss -tlnp | grep 8502` 확인 |
|
|
| 헬스체크 실패 | 서비스 시작 지연 | start_period 늘리기 |
|
|
| Slack 토큰 에러 | 잘못된 토큰 | .env 파일 확인 |
|
|
|
|
### 5.2 로그 위치
|
|
- Docker 로그: `docker logs skill-slack`
|
|
- 애플리케이션 로그: `./logs/` 디렉토리
|
|
- Gitea Actions 로그: 웹 UI에서 확인
|
|
|
|
---
|
|
|
|
## 6. 보안 고려사항
|
|
|
|
### 6.1 토큰 관리
|
|
- Slack 토큰은 .env 파일로만 관리
|
|
- .env는 절대 git에 커밋하지 않음
|
|
- 서버별로 다른 토큰 사용 권장
|
|
|
|
### 6.2 네트워크
|
|
- network_mode: host 사용 주의
|
|
- 필요시 bridge 네트워크 고려
|
|
- 방화벽 규칙 확인 필요
|
|
|
|
---
|
|
|
|
## 7. 향후 개선사항
|
|
|
|
### 7.1 단기 (1주일 내)
|
|
- [ ] 자동 배포 워크플로우 테스트
|
|
- [ ] 롤백 전략 수립
|
|
- [ ] 모니터링 대시보드 설정
|
|
|
|
### 7.2 장기 (1개월 내)
|
|
- [ ] Blue-Green 배포 전략 도입
|
|
- [ ] 로드 밸런싱 설정
|
|
- [ ] 자동 스케일링 검토
|
|
|
|
---
|
|
|
|
## 8. 참고 문서
|
|
- [NaverWorks-Slack 기본 구성](./250919_naverworks_slack_01_base_configuration.md)
|
|
- [Slack 메시지 처리 아키텍처](../ideas/250812_claude_Slack_메시지_처리_아키텍처_분석.md)
|
|
- [서비스 재구조화 계획](../plans/250807_서비스_재구조화_계획.md) |