
synchronized vs Pessimistic Lock vs Distributed Lock DB의 무결성을 보장하기 위해서는 다양한 방법이 있다. 물론 synchronized는 적합한 방법은 아니지만 왜 적합하지 않은지에 대해 살펴보고, 그 뒤 비관적 락(Pessimistic Lock)과 분산락(Distributed Lock)을 통해 성능 비교를 해보자. 재고 차감 로직을 통한 DB 부정합 문제 살펴보기 위 ProductService는 주문 관련 비즈니스 로직 중 하나로 "상품 조회 -> 상품의 재고 차감 가능 여부 확인 -> 재고 차감"의 순서로 이루어지는 로직이다. 해당 비즈니스 로직을 통해서 어떻게 DB 부정합 문제가 발생하게 되는지 테스트 코드를 작성해보자. 위 테스트 코드는 한 번에 100개..

Thread 우리가 JVM을 실행시키면 자바 프로세스(Java Process)가 시작한다. 이 프로세스에는 여러 개의 스레드가 수행되는데 반대로 여러 프로세스가 공유하는 하나의 스레드가 수행되는 일은 절대 없다. 어떤 프로세스든 간에 스레드가 하나 이상 수행된다. 프로세스(Process): 운영체제로부터 시스템 자원을 할당받아 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 스레드(Thread): 프로세스가 할당받은 자원을 이용하는 실행의 단위 이 때, Java Thread는 일반 스레드와 거의 차이가 없으며, JVM이 운영체제의 역할을 한다. 즉, Java Thread는 JVM에 의해 스케되는 실행 단위 코드 블록이라고 할 수 있고, 스레드 스케줄링 및 스레드와 관련된 많은 정보들을 ..
- Total
- Today
- Yesterday
- 웹플럭스 리액터
- nginx
- jvm 메모리 구조
- Kafka
- TDD
- Synchronized
- 카프카
- NeXTSTEP
- transaction
- 리액티브 스트림즈
- spring session
- mdcfilter
- annotation
- 비관적 락
- mono flux
- 구름톤챌린지
- 구름톤 챌린지
- postgresql
- mysql
- socket
- 트랜잭션
- spring webflux
- 넥스트스탭
- nginx configuration
- redis session
- pessimistic lock
- sql
- Java
- 분산 락
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |