Skip to content

SSE 운영 구현 글 추가 — 시리즈 2편 - #143

Open
kmg733 wants to merge 4 commits into
developfrom
feature/sse-production-post
Open

SSE 운영 구현 글 추가 — 시리즈 2편#143
kmg733 wants to merge 4 commits into
developfrom
feature/sse-production-post

Conversation

@kmg733

@kmg733 kmg733 commented Jul 24, 2026

Copy link
Copy Markdown
Owner

개요

realtime-communication 시리즈 2편. 1편(#142, develop 병합 완료)에서 뗀 실무 사례를 앞에 두고, SSE를 실제 운영에 올리며 부딪힌 문제들을 순서대로 다룬다.

신규 글: sse-production-implementation.md

제목: SseEmitter를 반환하고 나서 시작된 일들

컨트롤러에서 SseEmitter를 반환하면 화면은 뜨지만, 그 코드는 "동작하는 코드"일 뿐 "운영에 올릴 수 있는 코드"는 아니다. 그 간극을 실제로 부딪힌 순서대로 정리했다.

구성

부분 내용
두 화면은 왜 갈렸나 1편에서 분리한 사례(처리 현황=SSE, 요약 대시보드=폴링)를 압축 복원
동작하는 코드는 30줄 가장 단순한 SseEmitter 구현과, 이 코드에 없는 것들
1. 부하 구독자 검사, dedup, 유휴 백오프, 권한별 직렬화 캐시
2. 격리 send는 블로킹이므로 전송을 전용 풀로 분리
3. 순서 전체 스냅샷 병렬 전송의 역전을 시퀀스 + CAS로 차단
4. 종료 completesend의 락 경합, 종료 전용 풀 분리
5. 세션 스트림은 세션을 못 살려 주기적 핑으로 유지
6. 재연결 백오프 + jitter + 탭 가시성으로 동시 폭주 방지
7. 정확성 dedup 최적화가 권한 회수 반영을 막는 충돌 해소

특징

  • 뒤의 절반이 앞의 절반이 만든 문제라는 흐름(전송 격리 → 순서 역전, dedup → 권한 회수 누락)이 글의 매듭
  • 사내 구현체 내용은 화면 이름·클래스·경로·필드를 익명화해 패턴 수준으로 재작성
  • 다이어그램 5종(구조 분리·Executor 격리·순서 역전·세션 유휴·최종 구조)을 light/dark 쌍으로 사전 렌더링
  • 용어 툴팁 6개 (sse-emitter, back-pressure, cas, broken-pipe, async-dispatch, idempotent)
  • 썸네일은 1편과 동일 이미지 사용

테스트

npx next build   ✓ 31/31 정적 페이지
npm test         ✓ 52 suites / 551 tests

수동 확인: 용어 6개 각 1회, 이미지 12개 전부 실제 파일과 일치, 그림 1~6 순차

시리즈 realtime-communication 2편. 1편에서 뗀 실무 사례(두 화면이
SSE/폴링으로 갈린 판단)를 앞에 두고, SSE를 운영에 올리며 부딪힌
일곱 문제를 순서대로 다룬다

- 부하: 구독자 검사, dedup, 유휴 백오프, 권한별 직렬화 캐시
- 격리: send는 블로킹이므로 전송을 전용 풀로 분리
- 순서: 전체 스냅샷 병렬 전송의 역전을 시퀀스 + CAS로 차단
- 종료: complete와 send의 락 경합, 종료 전용 풀 분리
- 세션: 스트림은 세션을 못 살려 주기적 핑으로 유지
- 재연결: 백오프 + jitter + 탭 가시성으로 동시 폭주 방지
- 정확성: dedup 최적화가 권한 회수 반영을 막는 충돌 해소

사내 구현체 내용은 화면 이름·클래스·경로·필드를 익명화해 패턴
수준으로 재작성. 다이어그램 5종을 light/dark 쌍으로 사전 렌더링.
썸네일은 1편과 동일한 이미지를 사용
@kmg733 kmg733 added documentation Improvements or additions to documentation blog 블로그 포스트 추가/수정 labels Jul 24, 2026
@kmg733 kmg733 self-assigned this Jul 24, 2026
@kmg733 kmg733 added documentation Improvements or additions to documentation blog 블로그 포스트 추가/수정 labels Jul 24, 2026
kmg733 added 3 commits July 28, 2026 18:05
figcaption은 저장소 전 글에서 평서체(~다)·명사구로 쓴다. 본문은
존댓말이어도 캡션은 평서체가 관례다. 그림 1만 존댓말이라 나머지
다섯 캡션 및 1편과 어긋나 평서체로 맞춤. SSE·폴링 두 화면을
가른 사례라는 내용은 유지
같은 화면을 1편은 '처리 파이프라인 화면', 2편은 '처리 현황 화면'
으로 불러 시리즈 내 명칭이 어긋났다. 1편 기준인 '처리 파이프라인
화면'으로 통일
화면을 SSE로 고른 이유만 있고 화면 자체가 어떤 것인지 설명이
얇았다. 여러 처리 작업이 레인별로 수집·분석·검출·저장 단계를
지나고 처리량만큼 점이 흐르는 실시간 흐름 화면임을 서술

클라이언트가 직전 스냅샷과의 차이로 점을 만든다는 구조를 함께
짚어 뒤의 전송 순서 역전(섹션 3) 문제로 자연스럽게 연결. 도메인은
익명화해 처리 작업의 일반 파이프라인으로 서술
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blog 블로그 포스트 추가/수정 documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant