[캐시 & 동시성 & Lock] 선착순 티켓 시스템 고도화 - 2
·
Spring/동시성 & Lock
2024.11.19 - [Spring/동시성 & Lock] - [캐시 & 동시성 & Lock] 선착순 티켓 시스템 고도화 [캐시 & 동시성 & Lock] 선착순 티켓 시스템 고도화 - 12024.09.27 - [Spring/동시성 & Lock] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 3 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 32024.09.25 - [Spring] - [Spring] synchronizedhdbstn3055.tistory.com 이전 포스팅에서 우리는 `Distributed Lock`이나 `DB Lock`을 사용하지 않고 `Redis`를 도입하여 `Set`, `String` 같은 자료구조의 ..
[캐시 & 동시성 & Lock] 선착순 티켓 시스템 고도화 - 1
·
Spring/동시성 & Lock
2024.09.27 - [Spring/동시성 & Lock] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 3 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 32024.09.25 - [Spring] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 2 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 22024.09.22 - [Spring] - [Spring] synchronized 키워드를 활hdbstn3055.tistory.com 우리는 위 포스팅에서 `PESSIMISTIC_WRITE`의 `Database Lock`를 활용해 동시성 문제를 해결했다..
[Spring Data] Redis Lock을 적용해보자 - 2
·
Spring/동시성 & Lock
2024.10.16 - [Spring] - [Spring Data] Redis Lock을 적용해보자 [Spring Data] Redis Lock을 적용해보자`백엔드/서버` 개발자라면 반드시 `동시성` 문제를 만나게 된다. 특히, 요즘 `K8s` 환경을 자주 사용하는데 아무리 애플리케이션에서 `동시성` 발생 대비를 해도다른 `Pod`에서 같은 `DB`에 접근하면hdbstn3055.tistory.com  우리는 이전 포스팅에서 `Redis`를 활용한 `Distributed Lock`을 적용하고 관련된 문제를 해결했다. 해결 방안1: 앞에 프록시 클래스를 두는 것해결 방안2: `@TransactionalEventListener`를 사용하는 것하지만, `해결 방안1`과 `해결 방안2`는 `Distributed ..
[Spring Data] Redis Lock을 적용해보자 - 1
·
Spring/동시성 & Lock
`백엔드/서버` 개발자라면 반드시 `동시성` 문제를 만나게 된다. 특히, 요즘 `K8s` 환경을 자주 사용하는데 아무리 애플리케이션에서 `동시성` 발생 대비를 해도다른 `Pod`에서 같은 `DB`에 접근하면 동시성 문제를 처리하는 것이 어렵다.  위의 그림과 같은 경우 `DB` 또는 `Redis`에서 제공하는 `Lock`을 활용하여 데이터의 동시성 접근을 제어해야 한다. `DataBase Lock`을 이용할 경우 추가적인 인프라 구성요소 없이 `동시성`을 해결할 수 있다는 장점이 있으나`Lock` 획득을 위해 `Waiting`되는 `DataBase Connection` 증가로 인해 부하가 발생할 수 있다. `Redis`를 이용하여 `Distributed Lock`을 사용할 경우 `DataBase Conn..
[Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 3
·
Spring/동시성 & Lock
2024.09.25 - [Spring] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 2 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 22024.09.22 - [Spring] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 1 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 1동시성 처리우리가 웹 서비스를 개발하다보면hdbstn3055.tistory.com 이전 포스팅에서 동시성 문제를 `PESSIMISTIC_WRITE`를 사용해서 해결하는 실습까지 진행했다. 그렇다면 Spring JPA에서 사용할 수 있는 Lock 기법에는 어떤 것이 있으며,..
[Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 2
·
Spring/동시성 & Lock
2024.09.22 - [Spring] - [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 1 [Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 1동시성 처리우리가 웹 서비스를 개발하다보면 수많은 종류의 동시성 문제를 만날 수 있다.주문을 도메인으로 갖는 서비스에서 상품 재고 동시성 처리선착순 쿠폰에 관한 동시성 처리한정판 등hdbstn3055.tistory.com  우리는 이전 포스팅에서 아래 내용까지 살펴보았다. 분산 환경에서의 synchronized 한계 synchronized 키워드는 단일 인스턴스 상에서 멀티 쓰레드가 Critical Section에 접근하는 경우 동시성 제어가 가능하다.하지만, 우리는 SPOF(단일 장애점..