3.6 KiB
3.6 KiB
- 관리자 차단 신규 API/DTO/서비스 파일 생성
- 차단 처리 시 탈퇴 이유 저장 및 회원 비활성화 처리
- 차단 처리 시 Redis 로그인 토큰 전체 삭제
- 본인인증 회원 BlockAuth 기록 처리
- 동일 본인인증 정보 계정 일괄 탈퇴 처리
- 활성 계정 조회 조건을
name + birth + di + uniqueCi로 강화 - 관리자 차단 서비스 테스트 추가
- 정적 진단 및 테스트/빌드 검증
검증 기록
1차 구현
- 무엇을:
kr.co.vividnext.sodalive.admin.member패키지에 신규 관리자 차단 API(AdminMemberBlockController), 요청 DTO(AdminMemberBlockRequest), 서비스(AdminMemberBlockService)를 추가했다. 서비스에서 탈퇴 이유 저장/회원 비활성화, Redis 로그인 토큰 전체 삭제, 본인인증 정보BlockAuth기록을 순서대로 처리하고, 서비스 단위 테스트(AdminMemberBlockServiceTest)를 추가했다. - 왜: 관리자 페이지에서 사용자 차단 시 계정 비활성화 이력, 세션 무효화, 본인인증 기반 재가입 차단 정보를 한 번의 동작으로 일관되게 처리하기 위해서다.
- 어떻게:
- 정적 진단:
lsp_diagnostics로 수정한 Kotlin 파일 진단을 시도했으나, 실행 환경에 Kotlin LSP가 설정되어 있지 않아 수행 불가(도구 에러 확인). - 테스트:
./gradlew test --tests kr.co.vividnext.sodalive.admin.member.AdminMemberBlockServiceTest실행,BUILD SUCCESSFUL확인. - 빌드:
./gradlew build -x test실행,BUILD SUCCESSFUL확인.
- 정적 진단:
2차 수정
- 무엇을: 관리자 차단 시 차단 대상 회원의 본인인증 정보(
di)와 동일한 활성 계정을 모두 조회해 일괄 탈퇴 처리하도록AdminMemberBlockService를 수정했다. 각 대상 계정마다 탈퇴 사유(SignOut) 저장, 회원 비활성화, Redis 로그인 토큰 전체 삭제를 수행하고, 기존BlockAuth저장 로직은 유지했다. 테스트도 동일 본인인증 다계정 탈퇴 시나리오를 포함하도록 확장했다. - 왜: 본인인증 정보를 공유하는 다중 계정을 관리자 차단 시 함께 정리해야 우회 가입 계정이 활성 상태로 남지 않기 때문이다.
- 어떻게:
- 정적 진단:
lsp_diagnostics로 수정한 Kotlin 파일 진단을 시도했으나, 실행 환경에 Kotlin LSP가 설정되어 있지 않아 수행 불가(도구 에러 확인). - 테스트:
./gradlew test --tests kr.co.vividnext.sodalive.admin.member.AdminMemberBlockServiceTest실행,BUILD SUCCESSFUL확인. - 빌드:
./gradlew build -x test실행,BUILD SUCCESSFUL확인.
- 정적 진단:
3차 수정
- 무엇을: 활성 계정 조회 조건을
di단일 조건에서name + birth + di + uniqueCiAND 조건으로 강화했다. 이를 위해AuthRepository의 활성 계정 조회 메서드를getActiveMemberIdsByNameAndBirthAndDiAndUniqueCi(...)로 변경하고, 호출부인AdminMemberBlockService,AuthService.authenticate를 모두 신규 메서드로 교체했다.AdminMemberBlockServiceTest도 신규 시그니처 기준으로 스텁/검증을 수정했다. - 왜:
di만으로 동일인을 판단하면 과매칭 리스크가 있어, 본인인증 핵심 식별 속성을 함께 사용해 활성 계정 판별 정확도를 높이기 위해서다. - 어떻게:
- 정적 진단:
lsp_diagnostics로 수정한 Kotlin 파일 진단을 시도했으나, 실행 환경에 Kotlin LSP가 설정되어 있지 않아 수행 불가(도구 에러 확인). - 테스트:
./gradlew test실행,BUILD SUCCESSFUL확인. - 빌드:
./gradlew build -x test실행,BUILD SUCCESSFUL확인.
- 정적 진단: