Skip to content

[PRODUCT-121] [Refactor] Member 수정 로직에서 동시성 문제 해결 #46

@leegwichan

Description

@leegwichan

🏷️ 상위 작업 (Ticket Number)

PRODUCT-119

🚀 구현 내용

문제 상황

  • memberId가 다르면서 phoneNumber나 nickname이 같은 변경 요청이 있을 경우, DB에 동일한 유저가 생길 가능성이 있음
@Transactional
public MemberResponse update(long memberId, MemberUpdateRequest request) {
    Member member = memberRepository.getById(memberId);
    validatePhoneNumberNotDuplicate(member, request.phoneNumber());
    validateNicknameNotDuplicate(member, request.nickname());

    Member memberUpdater = request.toMemberUpdater();
    member.update(memberUpdater);
    return new MemberResponse(member);
}

개선 방향

  • update 요청에 대한 트랜잭션 격리수준 or 락을 통한 개선

📅 마감일

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions