비가 오면 사장님이 먼저 압니다: SSE로 만든 실시간 기상악화 알림
기상악화 상태를 파트너에게 즉시 알리기 위해 SSE 기반 실시간 알림 구조를 설계했습니다. Kafka fan-out과 연결·메모리·재연결 운영 전략을 함께 다뤘습니다.

기상악화 상태를 파트너에게 즉시 알리기 위해 SSE 기반 실시간 알림 구조를 설계했습니다. Kafka fan-out과 연결·메모리·재연결 운영 전략을 함께 다뤘습니다.
자동승인 대기 지연을 줄이기 위해 아웃박스 큐를 걷어내고 단일 폴링 구조로 바꿨습니다. 후보 조회와 재시도를 분리해 외부 부하는 유지한 채 처리 시작 시간을 10초 이내로 개선했습니다.
우아한형제들 기술블로그 글을 엮은 《요즘 우아한 백엔드 개발》 출간 소식입니다. 아키텍처, 트래픽, 데이터, AI 활용 사례를 현장 경험 중심으로 담았습니다.
장시간 엑셀 생성 작업에서 Kafka Consumer 타임아웃으로 중복 발송이 발생했습니다. RDB 기반 Task Queue와 Heartbeat로 재시도와 장애 복구를 안정화했습니다.
`@CacheEvict(allEntries = true)`가 내부적으로 어떻게 동작하는지 Spring Cache와 Redis 구현 레벨에서 살펴보았습니다. 기본 `KEYS` 전략이 운영 환경에서 위험할 수 있어 대안도 함께 정리했습니다.
코드 리뷰 봇으로 개인별 미처리 MR을 알려주고 리뷰어를 자동 배정해 리뷰 지연을 줄였습니다. 이후 휴가자 알림, 스크럼 문서, 온콜 관리까지 확장하며 팀 문화를 개선했습니다.
MQTT 기반 알림의 제약을 해결하기 위해 AWS IoT와 SSE를 도입했습니다. 정형화된 메시지, 재전송, 수신 확인으로 실시간성과 안정성을 높였습니다.
Jira Automation으로 반복적인 티켓 관리와 필드 입력을 줄이는 방법을 소개했습니다. 트리거, 조건, Smart Value, 웹 요청을 활용한 Slack 알림 사례도 다뤘습니다.
Redis 신규 커넥션 증가 현상을 추적해 파이프라이닝과 커넥션 풀, Elasticache timeout의 영향을 확인했습니다. FIFO 전환과 IDLE 커넥션 정리 방법도 함께 정리했습니다.
Spring Cache와 Redis에서 record 캐싱 시 발생하는 역직렬화 오류의 원인과 해결책을 정리했습니다. Jackson의 타입 정보 처리와 GenericJackson2JsonRedisSerializer의 동작 방식까지 함께 설명했습니다.
Java 기반 레거시 포인트 시스템을 Kotlin으로 전환한 과정과 기준을 정리했습니다. 테스트 강화와 점진적 배포로 안정성과 코드 품질을 함께 높였습니다.
실거리 기반 배차 정확도를 높이기 위해 OSRM, Kafka, Redis를 활용한 저장·처리 구조를 설계했습니다. 지역 단위 이벤트 순서 보장과 캐시 재사용으로 대량 경로 계산 부하를 줄였습니다.
B마트 OMS를 중심으로 예약배달 출고 분산과 동적 출고예정시각 산정을 소개했습니다. 현장 부하와 라이더 대기시간을 함께 줄이기 위한 설계와 성과를 정리했습니다.
실시간 마케팅을 위해 SNS-Lambda-Kinesis-Flink-DB 파이프라인 PoC를 진행했습니다. 12k RPS 목표를 기준으로 병목을 찾아 SQS 추가와 Flink 최적화로 개선했습니다.
IllegalArgumentException을 무조건 400으로 매핑하면 서버 오류를 클라이언트 문제로 오인할 수 있습니다. 명백한 클라이언트 오류는 커스텀 예외로 분리해 4xx와 5xx를 구분하는 것이 좋습니다.
DataHub를 그대로 노출하지 않고 OpenSearch와 DB를 직접 활용해 데이터카탈로그에 맞는 검색·리니지·BI 통합 기능을 구현했습니다. 또한 버전업과 수집 성능 문제를 개선해 운영 적합성을 높였습니다.

Globalsign 인증서 갱신 후 RADIUS 인증 실패가 발생한 원인과 해결 과정을 정리했습니다. 폐쇄망 특성상 교차 체인 적용이 핵심이었고, 서버 인증서에 Cross Root를 추가하는 방향으로 대응했습니다.

카프카 컨슈머 처리량을 외부 DB 부하에 맞춰 동적으로 조절하는 방법을 다뤘습니다. Thread.sleep()의 한계와 pause()/resume()을 활용한 리밸런싱 회피 방식을 설명했습니다.
