모니터링
CSO 정산 포털의 배포 상태, 이메일 발송 이력, 시스템 상태를 모니터링하는 방법을 설명합니다.
Vercel 배포 상태 확인
포털은 GitHub main 브랜치에 push하면 Vercel이 자동으로 빌드하고 배포합니다.
배포 현황 확인
- Vercel 대시보드 에 로그인합니다.
- csoweb 프로젝트를 선택합니다.
- Deployments 탭에서 배포 이력을 확인합니다.
| 상태 | 의미 |
|---|---|
| Ready | 배포 완료, 정상 운영 중 |
| Building | 빌드 진행 중 |
| Error | 빌드 실패 |
| Canceled | 배포 취소됨 |
프리뷰 배포
PR(Pull Request) 생성 시 Vercel이 자동으로 프리뷰 URL을 생성합니다. 프리뷰 배포에서 변경 사항을 확인한 후 main에 머지하면 프로덕션에 반영됩니다.
이메일 발송 이력 (/admin/emails)
발송된 모든 이메일 내역을 조회합니다.
통계 카드
페이지 상단에 4개의 통계 카드가 표시됩니다.
| 카드 | 설명 |
|---|---|
| 전체 | 조회 기간 내 총 이메일 수 |
| 발송 완료 | 정상적으로 전달된 이메일 수 |
| 발송 실패 | 전송에 실패한 이메일 수 |
| 대기 중 | 아직 발송되지 않은 이메일 수 |
필터링
| 필터 | 옵션 |
|---|---|
| 기간 | 최근 7일, 30일, 90일, 전체 |
| 유형 | 전체, 가입신청, 승인완료, 거부, 정산업로드, 비밀번호재설정, 메일머지 |
| 상태 | 전체, 발송완료, 실패, 대기중 |
이메일 로그 테이블
| 컬럼 | 내용 |
|---|---|
| 수신자 | 이메일 주소 |
| 제목 | 이메일 제목 |
| 유형 | 이메일 템플릿 유형 (뱃지) |
| 상태 | sent/failed/pending (색상 뱃지) |
| 발송일시 | 발송 완료 시점 |
| 에러 메시지 | 실패 시 에러 내용 |
실패한 이메일은 빨간색 뱃지로 표시되며, 에러 메시지를 확인하여 원인을 파악할 수 있습니다.
메일머지 발송 (/admin/mailmerge)
CSO 업체들에게 개인화된 이메일을 일괄 발송합니다. 각 업체의 정산 데이터를 본문에 포함할 수 있습니다.
수신자 설정
| 옵션 | 설명 |
|---|---|
| 전체 회원 | 승인된 모든 CSO 업체에 발송 |
| 정산월 기준 | 특정 정산월에 데이터가 있는 업체에만 발송 |
섹션(거래처별, 제품별, 영업사원별 등)을 선택하여 정산 테이블을 본문에 포함할 수 있습니다. 섹션 순서는 드래그로 변경 가능합니다.
이메일 작성
- 제목: 변수 삽입 가능 (예:
{{업체명}}님 정산 안내) - 본문: 자유 텍스트 + 변수 삽입
- 사용 가능 변수:
{{업체명}},{{대표자명}},{{사업자번호}},{{정산월}}등
미리보기 및 테스트 발송
- 미리보기 버튼 클릭 → 변수가 치환된 실제 이메일 내용 확인
- 테스트 계정 선택 → 테스트 발송 으로 실제 수신 확인
- 테스트 확인 후 발송하기 클릭
발송 과정
발송은 SSE(Server-Sent Events)를 통해 실시간 진행 상황을 표시합니다.
| 항목 | 설명 |
|---|---|
| 진행률 바 | 전체 대비 발송 완료 퍼센트 |
| 예상 잔여 시간 | 남은 발송 시간 자동 계산 |
| 실시간 로그 | 각 이메일 발송 결과 (성공/실패) 순차 표시 |
| 취소 버튼 | 발송 중 언제든 중단 가능 |
발송 간격
| 설정 | 기본값 | 설명 |
|---|---|---|
| 이메일 발송 간격 | 6초 | 메일머지 시 건별 대기 시간 |
| 배치 승인 간격 | 200ms | 일괄 승인 이메일 간 대기 시간 |
발송 간격은 /admin/email-settings에서 email_send_delay_ms 값으로 조정할 수 있습니다. Resend API의 Rate Limit(초당 2건)을 초과하지 않도록 6초 이상을 권장합니다.
발송 결과
발송 완료 후 결과 요약이 표시됩니다.
| 항목 | 설명 |
|---|---|
| 총 발송 수 | 시도한 이메일 수 |
| 성공 | 정상 발송된 수 |
| 실패 | 발송 실패한 수 + 에러 내용 |
| 소요 시간 | 전체 발송에 걸린 시간 |
시스템 정보 (/admin/system)
시스템 구성 및 외부 서비스 연결 상태를 한눈에 확인합니다. 읽기 전용 페이지입니다.
앱 정보 카드
| 항목 | 내용 |
|---|---|
| 앱 이름 | CSO 정산 포털 |
| 버전 | package.json 버전 |
| 환경 | production / development |
| Node.js 버전 | 런타임 버전 |
배포 카드
| 항목 | 내용 |
|---|---|
| 배포 플랫폼 | Vercel |
| 배포 URL | 프로덕션 도메인 |
| 빌드 ID | Vercel 배포 ID |
| 리전 | 배포 리전 |
데이터베이스 카드
| 항목 | 내용 |
|---|---|
| 프로바이더 | Supabase |
| 연결 상태 | 정상/오류 |
| 프로젝트 URL | Supabase 프로젝트 주소 |
외부 API 카드
| 항목 | 내용 |
|---|---|
| Resend API | 설정 여부 및 연결 상태 |
| SMTP | 호스트/포트 설정 상태 |
인증 카드
| 항목 | 내용 |
|---|---|
| JWT Secret | 설정 여부 (값은 표시하지 않음) |
| 세션 만료 | 24시간 |
이메일 서비스 카드
| 항목 | 내용 |
|---|---|
| 현재 프로바이더 | Resend 또는 SMTP |
| 발신 이메일 | 설정된 발신자 주소 |
| 발송 간격 | 설정된 딜레이 (ms) |
에러 로그 확인
Vercel 대시보드
- Vercel 대시보드 → csoweb 프로젝트 → Logs 탭
- Runtime Logs: 서버 사이드 에러 (API 라우트, 서버 컴포넌트)
- Build Logs: 빌드 시 발생한 에러
주요 모니터링 포인트
| 항목 | 확인 방법 | 빈도 |
|---|---|---|
| 배포 상태 | Vercel Deployments | 배포 시 |
| 이메일 발송 실패 | /admin/emails 실패 필터 | 주 1회 |
| CSO 매칭 누락 | /admin/integrity | 업로드 후 |
| DB 연결 | /admin/system | 문제 발생 시 |
| API 에러 | Vercel Runtime Logs | 문제 발생 시 |
이메일 알림 설정 (/admin/email-settings)
이메일 유형별로 자동 발송 여부를 ON/OFF할 수 있습니다.
| 유형 | 기본값 | 수신자 |
|---|---|---|
| 가입 신청 알림 | ON | 관리자 |
| 승인 완료 알림 | ON | 회원 |
| 거부 알림 | ON | 회원 |
| 정산서 업로드 알림 | ON | 회원 |
| 비밀번호 재설정 | ON | 회원 |
메일머지는 수동 발송이므로 이 설정에 포함되지 않습니다.
이메일 프로바이더 설정
| 프로바이더 | 설정 항목 |
|---|---|
| Resend | API 키 (환경변수), 발신 이메일 주소 |
| SMTP (하이웍스) | 호스트, 포트(465 SSL), 사용자명, 비밀번호, 발신자명, 발신 이메일 |
프로바이더 전환 시 연결 테스트 버튼으로 설정이 올바른지 확인할 수 있습니다. 테스트 이메일이 test_recipient_email로 발송됩니다.