

하루 N억 건의 알림 시스템 구축기 (1): 카카오뱅크는 어떻게 발송 플랫폼의 새로운 뼈대를 세웠나
카카오뱅크가 대규모 알림 발송기의 성능 병목과 복잡한 구조를 해결하기 위해 Service/Core Layer 분리 아키텍처를 도입했습니다. 개발자는 단순한 인터페이스만 구현하고, Lock-Free와 Work-Stealing 같은 최적화는 Core Layer에 숨겼습니다.


카카오뱅크가 대규모 알림 발송기의 성능 병목과 복잡한 구조를 해결하기 위해 Service/Core Layer 분리 아키텍처를 도입했습니다. 개발자는 단순한 인터페이스만 구현하고, Lock-Free와 Work-Stealing 같은 최적화는 Core Layer에 숨겼습니다.

Swift의 비동기 모델이 스레드에서 블록, 태스크로 어떻게 진화했는지 설명했습니다. `await`가 함수 분할과 실행 컨텍스트 전환을 만드는 과정을 바이너리 수준에서 다뤘습니다.

동시성 문제를 다루며 락과 데드락을 고민한 사례를 다뤘습니다. 데드락을 해결하려다 오히려 락을 줄이는 방향으로 접근을 바꿨습니다.


선착순 수강 신청의 정원 초과를 막기 위해 동시성 제어 방식을 비교했습니다. 조건부 원자적 UPDATE와 유니크 제약, 트랜잭션으로 정합성을 보장했습니다.


Java 25의 Scoped Value 설계 원칙과 API 사용 패턴을 정리했습니다. 실무 적용 한계와 전환 판단 기준까지 함께 다뤘습니다.


Java 25의 Scoped Value 등장 배경과 ThreadLocal의 구조적 한계를 설명했습니다. 가상 스레드 시대에 안전한 컨텍스트 공유 방식으로의 전환 필요성을 다뤘습니다.
쿠팡 파트너스
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


구조화된 동시성을 활용해 병렬 API 호출 코드를 리팩토링하는 과정을 다뤘습니다.\n기존 스레드 풀과 CompletableFuture를 정리하고 예외 처리와 테스트까지 확인했습니다.


게시판 프로젝트의 병렬 API 호출을 CompletableFuture에서 Java 25 구조화된 동시성으로 바꾸는 설계 과정을 다뤘습니다. 취소 전파 문제와 스레드 관리 한계를 테스트로 확인하고 개선 방향을 정리했습니다.


Java 25 프리뷰의 구조화된 동시성을 소개했습니다. 기존 비동기 처리의 한계를 StructuredTaskScope로 어떻게 보완하는지 살펴봤습니다.


Java 25의 핵심 변화와 주요 JEP 기능을 소개했습니다. Spring Boot 4와 Spring AI 2.0 환경에서 전환 필요성도 함께 살펴봤습니다.


대량 요청 환경의 병목을 DB 트랜잭션 관점에서 분석하고 개선한 사례입니다. 비관적 락을 낙관적 락과 재시도로 전환해 커넥션 효율과 안정성을 높였습니다.


React에서 전역 Context와 비동기 흐름이 얽히며 중복 API 요청과 레이스 컨디션이 발생했습니다. AbortController, runId, Promise.all로 요청 취소와 최신 응답 보장을 개선했습니다.


Airbridge는 Kafka 이벤트 처리에서 마이크로 배치 병목을 줄이기 위해 Differential 구조를 도입했습니다. 순서 보장과 중복 방지를 유지하면서 처리 속도를 10배 이상 높였습니다.

다이얼로그 수정 폼에서 useEffect 기반 수동 바인딩으로 발생한 상태 꼬임 문제를 정리했습니다. React Hook Form의 values로 선언적 동기화를 적용해 잔상과 레이스 컨디션을 줄였습니다.