본문 바로가기

분산시스템2

"따닥!" 두 번 결제되는 버그 막기: API 멱등성(Idempotency) 완벽 가이드와 Redis 분산 제어 안녕하세요, 여러분의 든든한 IT 길잡이 데브프리입니다. 스마트폰으로 쇼핑몰에서 결제를 하거나, 커뮤니티에 게시글을 등록할 때 네트워크가 살짝 느려져 화면이 멈춘 적 있으신가요? 답답한 마음에 '결제하기' 버튼을 "따닥!" 하고 두세 번 연속으로 누르는 사용자는 실무에서 생각보다 정말 많습니다. 프론트엔드에서 자바스크립트로 버튼을 비활성화(Disable) 처리해두었다고요? 아쉽게도 그것만으로는 부족합니다. 악의적인 매크로 봇이나, 모바일 네트워크 불안정으로 인해 재전송(Retry)된 패킷은 언제든 백엔드 서버로 동시에 밀고 들어올 수 있습니다. 아무런 방어 로직이 없는 서버는 결국 고객의 신용카드에서 똑같은 금액을 두 번 결제해 버리는 최악의 사고를 터뜨리고 맙니다. 오늘은 이렇게 중복으로 들어오는 트래.. 2026. 8. 11.
무한 리밸런싱의 늪! 카프카(Kafka) 컨슈머 에러 원인과 DLQ 구축 가이드 안녕하세요, 여러분의 든든한 IT 길잡이 데브프리입니다. 2026년 현재, 카프카(Apache Kafka)는 주키퍼(ZooKeeper)를 완전히 걷어내고 순수 KRaft 모드로 구동되는 4.3 버전까지 진화했습니다. 백엔드 개발자들의 영원한 단짝인 Spring Kafka 역시 4.1 버전으로 올라오며 Spring Framework 7과 완벽하게 통합되었고, 새로운 큐잉 방식인 'Share Consumer(KIP-932)'까지 도입되며 눈부신 발전을 이뤘죠. 하지만 프레임워크가 아무리 발전해도, 실무에서 카프카를 다루는 백엔드 개발자들이 100% 확률로 겪게 되는 공포스러운 에러가 하나 있습니다. 바로 '컨슈머 무한 리밸런싱(Rebalance Storm)'과 '메시지 중복 처리' 문제입니다. 오늘은 실무에.. 2026. 7. 31.