풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson어노테이션 기반으로 분산락을 사용하는 방법에 대해 소개합니다.helloworld.kurly.com 1. RMS(Receiving Management System - 입고관리 시스템) 의 동시성 문제카프카로 동시에 들어오는 중복된 발주를 수신하는 경우검수/검품 이슈 등록 시 더블 클릭, 네트워크 이슈로 인해 중복된 요청이 동시에 들어오는 경우이동 출고시 여러 작업자가 CTA를 동시에 클릭하여 잘못된 재고 트랜잭션이 생성되는 경우 2. Redisson library 를 선정한 이유(1) Redisson Library 의 장점Pub/Sub 방식을 이용해 락이 해제될 경우 락을 subscribe 하여 락 획득을 시도하여 Redis ..
spring AOP

이전에 작성했던 Spring AOP 블로그 글 옮긴 내용 1. AOP ?? Spring AOP는 스프링에서 지원하는 AOP(Aspect Oriented Programming)을 말한다. Aspect는 부가 기능을 의미한다. 부가 기능은 비즈니스 로직를 담당하지는 않지만 애플리케이션의 유지보수와 안정성을 위해서는 필요한 기능이다. 대표적인 예시로 로깅과 트랜잭션이다. 만약 AOP를 사용하지 않으면 비즈니스 로직 사이에 부가 기능에 관련된 코드를 추가해야 한다. 비즈니스 로직 사이에 추가된 부가 기능 코드들을 비즈니스 로직의 가독성을 떨어뜨리고 같은 부가 기능에 대한 코드 중복이 발생해 유지보수가 어렵다. AOP을 통해 비즈니스 로직과 부가 기능을 분리하고 코드를 한 곳에서 관리해 로직의 응집도와 유지보수..