Conversation
There was a problem hiding this comment.
Pull request overview
크리에이터/유저의 밴·언밴·탈퇴 시나리오를 서비스 단위로 분리하고, 도메인 이벤트 발행 및 타 서비스(creator/auth) 연계 소비 흐름까지 포함해 운영 제재 플로우를 확장한 PR입니다.
Changes:
- User 서비스: 밴/언밴 상태 및 도메인 이벤트(
USER_UNBANNED) 추가, 세션/프로필/탈퇴 유즈케이스 시그니처를 Command/Query 기반으로 정리 - Creator 서비스: 밴/언밴/탈퇴 처리 및 유저 이벤트(Kafka) 소비 로직/영속화(outbox 형태) 기반 구성 추가
- Auth/공통: DTO 패키지 정리(command/query/result), 일부 API 유즈케이스 시그니처 변경 및 SonarCloud 분석 워크플로 업데이트
Reviewed changes
Copilot reviewed 49 out of 60 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| services/user/src/main/java/kr/magicbox/user/domain/exception/UserSessionNotActiveException.java | 세션 종료 예외 신규 정의 |
| services/user/src/main/java/kr/magicbox/user/domain/exception/UserNotBannedException.java | 언밴 불가 케이스 예외 신규 정의 |
| services/user/src/main/java/kr/magicbox/user/domain/exception/UserBannedException.java | 밴 상태 탈퇴 불가 예외 신규 정의 |
| services/user/src/main/java/kr/magicbox/user/domain/exception/UserAlreadyInactiveException.java | 기존 비활성 예외 제거 |
| services/user/src/main/java/kr/magicbox/user/domain/event/UserUnbannedEvent.java | 유저 언밴 도메인 이벤트 추가 |
| services/user/src/main/java/kr/magicbox/user/domain/event/UserDomainEventType.java | USER_UNBANNED 타입 추가 |
| services/user/src/main/java/kr/magicbox/user/domain/enums/UserStatus.java | 상태 값 조정(INACTIVE→BANNED) |
| services/user/src/main/java/kr/magicbox/user/domain/aggregate/User.java | activate/ban/unban/delete 메서드로 상태 전환 정리 |
| services/user/src/main/java/kr/magicbox/user/application/service/WithdrawUserService.java | Withdraw 입력을 Command로 변경 및 락 조회 사용 |
| services/user/src/main/java/kr/magicbox/user/application/service/UserQueryService.java | 프로필 조회 입력을 Query로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/service/UserCommandService.java | 프로필 수정 입력을 Command 단일 인자로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/service/UnbanUserService.java | 유저 언밴 유즈케이스 및 이벤트 발행 추가 |
| services/user/src/main/java/kr/magicbox/user/application/service/ManageUserSessionService.java | 세션 시작/종료 입력을 Command로 변경 및 예외 교체 |
| services/user/src/main/java/kr/magicbox/user/application/service/LoginService.java | 리포지토리 save/update 메서드명 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/application/service/CheckUserActiveService.java | 활성 여부 조회 입력을 Query로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/service/BanUserService.java | 밴 처리 도메인 메서드명 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/application/port/out/UserRepositoryPort.java | save/update 메서드명 변경 및 WithLock 조회 추가 |
| services/user/src/main/java/kr/magicbox/user/application/port/out/ReviewQueryPort.java | DTO 패키지 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/WithdrawUserUseCase.java | Withdraw 입력을 Command로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/UserQueryUseCase.java | 프로필 조회 입력을 Query로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/UserCommandUseCase.java | 프로필 수정 입력을 Command 단일 인자로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/UnbanUserUseCase.java | 유저 언밴 유즈케이스 추가 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/ManageUserSessionUseCase.java | 세션 유즈케이스 입력을 Command로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/LoadUserCredentialUseCase.java | DTO 패키지 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/CheckUserActiveUseCase.java | 활성 여부 조회 입력을 Query로 변경 |
| services/user/src/main/java/kr/magicbox/user/application/port/in/BanUserUseCase.java | 포맷/정리 |
| services/user/src/main/java/kr/magicbox/user/application/dto/UpdateUserProfileCommand.java | 기존 command DTO 제거(패키지 이동) |
| services/user/src/main/java/kr/magicbox/user/application/dto/result/UserReviewResult.java | result 패키지로 이동 |
| services/user/src/main/java/kr/magicbox/user/application/dto/result/LoadUserCredentialResult.java | result 패키지로 이동 |
| services/user/src/main/java/kr/magicbox/user/application/dto/result/GetUserProfileResult.java | result 패키지로 이동 |
| services/user/src/main/java/kr/magicbox/user/application/dto/query/GetUserProfileQuery.java | 프로필 조회 Query DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/query/CheckUserActiveQuery.java | 활성 여부 Query DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/WithdrawUserCommand.java | 탈퇴 Command DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/UpdateUserProfileCommand.java | 프로필 수정 Command DTO 신규(패키지 이동/확장) |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/UnbanUserCommand.java | 언밴 Command DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/StartSessionCommand.java | 세션 시작 Command DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/LoadUserCredentialCommand.java | command 패키지로 이동 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/EndSessionCommand.java | 세션 종료 Command DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/application/dto/command/BanUserCommand.java | 밴 Command DTO 추가 |
| services/user/src/main/java/kr/magicbox/user/adapter/out/persistence/UserJpaAdapter.java | WithLock 조회 및 save/update 메서드명 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/adapter/out/persistence/repository/UserJpaRepository.java | PESSIMISTIC_WRITE 락 조회 쿼리 추가 |
| services/user/src/main/java/kr/magicbox/user/adapter/out/persistence/entity/UserEntity.java | @Version 제거 및 status 업데이트 반영 |
| services/user/src/main/java/kr/magicbox/user/adapter/out/communication/grpc/ReviewQueryGrpcAdapter.java | DTO 패키지 변경 반영 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/UserQueryController.java | 프로필 조회 Query DTO 사용 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/UserCommandController.java | 수정/탈퇴를 Command로 전달하도록 변경 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/exception/handler/GlobalExceptionHandler.java | OptimisticLock 예외 핸들러 제거 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/dto/response/GetUserProfileResponse.java | response 패키지로 이동 및 import 정리 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/dto/request/UpdateUserProfileRequest.java | request 패키지로 이동 및 userId 주입 방식 변경 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/web/AdminUserCommandController.java | 유저 언밴 API 엔드포인트 추가 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/kafka/AuthEventKafkaListener.java | 세션 유즈케이스 호출을 Command로 변경 |
| services/user/src/main/java/kr/magicbox/user/adapter/in/grpc/UserGrpcService.java | 활성 여부 체크를 Query DTO로 변경 |
| services/creator/src/main/resources/application-prod.yml | creator-prod 환경 설정 신규 |
| services/creator/src/main/resources/application-local.yml | local 설정 확장(grpc/kafka/db/security 등) |
| services/creator/src/main/resources/application-dev.yml | creator-dev 환경 설정 신규 |
| services/creator/src/main/java/kr/magicbox/creator/global/exception/SystemError.java | 5xx 전용 시스템 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/global/exception/BusinessException.java | 4xx 전용 비즈니스 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/global/exception/BaseException.java | creator 공통 예외 베이스 추가 |
| services/creator/src/main/java/kr/magicbox/creator/global/configuration/PropertiesConfiguration.java | @ConfigurationPropertiesScan 설정 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/vo/UserId.java | UserId VO 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/vo/Nickname.java | Nickname VO 추가 및 정책 검증 |
| services/creator/src/main/java/kr/magicbox/creator/domain/vo/CreatorId.java | CreatorId VO 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/exception/InvalidFieldException.java | 필드 검증 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/exception/CreatorNotFoundException.java | NotFound 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/exception/CreatorNotBannedException.java | 언밴 불가 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/exception/CreatorAlreadyExistsException.java | 중복 생성 예외 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/event/CreatorUnbannedEvent.java | creator 언밴 이벤트 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/event/CreatorRevokedEvent.java | creator revoke(탈퇴/제재) 이벤트 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/event/CreatorDomainEventType.java | creator 도메인 이벤트 타입 정의 |
| services/creator/src/main/java/kr/magicbox/creator/domain/event/CreatorDomainEvent.java | creator 도메인 이벤트 인터페이스 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/enums/MagicGenre.java | 장르 enum 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/enums/CreatorStatus.java | 상태 enum 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/constants/CreatorPolicyConstants.java | 정책 상수 추가 |
| services/creator/src/main/java/kr/magicbox/creator/domain/aggregate/Creator.java | Creator 애그리게잇 및 상태 전환 로직 추가 |
| services/creator/src/main/java/kr/magicbox/creator/application/service/WithdrawCreatorService.java | 탈퇴 처리 + revoke 이벤트 발행 |
| services/creator/src/main/java/kr/magicbox/creator/application/service/UnbanCreatorService.java | 언밴 처리 + 언밴 이벤트 발행 |
| services/creator/src/main/java/kr/magicbox/creator/application/service/HandleUserWithdrawnService.java | 유저 탈퇴 이벤트 소비 후 creator 삭제 처리 |
| services/creator/src/main/java/kr/magicbox/creator/application/service/HandleUserBannedService.java | 유저 밴 이벤트 소비 후 creator 밴 처리 |
| services/creator/src/main/java/kr/magicbox/creator/application/service/BanCreatorService.java | 관리자 밴 처리 + revoke 이벤트 발행 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/out/CreatorRepositoryPort.java | Creator 저장소 포트 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/out/CreatorDomainEventRepositoryPort.java | 도메인 이벤트 저장 포트 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/in/WithdrawCreatorUseCase.java | 탈퇴 유즈케이스 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/in/UnbanCreatorUseCase.java | 언밴 유즈케이스 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/in/HandleUserWithdrawnUseCase.java | 유저 탈퇴 이벤트 핸들러 유즈케이스 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/in/HandleUserBannedUseCase.java | 유저 밴 이벤트 핸들러 유즈케이스 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/port/in/BanCreatorUseCase.java | 밴 유즈케이스 정의 |
| services/creator/src/main/java/kr/magicbox/creator/application/dto/command/WithdrawCreatorCommand.java | Withdraw command 추가 |
| services/creator/src/main/java/kr/magicbox/creator/application/dto/command/UnbanCreatorCommand.java | Unban command 추가 |
| services/creator/src/main/java/kr/magicbox/creator/application/dto/command/HandleUserWithdrawnCommand.java | 유저 탈퇴 이벤트 command 추가 |
| services/creator/src/main/java/kr/magicbox/creator/application/dto/command/HandleUserBannedCommand.java | 유저 밴 이벤트 command 추가 |
| services/creator/src/main/java/kr/magicbox/creator/application/dto/command/BanCreatorCommand.java | Ban command 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/repository/CreatorJpaRepository.java | Creator JPA repo 및 락 쿼리 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/repository/CreatorDomainEventRepository.java | 도메인 이벤트 JPA repo 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/mapper/CreatorMapper.java | 도메인↔엔티티 매퍼 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/entity/CreatorEntity.java | Creator 엔티티 및 genre 컬렉션 매핑 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/entity/CreatorDomainEventEntity.java | creator 도메인 이벤트 엔티티 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/entity/BaseEntity.java | Sonyflake ID + auditing 베이스 엔티티 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/CreatorJpaAdapter.java | CreatorRepositoryPort JPA 어댑터 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/CreatorDomainEventAdapter.java | 도메인 이벤트 저장 어댑터 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/out/persistence/configuration/JpaConfiguration.java | JPA auditing 활성화 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/web/exception/handler/GlobalExceptionHandler.java | creator 전역 예외 핸들러 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/web/exception/handler/ErrorResponse.java | 에러 응답 DTO 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/web/AdminCreatorCommandController.java | creator 밴/언밴 관리자 API 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/security/properties/TrustedIpProperties.java | 신뢰 IP 설정 바인딩 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/security/filter/UserInfoExtractFilter.java | X-User-Id 헤더 기반 principal 주입 필터 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/security/configuration/SecurityConfiguration.java | SecurityFilterChain 구성 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/kafka/UserEventKafkaListener.java | user-withdrawn/user-banned 이벤트 소비 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/kafka/properties/KafkaRetryProperties.java | Kafka retry 설정 바인딩 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/kafka/KafkaConfiguration.java | DLT+재시도 에러 핸들러 구성 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/kafka/event/UserWithdrawnEvent.java | Kafka 이벤트 DTO 추가 |
| services/creator/src/main/java/kr/magicbox/creator/adapter/in/kafka/event/UserBannedEvent.java | Kafka 이벤트 DTO 추가 |
| services/creator/build.gradle | creator 모듈 의존성/프로토 설정 추가 |
| services/auth/src/main/java/kr/magicbox/auth/domain/exception/UserInactiveException.java | 비활성 사용자 예외 신규 정의 |
| services/auth/src/main/java/kr/magicbox/auth/domain/exception/UserBannedException.java | 밴 사용자 예외 신규 정의 |
| services/auth/src/main/java/kr/magicbox/auth/domain/exception/InActiveUserException.java | 기존 예외 제거 |
| services/auth/src/main/java/kr/magicbox/auth/application/service/RefreshTokenService.java | refresh 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/service/LogoutService.java | logout 입력을 Command로 변경 및 예외 교체 |
| services/auth/src/main/java/kr/magicbox/auth/application/service/LoginService.java | DTO 패키지 변경 반영 |
| services/auth/src/main/java/kr/magicbox/auth/application/service/HandleUserWithdrawnService.java | 유저 탈퇴 이벤트 핸들러 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/service/HandleUserBannedService.java | 유저 밴 이벤트 핸들러 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/out/UserCredentialPort.java | DTO 패키지 변경 반영 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/in/RefreshTokenUseCase.java | refresh 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/in/LogoutUseCase.java | logout 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/in/LoginUseCase.java | DTO 패키지 변경 반영 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/in/HandleUserWithdrawnUseCase.java | 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/port/in/HandleUserBannedUseCase.java | 입력을 Command로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/result/UserResult.java | result 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/result/TokenResult.java | result 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/result/IssueTokenResult.java | result 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/command/RefreshTokenCommand.java | refresh command 추가 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/command/LogoutCommand.java | logout command 추가 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/command/LoginCommand.java | command 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/command/HandleUserWithdrawnCommand.java | 이벤트 command 추가 |
| services/auth/src/main/java/kr/magicbox/auth/application/dto/command/HandleUserBannedCommand.java | 이벤트 command 추가 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/out/communication/grpc/UserGrpcAdapter.java | DTO 패키지 변경 반영 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/in/web/dto/response/AccessTokenResponse.java | response 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/in/web/dto/request/LoginRequest.java | request 패키지로 이동 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/in/web/AuthCommandController.java | refresh/logout를 Command 기반으로 변경 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/in/security/oauth2/OAuth2LoginSuccessHandler.java | DTO 패키지 변경 반영 |
| services/auth/src/main/java/kr/magicbox/auth/adapter/in/kafka/UserEventKafkaListener.java | 이벤트 핸들러 호출을 Command 기반으로 변경 |
| .github/workflows/sonarcloud-analyze.yml | SonarCloud 분석 시 Java binaries 설정 추가 및 classes 컴파일 단계 추가 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...reator/src/main/java/kr/magicbox/creator/application/service/HandleUserWithdrawnService.java
Show resolved
Hide resolved
Comment on lines
+40
to
+46
| Long userIdLong = Long.valueOf(userIdRequestHeader); | ||
| UserId userId = UserId.of(userIdLong); | ||
| log.info(String.valueOf(userId)); | ||
|
|
||
| UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userId, null); | ||
| SecurityContextHolder.getContext().setAuthentication(authenticationToken); | ||
|
|
There was a problem hiding this comment.
요청마다 userId를 INFO로 로깅하면 개인정보 로그 축적 및 로그 볼륨 증가로 운영 리스크가 있습니다. 필요하다면 DEBUG로 낮추거나, 감사 목적이면 마스킹/샘플링 등으로 노출을 줄이는 방식으로 변경하는 것을 권장합니다.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



📌 관련 이슈
📝 변경 사항 요약
작업 유형
(기능 단위 완료 후 PR)(버그 1개 = PR 1개)(작업 단위 완료 후 PR)(작업 단위 완료 후 PR)변경 내용
변경 이유
✅ 테스트 체크리스트
📸 스크린샷 / 로그
펼쳐보기
🔄 동작 플로우 (Mermaid)
%%{init: {'flowchart': {'useMaxWidth': true, 'htmlLabels': true}} }%% flowchart TD A[밴/언밴 요청] --> B[Creator 상태 변경] B --> C[도메인 이벤트 저장] D[탈퇴 요청] --> E[DELETED 변경] E --> C C --> F[후속 처리 전파]💬 리뷰어에게
크리에이터 밴/언밴/탈퇴 API 구현 범위를 중심으로 리뷰 부탁드립니다.