"Redis 터졌다" - 13년 묵은 시한폭탄, 우리 서버에도 있었다
CVSS 10.0 Redis 취약점(CVE-2025-49844 RediShell)을 발견하고, 긴급 패치 적용과 다층 보안 강화 조치를 수행한 과정을 정리한다.
검색 결과가 없습니다
제목, 태그, 카테고리로 검색
CVSS 10.0 Redis 취약점(CVE-2025-49844 RediShell)을 발견하고, 긴급 패치 적용과 다층 보안 강화 조치를 수행한 과정을 정리한다.
SimpleBroker의 수평 확장 한계를 Redis 세션 관리로 해결하고, LocalDateTime→Instant 마이그레이션, 커서 기반 페이지네이션, SockJS Fallback 등 트러블슈팅을 정리한다.
Redis Pub/Sub의 Fire-and-Forget 특성으로 WebSocket 재연결 시 메시지가 유실되는 문제를 MongoDB 기반 커서 페이지네이션으로 해결한 과정을 정리한다.
Spring WebSocket STOMP의 Inbound Thread가 I/O 대기로 블로킹되는 문제를 분석하고, Kotlin Coroutine으로 스레드를 즉시 반환하도록 개선한 과정을 정리한다.
Spring MVC에서 Coroutine의 withContext로 스레드가 전환되면서 Hibernate Session과 SecurityContext가 유실되는 문제를 분석하고, runBlocking + Fetch Join으로 해결한 과정을 정리한다.
채팅 메시지 전송 시 매번 MySQL을 조회하던 권한 체크를 Redis 캐싱으로 최적화하고, lastMessage 업데이트를 비동기로 처리하여 응답 시간을 2배 개선한 과정을 정리한다.
N+1 Query로 1.3초 걸리던 채팅방 목록 조회를 Fetch Join + 배치 조회 + Redis 캐싱(MGET)으로 85ms까지 최적화한 과정을 정리한다.
분산 환경에서 채팅 메시지 순서를 보장하기 위해 서버 타임스탬프 + 클라이언트 정렬 + MongoDB 정렬 조회 전략을 설계한 과정을 정리한다.
C2C 공유 플랫폼 빌려조잉을 6주간 개발하며 채팅 시스템 설계, 팀원 이탈 대응, 그리고 삼성 우수상까지의 여정을 정리했습니다.
채팅 메시지 브로커로 Kafka, RabbitMQ, Redis Stream, NATS를 비교하고, Redis Pub/Sub + MongoDB 조합을 선택한 이유를 정리한다.
채팅 시스템에서 MySQL(관계 데이터), MongoDB(메시지 저장), Redis(실시간 전달+캐싱) 세 DB를 함께 사용한 Polyglot Persistence 설계를 정리한다.
JWT 저장 방식의 역사(LocalStorage → HttpOnly Cookie)를 분석하고, SameSite 쿠키 정책으로 로컬 개발이 막힌 문제를 Vite 프록시로 해결한 과정을 정리한다.
Kotlin + Java + Lombok 환경에서 발생하는 빌드 순서 문제와 Enum 호환성 이슈를 분석하고, kotlin-plugin-lombok + io.freefair.lombok + delombok 조합으로 해결한 과정을 정리한다.