컬
컬리
May 17, 20231회
풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

간단 소개
컬리 입고 서비스팀의 Redisson 기반 분산락 도입 및 AOP를 활용한 어노테이션 기반 분산락 컴포넌트 구현 사례와 효과를 소개합니다.
AI Summary
- Redisson 라이브러리 선정 및 분산락 도입 배경
- 컬리 입고 서비스팀은 RMS 프로젝트에서 발생하는 다양한 동시성 문제를 해결하기 위해 분산락을 도입함.
- Redis의 Redisson 라이브러리를 선택한 이유는 기존 기술 스택 활용 가능성, 별도 인프라 구축 불필요, 그리고 Lock interface 지원 및 Pub/Sub 방식을 통한 효율적인 락 획득 방식 때문임.
- 어노테이션 기반 분산락 컴포넌트 구현 및 활용
- AOP를 활용하여 @DistributedLock 어노테이션 기반의 분산락 컴포넌트를 개발, 비즈니스 로직과의 분리, 커스터마이징 가능한 설정, 락 이름의 유연한 처리를 가능하게 함.
- Spring Expression Language를 사용하여 락 이름에 동적인 값을 적용하고, Propagation.REQUIRES_NEW 옵션을 통해 트랜잭션 커밋 후 락 해제를 보장하여 데이터 정합성을 유지함.
- 테스트 시나리오 검증 및 효과
- 쿠폰 차감 및 중복 발주 데이터 수신 시나리오를 통해 분산락 적용 전후의 동작을 테스트 코드로 검증함.
- 분산락 적용 시 데이터 정합성이 보장되며, 동시성 문제로 인한 데이터 불일치 문제를 해결할 수 있음을 확인함.
Next Feeds

Elasticsearch 3TB의 인덱스를 reindex 하는 방법
Elasticsearch 대용량 인덱스 reindex 시 속도 향상 및 안정성 확보를 위한 설정 팁과 트러블슈팅 경험 공유.
Elasticsearchreindex인덱싱샤딩쓰로틀링
2023. 5. 16.
다나와

Luft 성능 리포트 2023.1
Luft 성능 개선 필요성과 도전, 향후 로드맵을 제시하고, 데이터 분산, 스토리지 개선, 파이프라인 최적화 등을 통해 성능을 향상시키고 있습니다.
LuftOLAP성능 개선데이터 분산EBS
2023. 5. 5.
AB180

요새 Github 릴리스 노트를 누가 수동으로 만드나요!?
GitHub 워크플로우를 활용하여 iOS 앱 릴리스 노트 생성 과정을 자동화하고 개발 효율성을 향상시키는 방법을 소개합니다.
GitHub릴리스 노트자동화워크플로우iOS
2023. 5. 3.
뤼이드

I am sick of making Github release notes!
Github Workflows를 사용하여 Github release notes 생성 과정을 자동화하고 개발 효율성을 향상시키는 방법에 대한 설명.
Githubrelease notes자동화Github Workflowsdevops
2023. 5. 3.
뤼이드

뷰티컬리에서 <나의 컬리 스타일>이 갖는 의미
뷰티컬리의 '나의 컬리 스타일'은 개인 맞춤형 상품 추천을 위한 초석이며, 사용자 경험 개선과 카테고리 확장을 통해 발전할 것이다.
뷰티컬리나의 컬리 스타일개인화사용자 경험프로필
2023. 5. 1.
컬리

이벤트 로그 체계 구축 여정
기존 이벤트 로그 체계의 문제점을 개선하고, 데이터 분석 효율성, 문서 접근성, 디버깅 효율성을 향상시킨 이벤트 로그 체계 구축 여정을 공유합니다.
이벤트 로그데이터 분석로그 설계FirebaseBigQuery
2023. 4. 28.
스포카