Transactional2 [Spring & DB] 기존 Named Lock 방식 개선하기 들어가며이전에 Named-Lock 을 통해 동시성을 제어하는 방식과 분산락을 이용하여 제어하는 방식을 비교하며, Named-Lock은 경쟁 상태에 들어가는 요청이 늘어나는 경우에, ConnectionPool 이 고갈되는 현상이 생길 가능성이 존재한다며 단점으로 언급하였었습니다.그 이유로는 이전 글에서 언급하였던 것처럼 락을 획득하고 제어하는 트랜잭션 내에서 또 다른 트랜잭션이 필요하였기 때문입니다. 이러한 생각과 함께 또 다른 생각은 그렇다면 락을 획득하고 제어하는 부분에서는 트랜잭션을 걸지 않고 처리하면 되는 것이 아닐까? 라는 생각이 들었습니다. 하지만 Named Lock 을 해제하기 위해선 획득한 세션과 동일한 세션이 필요하며, 이를 유지하는 방법으로 트랜잭션을 묶어 동일한 커넥션을 가져오도록 강제.. 2025. 7. 6. [팀 프로젝트] 유니크 제약 조건과 동시성 문제 들어가며이전에 작성한 글(https://kongdevlog.tistory.com/16)에서 유니크 키 제약 조건에 대한 이해가 부족하여 오버 엔지니어링(+ 잘못된 작업)을 하게되었습니다.해당 과정에 대한 원인을 분석하고 개념을 정리하기 위해 글을 작성합니다.이전 구현@Transactional public MemberLoginServiceDto login(String phoneNumber) { Member member = createOrFindMemberByPhoneNumber(phoneNumber); if (member.isBanned()) { throw new BannedMemberException(); } ... .. 2025. 2. 1. 이전 1 다음