Skip to content

[공통] 팀원 모집 지원·승인 MySQL 동시성 회귀 테스트 보강 #2380

Description

@taejinn

🔍 개요

  • 상위 기능 이슈: [공통] 팀원 모집 기능 구현 #2335
  • 기준: origin/develop@2bbb2a23ca04fc7ece8a2986f12e88f12a4ab92e
  • 심각도: P2 검증 공백 (회귀 시 P1 서비스 데이터 오류)
  • 분류: 서버 내부 동시성 / 클라이언트 계약 변경 없음

ROLE_BASED HTTP 여정과 실제 MySQL 동시성 검증을 한 PR에 넣으면 리뷰가 어려우므로, 이 이슈는 동시성 불변식에만 한정합니다. ROLE_BASED HTTP 여정은 #2402/#2406으로 분리합니다.

문제 시나리오

  1. 같은 사용자가 거의 동시에 두 번 지원합니다.
  2. 또는 남은 한 자리에 대해 팀장이 두 지원자를 동시에 승인합니다.
  3. 락이나 트랜잭션 회귀가 생기면 중복 지원 또는 정원 초과가 발생할 수 있습니다.

기대 동작

  • 동시 중복 지원은 한 건만 성공하고 다른 한 건은 TEAM_RECRUITMENT_APPLICATION_DUPLICATE로 끝납니다.
  • 마지막 자리 동시 승인은 한 명만 ACCEPTED, 다른 한 명은 REJECTED가 됩니다.
  • TEAM 멤버, 알림, outbox가 성공한 결과와 정확히 연결되고 중복되지 않습니다.

📱 클라이언트 영향

요청·응답 형식은 바뀌지 않습니다. 실제 서비스에서 중복 탭이나 동시 승인 때문에 화면 상태와 서버 데이터가 어긋나는 것을 막는 서버 회귀 테스트입니다.

✅ 완료 조건

  • 실제 MySQL과 service transaction 경계에서 두 동시성 시나리오가 통과합니다.
  • 지원, 정원, TEAM 멤버, 알림, outbox의 최종 개수와 연결 값을 검증합니다.
  • production 코드는 변경하지 않습니다.

🚫 범위 밖

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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