Performance Highlights

실측 기반으로 병목을 분석하고, 수치로 개선을 검증했습니다.

TimescaleDB — 28× 개선

P95 7,247ms → 235ms
원인: 인덱스 + 하이퍼테이블 미적용
해결: 인덱스 → 하이퍼테이블 → 청크 튜닝

Report 보기

JPA Fetch — RPS 5배 차이

Lazy vs Fetch Join vs Projection 비교
핵심: N+1 + 객체 생성 수 + GC 영향 분석
결과: Fetch Join + preview 구조 선택

Report 보기

JFR/JMC — GC 병목 추적

Hot Path 개선으로 GC 개선
JWT 중복 검증 제거 → GC 부담 감소
2-step 구조 PoC → GC 증가로 미채택

Report 보기

WebSocket — 실시간 안정성 개선

0.38% → 99.97% ≤200ms
동시성 문제 해결 + Dirty Flag 구조 적용
(STOMP vs RAW 비교 기반 설계)

Report 보기

WebSocket 수평 확장 PoC

WebSocket 안정성 개선 이후, 단일 서버의 구조적 한계를
성능 → 분산 → 정합성 → 복구 순서로 확장 설계·검증했습니다.

PoC 1 — 샤딩

fanout 부하 50% 분산
159K → 79K + 79K
Gateway + 슬롯 기반 샤딩

PoC 1

PoC 2 — Fallback

충돌 감지 및 자동 병합
편집 상태 유실 없이 장애 복구
Redis 기반 상태 유지 + Gateway fallback

PoC 2

PoC 3 — Failback

이벤트 유실 없이 서버 상태를 복구하고 전환
→ Kafka replay + 상태 기반 lifecycle 제어

PoC 3

성능, 확장성, 운영을 중심으로 설계한 프로젝트입니다.

Trader Platform

25~30M+ 시계열 데이터 처리 TimescaleDB + k6 + Grafana

Project

SIC Club Portal

팀 리딩 & CI/CD 구축 GitHub Actions + JaCoCo

Project