티스토리 뷰
재고시스템으로 알아보는 동시성이슈 해결방법 인강을 듣고 배운 내용을 필요할 때 찾아보려고 정리한 포스팅입니다.
요약
재고 감소하는 비즈니스 로직을 가진 간단한 기능을 만든 뒤, 해당 기능을 동시에 호출하는 테스트 코드를 작성하였습니다.
문제점을 살펴본 후 그에 대한 해결책을 몇 가지 소개해주는 강의였습니다.
Synchronized 이용하여 동시성 해결
상용에서는 보통 서버 2대 이상을 사용하기 때문에 거의 사용되지 않는다고 합니다.
또한 @Transcational 어노테이션을 사용하지 않기 때문에 롤백에 대한 보장도 해주지 않아서 사용되지 않을 것 같습니다.
Lock 이용하여 동시성 해결
다음 세 가지 Lock에 대해 설명해주고, 예시 코드도 보여줍니다.
- Pessimistic(비관적) Lock
- Optimistic(낙관적) Lock
- Named Lock
Redis 이용하여 동시성 해결
마지막으로는 분산 락에서 사용하는 Redis 라이브러리를 소개해줍니다.
Lettuce와 Redisson을 소개해주는데 각각의 장단점까지 소개해줍니다.
결론
1시간 가량의 짧은 강의라서 가볍게 듣기 편합니다.
동시성에 대한 문제에 감이 안 잡힐 때 보면 좋은 강의라고 생각합니다.
'회고' 카테고리의 다른 글
[잽싸게 독서] 50대 개발자의 실리콘밸리 회고록 책을 읽고 나서 (1) | 2024.07.27 |
---|---|
코루틴관련 인강을 듣고.. (0) | 2024.01.12 |
[잽싸게 독서] 스프링 부트 3 백엔드 개발자 되기 자바편 레벨 2,3 (0) | 2023.05.19 |
[잽싸게 독서] 스프링 부트 3 백엔드 개발자 되기 자바편 레벨 1 (0) | 2023.05.18 |
[잽싸게 독서] 도파민네이션 책을 읽고 나서 (0) | 2023.05.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디자인 패턴
- 알고리즘
- Java
- 이팩티브 자바
- 클린 아키텍처
- Effective Java
- 객체지향
- 백준
- Spring
- Algorithm
- 클린 코드
- 코테
- kkoon9
- 디자인패턴
- Kotlin
- node.js
- 프로그래머스
- 정규표현식
- JPA
- 테라폼
- C++
- Olympiad
- programmers
- BAEKJOON
- AWS
- 이펙티브 자바
- Spring Boot
- BOJ
- MSA
- kotest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함