ioh's Development

  • 홈
  • 태그
  • 방명록

2026/03/06 1

락을 잘 골랐는데 왜 더 위험해졌을까

락을 잘 골랐는데 왜 더 위험해졌을까 — 주문 트랜잭션의 락 3개를 1개로 줄인 이야기TL;DR이커머스 주문 흐름에 동시성 제어를 붙이면서, 도메인마다 "맞는 락"을 골랐더니 하나의 트랜잭션에 비관적 락 2개 + 낙관적 락 1개가 공존하게 됐다. 데드락 위험, 락 보유 시간 증가, 팀원이 알아야 할 규칙 증가. 결국 "락을 잘 고르는 것"보다 "공유 자원 자체를 줄이는 것"이 더 근본적인 해법이었고, 원자적 UPDATE로 트랜잭션 내 락을 1개로 줄였다.동시성 문제가 뭔지부터 고민을 시작했다.과제를 받고 처음 든 생각은 단순했다. "공유 자원이면 동시성 문제가 생긴다." 재고, 포인트, 쿠폰, 좋아요, 여러 사용자가 건드리는 데이터를 쭉 나열했다.근데 이 정의가 틀렸다. 상품 상세를 100명이 동시에 조..

스터디/루퍼스 2026.03.06
이전
1
다음
더보기
프로필사진

ioh's Development

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

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

Tag

리눅스마스터자격증, 99클럽, kotlin, til, 자료구조, BFS, loop-pack, Queue, Kafka, 알고리즘, 99일지, 코딩테스트, 프로그래머스, 항해, 소프트웨어 아키텍처, 정보처리기사, 개발자스터디, Loopers, heap, java,

최근글과 인기글

  • 최근글
  • 인기글

공지사항

Calendar

«   2026/03   »
일 월 화 수 목 금 토
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 © AXZ Corp. All rights reserved.

  • My Github

티스토리툴바