레이스 컨디션

Database

[Database] 비관적 락(Passimistic Lock)과 낙관적 락(Optimistic Lock)

동시성 제어의 중요성데이터베이스나 분산 시스템에서는 여러 트랜잭션이 동시에 하나의 데이터에 접근할 때, 데이터의 일관성과 무결성을 보장하기 위해 동시성 제어가 필수적입니다.올바른 동시성 제어가 이루어지지 않으면 더티 리드(Dirty Read), 레이스 컨디션(Race Condition)과 같은 동시성 관련 문제가 발생할 수 있습니다.낙관적 락과 비관적 락낙관적 락과 비관적 락은 트랜잭션 제어를 통한 동시성 제어의 대표적인 락 기법으로, 데이터 무결성과 일관성을 유지하기 위해 사용됩니다.이 글에서는 낙관적과 비관적 락에 대한 정의와 동작원리 그리고 구현 방법에 대해 정리해 보겠습니다.낙관적 락 (Optimistic Lock)정의와 동작 원리낙관적 락은 동시성 제어 방식 중 하나로, 데이터의 충돌 가능성이 ..

Redis

[Redis] Redis 분산락(Distributed Lock)을 이용한 재고관리 구현 - 1

프로젝트 개요이번 프로젝트에서는 분산 시스템 환경에서 발생하는 다양한 문제 상황중, 서로 다른 요청이 하나의 데이터에 몰리게 되어 발생하는 레이스 컨디션(Race Condition) 문제를 분산 락을 이용해 해결하는 미니 프로젝트를 진행하고 이를 정리했습니다. 코드들을 모두 게시글에 작성할 수 없어, 일부 설정은 다른 게시글에 정리된 내용을 링크하였습니다.프로젝트 전체 코드는 아래 github을 통해 확인할 수 있습니다.https://github.com/kwj2435/spring-redis-stock-manager기술 스택Spring Boot 3.4.1Spring Data JPAJava 17Redis 7.0KafkaH2 Database 구현 요구 사항주요 기능재고 등록: 제품과 초기 재고량을 Redis에..

turtleDev
'레이스 컨디션' 태그의 글 목록