-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
문제 설명
동아리 구독/구독 취소 기능에서 구독 상태를 확인한 후 저장/삭제하는 패턴이 동시성 경쟁 상태(race condition)를 발생시킬 수 있습니다.
발생 위치
- 파일:
src/main/java/com/kustacks/kuring/club/application/service/ClubCommandService.java - 메서드:
addSubscription()및removeSubscription() - 라인: 42-47, 57-61
현재 문제점
existsSubscription() 체크와 save()/delete() 작업이 원자적으로 보장되지 않아 다음과 같은 문제가 발생할 수 있습니다:
- 구독 추가 시: 동시에 여러 요청이 들어올 경우, 모두 존재하지 않는다고 판단하여 중복 저장이 시도될 수 있습니다.
- 구독 취소 시: 동시에 여러 삭제 요청이 들어올 경우, 모두 존재한다고 판단하여 의도와 다른 결과가 발생할 수 있습니다.
개선 방향 고려사항
낙관적 처리(optimistic) 방식을 포함한 다양한 동시성 제어 방안에 대한 검토가 필요합니다.
참고
- PR: version 2.17.1 #349
- 코멘트: version 2.17.1 #349 (comment)
- 보고자: @rlagkswn00
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels