logo

조회수 카운팅 동시성 이슈 해결과 비동기 처리

language-logoRedis

• 조회수 갱신 시 동시성 문제를 해결하기 위해 개별 ReentrantLock과 AtomicInteger를 사용하여 테스트를 진행했으며, 단일 Lock보다 성능이 우수하고 동시성 문제도 해결되었다.
• 테스트 결과, 개별 ReentrantLock과 AtomicInteger를 활용한 방법이 성능과 동시성 문제 해결 측면에서 효과적임을 확인하였다.
• 낙관적 락의 재시도 로직에 multiplier와 random 옵션을 적용하여 재시도 횟수를 줄였으며, Map에서 가져온 ReentrantLock은 사용 후 제거하도록 구현하여 로직에 영향을 주지 않도록 했다.
• 조회수 갱신 로직을 비동기로 처리하기 위해 @Async 어노테이션과 @EventListener를 활용하여 스레드풀을 설정하고, corePoolSize를 1로 설정하여 성능을 최적화했다.

thumbnail
북마크
공유하기
신고하기
10분 분량
조회수 31
profile-imageohksj77
4일 전
Copyright © 2025. Codenary All Rights Reserved.