ioh's Development

  • 홈
  • 태그
  • 방명록

ZADD 1

ZADD vs ZADD NX 대기열에서 멱등성이 UX를 결정한다

플래그 하나가 사용자의 대기 순서를 바꾼다대기열 진입 API를 처음 구현했을 때, 나는 별 생각 없이 ZADD를 썼다. Redis Sorted Set에 사용자 ID를 멤버로, 현재 타임스탬프를 스코어로 넣는 단순한 구조였다.redisTemplate.opsForZSet().add("queue:waiting", userId, System.currentTimeMillis()); 동작은 했다. 대기열에 들어가고, 스코어(타임스탬프) 기준으로 정렬되고, ZPOPMIN으로 먼저 들어온 사용자부터 빠지는 구조가 완성됐다.그런데 테스트 중에 이상한 일이 발생했다. 대기열 순번이 50번이던 사용자가 브라우저를 새로고침한 뒤 150번으로 밀려나 있었다. "분명 50번이었는데" 하는 사용자의 당혹감은 서비스 신뢰도를 순간적..

운영 2026.04.03
이전
1
다음
더보기
프로필사진

ioh's Development

"코드는 나의 언어, 디버깅은 나의 모험!" 배움은 기록에서, 성장은 도전에서 시작됩니다. 이 블로그는 개발 여정을 기록하고, 성장의 발자취를 남기는 공간입니다. 삽질도 성공도 모두 소중한 경험으로, 개발의 미로를 탐험하며 얻은 보물들을 공유합니다. 다양한 관심사와 배운 것들, 그리고 주니어 개발자로서의 고민과 성장을 담아내는 블로그입니다.

  • 분류 전체보기 (253)
    • AX (5)
    • 아키텍처 (7)
    • AWS 및 클라우드 인프라 (0)
    • 운영 (38)
      • 웹 애플리케이션 서버 (Web Applicatio.. (1)
      • Kafka & MQ (19)
      • 로깅 및 모니터링 (0)
    • 프로그래밍 언어 (19)
      • Java (16)
      • Kotlin (3)
    • 알고리즘 & 자료구조 (86)
      • 자료구조 (Data Structures) (1)
      • 코딩테스트 준비 (40)
      • 스터디 (Algorithm Study) (36)
    • 백엔드 프레임워크 (19)
      • SpringBoot (3)
      • Spring Framework (2)
      • JPA & Mybatis (9)
    • 데이터베이스 (18)
      • RDBMS (관계형 데이터베이스) (1)
      • NoSQL (3)
      • Elasticsearch (3)
    • Network (10)
    • CICD 및 버전 관리 (2)
      • CICD (2)
      • 버전 관리 (0)
    • React (3)
    • 도서 (12)
      • 수학리부트 (2)
      • 알고리즘 (1)
      • 리액트 교과서 (5)
      • 디자인 패턴의 아름다움 (0)
    • 개발환경 (1)
      • Dev Setup (1)
      • IDE 및 개발 도구 (0)
      • 프로젝트 관리 도구 (0)
    • 오픈소스 기여 (1)
    • 자격증 (2)
      • 정보처리기사 (1)
    • 스터디 (9)
      • 루퍼스 (12)

Tag

리눅스마스터자격증, 프로그래머스, 루프팩 3기, til, 자료구조, Loopers, 항해, 대기열, 소프트웨어 아키텍처, 코딩테스트, 루프팩, 99일지, Redis, 루퍼스, Kafka, java, 개발자스터디, 가상 면접 사례로 배우는 대규모 시스템 설계 기초, 99클럽, 루퍼스 루프팩,

최근글과 인기글

  • 최근글
  • 인기글

공지사항

Calendar

«   2026/08   »
일 월 화 수 목 금 토
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Copyright © Daum Corp. All rights reserved.

  • My Github

티스토리툴바