
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
- 구름톤 챌린지
- annotation
- postgresql
- socket
- mdcfilter
- NeXTSTEP
- mysql
- spring session
- Synchronized
- transaction
- 카프카
- sql
- 분산 락
- 트랜잭션
- 넥스트스탭
- Java
- Kafka
- 비관적 락
- jvm 메모리 구조
- pessimistic lock
- 구름톤챌린지
- security webflux
- redis session
- nginx configuration
- 람다
- webflux security
- spring webflux
- nginx
- webflux spring security
- TDD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |