본문 바로가기

SOFTWARE

AlertCast

SSE 기반 실시간 알림 push 플랫폼. self-hosted로 서버를 운영하고, 단말 에이전트는 후속 단계에 통합 제공할 계획입니다.

v1.3.0SSE + REST + NATS JetStream

Architecture

구성도L7 프록시가 Last-Event-ID 유무로 SSE 신규/재연결을 라우팅한다. SSE 계층은 stateless 설계로 가로 확장이 가능한 구조(현재 단일 인스턴스 운영, 클러스터 분할은 후속 단계 계획)이며, REST 계층은 인증·발행을 담당, 두 계층은 NATS subject로만 통신한다(직접 HTTP 호출 금지).
핀치/휠로 확대 · 드래그로 이동 · 더블탭/더블클릭으로 리셋

용도

업무시스템에서 사용자로 향하는 단방향 실시간 알림 채널. 시스템 공지·장애· 업무 이벤트의 즉시 통지가 1차 축이며, 비동기 작업 결과 회신처럼 응답 시점이 분리된 메시지도 같은 통로로 운영합니다.

확장성

실시간 push의 1차 제약은 단말당 장기 TCP 연결 점유입니다. 사용자 수가 늘수록 단일 서버의 동시 연결 한계에 직결되므로, AlertCast는 SSE 계층을 stateless로 설계하고 NATS JetStream subject fan-out으로 모든 인스턴스가 동일 채널을 공유하는 구조 — 클러스터 분할(다중 SSE 인스턴스)은 후속 단계에 도입할 계획입니다.

서버 — 구성요소 (5)

신규 SSE 연결은 SSE 계층, 재연결 복구(Last-Event-ID)는 REST 계층 — L7 프록시가 분기합니다.

서버 — 메시지 채널 (4종 토픽)

서버 — 부하 검증

목표 동시 연결
1,000,000
목표 사용자
2,000,000
안정성 검증
대규모 동시 연결 및 알림 메시지 팬아웃 부하 테스트를 통해 안정성 및 무결성 검증

목표는 1M 연결·2M 사용자. 검증을 이어가고 있으며, 결과 수치는 측정 환경과 함께 박제되는 시점에 같이 노출합니다.

SUB-COMPONENT (계획)

단말 — AlertAgent

서버와 짝을 이루어 단말에서 SSE 수신·로컬 캐시·자동 재연결로 알림 누락을 흡수하는 OS별 단말 에이전트는 후속 단계 도입 예정입니다. 본 시점에는 서버가 발행하는 SSE 이벤트 정의(아래 4종)까지 박제되어 있고, 단말 측 구현·재연결 정책·플랫폼별 동작은 계획 확정 후 갱신합니다.

서버 발행 이벤트 (4종)

누락 복구 흐름

네트워크가 끊기면 단말이 자동으로 재연결하고, 서버의 Last-Event-ID 기반 Replay와 로컬 캐시를 함께 활용해 누락된 메시지를 복구합니다.

플랫폼별 동작

Windows, macOS 등 주요 운영체제에 맞춰 네이티브 알림을 표시하고 자격 증명을 안전하게 관리하도록 설계합니다.

사양

서버 (AlertCast)

버전
v1.3.0
라이선스
비공개 (내부 프로젝트)
SSE 계층
장기 연결 처리 · 메시지 팬아웃 · NATS 구독 · stateless
REST 계층
인증 · 발행 · 재연결 복구 · async ORM · 스키마 검증
브로커
NATS JetStream
세션 저장
PostgreSQL
프록시
L7 프록시 (SSL 종료 + L7 분기)

측정 환경 / 미달 지표

확장성 검증
목표 동시 접속자를 수용하기 위해 분산 처리와 메시지 팬아웃을 지속적으로 최적화

보안 · 컴플라이언스

라이선스
비공개 (내부 프로젝트)
운영 환경
self-hosted — 폐쇄망·인터넷 망 양쪽 운영. 외부 SaaS·클라우드 의존 없음
인증
JWT(HS256) Bearer + JetStream KV 토큰 블랙리스트 (폐기 즉시 반영) · core-auth 공용
전송
L7 프록시 TLS 1.2/1.3 종료
계층 격리
SSE ↔ REST 직접 호출 금지 — NATS subject 또는 NATS req/reply 전용
단말 자격증명
OS 네이티브 보안 저장소와 연동해 자격증명을 안전하게 관리
SBOM · 서명
syft SBOM, cosign 서명, grype 스캔 (Taskfile release:*)
기술 지원
도입 시 전담 기술 부서를 배정하고 패치 지원 채널을 운영

도입 · 시작하기

  1. 요건 검토 — 동시 연결 규모 · 알림 종류 · 단말 OS · 보안 정책
  2. 설치 · 통합 — 폐쇄망 반입 패키지 (alert-server + alert-sse 이미지) + 단말 에이전트 배포
  3. 운영 · 모니터링 — Prometheus / Grafana / Loki / Tempo, NATS subject 추적

도입을 검토하고 계신가요?

고객 요건과 운영 환경에 맞춰 구성·도입 절차를 안내해 드립니다. 데모·제안 요청은 문의로 받습니다.