알림 시스템은 예약 작업 결과를 이메일과 웹훅을 통해 자동으로 전달합니다. 관리자가 알림 채널을 사전 구성하면, 사용자는 예약 작업 생성 시 채널을 선택하여 결과 알림을 받을 수 있습니다.
알림 아키텍처
| 단계 | 담당 | 설명 |
|---|
| 채널 설정 | 관리자 | SMTP, SendGrid, Slack 등 채널 사전 구성 |
| 채널 선택 | 사용자 | 예약 작업에서 알림 채널과 트리거 조건 지정 |
| 알림 발송 | 시스템 | 예약 작업 실행 후 결과를 선택된 채널로 전달 |
이메일 채널
관리자 > 설정 > 알림 또는 별도 알림 관리 화면에서 이메일 채널을 추가합니다. 여러 채널을 등록하여 팀별로 다른 발신 설정을 사용할 수 있습니다.
채널 추가
”+ 이메일 채널 추가” 버튼을 클릭합니다.
| 필드 | 설명 |
|---|
| 채널 이름 | 식별 이름 (예: “기본”, “마케팅팀 메일”) |
| 엔진 | SMTP 또는 SendGrid 선택 |
SMTP 설정
사내 메일 서버 또는 외부 SMTP 서비스(Gmail, Outlook 등)를 연결합니다.| 설정 | 설명 | 예시 |
|---|
| 서버 | SMTP 서버 주소 | smtp.gmail.com |
| 포트 | SMTP 포트 | 587 (TLS) / 465 (SSL) |
| 사용자명 | 인증 계정 | noreply@company.com |
| 비밀번호 | 인증 비밀번호 | |
| TLS 사용 | TLS 암호화 활성화 | 포트 587에서 사용 |
| SSL 사용 | SSL 암호화 활성화 | 포트 465에서 사용 |
| 발신자 주소 | From 이메일 주소 | noreply@company.com |
| 발신자 이름 | From 이름 | Cloosphere |
TLS와 SSL은 동시에 사용할 수 없습니다. 포트 587에는 TLS, 포트 465에는 SSL을 사용하세요.
SendGrid API를 사용한 이메일 발송입니다.| 설정 | 설명 |
|---|
| API 키 | SendGrid API 키 |
| 발신자 주소 | SendGrid에서 인증된 발신자 이메일 |
| 발신자 이름 | From 이름 |
연결 테스트
“연결 테스트” 버튼으로 메일 서버 연결 상태를 확인합니다.
| 결과 | 설명 |
|---|
| 성공 | 서버 연결, 인증 모두 정상 |
| 인증 실패 | 사용자명/비밀번호 확인 필요 |
| 연결 실패 | 서버 주소, 포트, 방화벽 확인 필요 |
| 타임아웃 | 네트워크 연결 확인 필요 |
테스트 이메일 발송
“테스트 이메일 발송” 버튼으로 실제 이메일 수신을 확인합니다.
수신자 이메일 입력
테스트 이메일을 받을 주소를 입력합니다.
수신 확인
받은 편지함(스팸함 포함)에서 테스트 이메일 수신을 확인합니다.
웹훅 채널
외부 메시징 서비스와 연동하여 알림을 전송합니다.
채널 추가
”+ 웹훅 채널 추가” 버튼을 클릭합니다.
| 필드 | 설명 |
|---|
| 채널 이름 | 식별 이름 (예: “개발팀 Slack”) |
| 제공자 | Slack / Teams / Discord / Telegram |
| 웹훅 URL | 제공자에서 발급받은 수신 웹훅 URL |
제공자별 설정
Slack
Teams
Discord
Telegram
웹훅 URL 생성:
- Slack 앱 관리 페이지에서 Incoming Webhooks 활성화
- Add New Webhook to Workspace 클릭
- 채널 선택 후 Allow
- 생성된 URL 복사 (
https://hooks.slack.com/services/...)
알림 형식: Header 블록 + Fields (프롬프트, 완료 시간) + Section (결과) + 차트 이미지 웹훅 URL 생성:
- Teams 채널에서 커넥터 또는 워크플로우 설정
- Incoming Webhook 추가
- 이름 지정 후 만들기
- 생성된 URL 복사 (
https://...webhook.office.com/...)
알림 형식: Adaptive Card 1.5 — TextBlock, FactSet, Table + 차트 이미지 웹훅 URL 생성:
- Discord 채널 설정 > 연동 > 웹후크
- 새 웹후크 클릭
- 이름 설정 후 웹후크 URL 복사 (
https://discord.com/api/webhooks/...)
알림 형식: Embed — Title + Fields + Description + 차트 이미지 (첫 번째만) Bot 설정:
@BotFather로 봇 생성 후 Bot Token 획득
- 봇을 채널/그룹에 추가
- Chat ID 확인
| 설정 | 설명 |
|---|
| Bot Token | BotFather에서 발급받은 토큰 |
| Chat ID | 알림을 보낼 채팅방 ID |
테스트 웹훅
“테스트” 버튼을 클릭하면 선택한 제공자 형식에 맞는 테스트 메시지를 전송합니다.
예약 작업 알림 연동
관리자가 채널을 설정한 후, 사용자는 예약 작업에서 알림을 구성합니다.
트리거 조건
| 조건 | 설명 | 사용 사례 |
|---|
| 항상 | 성공/실패 모두 알림 | 중요 스케줄 모니터링 |
| 성공 시만 | 정상 완료 시에만 알림 | 정기 보고서 전달 |
| 실패 시만 | 오류 발생 시에만 알림 | 장애 감지 알림 |
다중 알림
하나의 예약 작업에 여러 알림 채널을 동시에 설정할 수 있습니다.
| 알림 | 채널 | 대상 | 조건 |
|---|
| 알림 1 | 이메일 | 팀장 | 항상 |
| 알림 2 | Slack 웹훅 | 개발팀 채널 | 실패 시만 |
| 알림 3 | Teams 웹훅 | 경영진 채널 | 성공 시만 |
차트 이미지 전달
DbSphere 에이전트가 생성한 Plotly 차트는 서버사이드 렌더링으로 PNG 이미지로 변환되어 알림에 포함됩니다.
| 채널 | 방식 | 설명 |
|---|
| 이메일 | 인라인 Base64 | 본문에 이미지 직접 포함 |
| Slack | 이미지 URL | 이미지 블록으로 표시 |
| Teams | Adaptive Card | 카드 내 이미지 요소 |
| Discord | Embed 이미지 | 첫 번째 차트만 포함 |
차트 이미지는 알림 발송 전에 자동으로 추출됩니다. 알림 본문에서는 차트 마커가 제거되어 깔끔한 텍스트가 전달됩니다.
트러블슈팅
| 증상 | 확인 사항 |
|---|
| 연결 실패 | 서버 주소, 포트 확인. 방화벽에서 SMTP 포트 허용 여부 확인 |
| 인증 실패 | 사용자명/비밀번호 확인. Google은 앱 비밀번호 사용 필요 |
| 이메일 미수신 | 수신자 스팸함 확인. 발신 도메인의 SPF/DKIM 설정 확인 |
| TLS 오류 | TLS/SSL 설정과 포트 조합 확인 (587-TLS, 465-SSL) |
| SendGrid 오류 | API 키 권한 확인. 발신자 주소가 인증되었는지 확인 |
| 증상 | 확인 사항 |
|---|
| 전송 실패 | 웹훅 URL 유효성 확인. URL이 만료되지 않았는지 확인 |
| 메시지 미표시 | 대상 채널/앱의 권한 확인. 봇이 채널에 접근 가능한지 확인 |
| 타임아웃 | 네트워크 연결 확인. 방화벽에서 외부 HTTPS 요청 허용 여부 |
| 형식 깨짐 | 제공자 설정 확인 (Slack/Teams/Discord/Telegram 중 올바른 항목 선택) |
| 증상 | 확인 사항 |
|---|
| 알림이 오지 않음 | 예약 작업의 알림 설정 확인. 트리거 조건이 올바른지 확인 |
| 차트 이미지 없음 | 에이전트가 DbSphere와 연결되어 있는지 확인 |