Skip to content

Conversation

@minjee2758
Copy link
Collaborator

@minjee2758 minjee2758 commented Oct 21, 2025

작업 내용

  • 유저 회원가입 시 토큰 자동 발급

    • accessToken
    • refreshToken
  • 회원가입할 때 자동으로 UserRole을 Admin으로 지정하던 것에서 User 지정으로 변경


참고 사항

  • 기타 공유하고 싶은 정보나 참고한 문서(링크 등)가 있다면 작성해주세요.

코드 리뷰 전 확인 체크리스트

  • 불필요한 콘솔 로그, 주석 제거
  • 커밋 메시지 컨벤션 준수 (type : )
  • 기능 정상 동작 확인

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 회원가입 완료 후 접근 토큰과 갱신 토큰이 응답에 포함되어 토큰 기반 인증 지원 추가
  • System Improvements

    • Java 버전을 17에서 21로 업그레이드하여 최신 언어 기능 및 성능 개선 적용
  • Chores

    • 사용하지 않는 import 선언 제거로 코드 정리

@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

둘러보기

빌드 설정을 Java 21로 업그레이드하고, 회원가입 응답에 액세스 토큰과 새로고침 토큰을 추가했습니다. AuthService의 회원가입 프로세스를 수정하여 새 사용자를 반환하고 토큰을 발급하도록 변경했으며, 사용하지 않는 임포트를 정리했습니다.

변경 사항

코호트 / 파일 변경 요약
빌드 설정
build.gradle
Java 도구 체인 언어 버전 17에서 21로 업그레이드
응답 DTO 확장
src/main/java/org/ezcode/codetest/application/usermanagement/auth/dto/response/SignupResponse.java
accessToken 및 refreshToken 문자열 필드 추가, from() 정적 팩토리 메서드 서명 업데이트
인증 서비스 로직
src/main/java/org/ezcode/codetest/application/usermanagement/auth/service/AuthService.java
signup 메서드에서 토큰 발급 지원을 위해 userRegisterationProcess(), createNewUser(), updateExistingUser() 반환 타입을 void에서 User로 변경
사용자 서비스 정리
src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java
사용하지 않는 임포트 제거 (LocalDate, Collectors, GrantAdminRoleResponse, UserRole, MailService)
사용자 모델 업데이트
src/main/java/org/ezcode/codetest/domain/user/model/entity/User.java
emailUser 빌더에서 역할을 ADMIN에서 USER로 변경, 사용하지 않는 임포트 제거

시퀀스 다이어그램

sequenceDiagram
    participant Client
    participant AuthService
    participant UserService
    participant TokenService
    participant Database

    Client->>AuthService: signup(SignupRequest)
    AuthService->>AuthService: userRegisterationProcess()
    AuthService->>UserService: createNewUser() 또는 updateExistingUser()
    UserService->>Database: 사용자 저장
    Database-->>UserService: User 반환
    UserService-->>AuthService: User 반환
    AuthService->>TokenService: 액세스/새로고침 토큰 발급
    TokenService-->>AuthService: accessToken, refreshToken
    AuthService->>AuthService: SignupResponse.from() 생성
    AuthService-->>Client: SignupResponse (message, accessToken, refreshToken)
Loading

예상 코드 리뷰 노력

🎯 2 (단순) | ⏱️ ~10분

변경 사항은 주로 메서드 시그니처 업데이트와 반환 타입 변경으로 이루어져 있으며, 각 파일의 수정 범위가 명확하고 제한적입니다. 임포트 정리는 반복적이고 기계적인 작업입니다.

관련 가능성 있는 PR

제안 레이블

enhancement

제안 검토자

  • chat26666
  • NCookies
  • pokerbearkr
  • thezz9
  • Kimminu7

🐰 토큰 두 개를 품은 회원가입, 사용자 정보는 안전하게 쌓아두고,
코드는 깔끔하고 버전도 업그레이드했으니,
모두 행복해하는 인증의 날이 되었어요! ✨🔐

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed PR 제목 "Refactor: user 회원가입 시 토큰 자동 발급"(회원가입 시 토큰 자동 발급)은 변경사항의 주요 내용과 직접적으로 연관되어 있습니다. SignupResponse에 accessToken과 refreshToken 필드가 추가되었고, AuthService의 signup 메서드가 토큰 발급을 처리하도록 변경되었으며, 사용자 등록 시 자동으로 토큰을 생성하는 흐름이 구현되었습니다. 제목은 명확하고 구체적이며, 개발자 관점에서 이 PR의 핵심 기능 변화를 정확하게 전달합니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/user-signup-response

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0f7bf33 and 2f133eb.

📒 Files selected for processing (5)
  • build.gradle (1 hunks)
  • src/main/java/org/ezcode/codetest/application/usermanagement/auth/dto/response/SignupResponse.java (1 hunks)
  • src/main/java/org/ezcode/codetest/application/usermanagement/auth/service/AuthService.java (2 hunks)
  • src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java (0 hunks)
  • src/main/java/org/ezcode/codetest/domain/user/model/entity/User.java (1 hunks)
💤 Files with no reviewable changes (1)
  • src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java
🔇 Additional comments (5)
src/main/java/org/ezcode/codetest/domain/user/model/entity/User.java (1)

98-98: 중요한 보안 개선사항입니다.

이메일 회원가입 시 기본 역할을 ADMIN에서 USER로 변경한 것은 올바른 수정입니다. 이전 코드는 모든 신규 사용자에게 관리자 권한을 부여하는 심각한 보안 취약점이었습니다. 이제 소셜 로그인(socialUser, githubUser)과 동일하게 USER 역할을 할당하여 일관성도 확보되었습니다.

src/main/java/org/ezcode/codetest/application/usermanagement/auth/dto/response/SignupResponse.java (1)

8-16: 회원가입 시 토큰 자동 발급 기능이 올바르게 구현되었습니다.

SignupResponseaccessTokenrefreshToken 필드가 추가되었고, Swagger 문서화도 적절히 되어 있습니다. 팩토리 메서드 시그니처도 새로운 필드를 받도록 정확하게 업데이트되었습니다. 이는 회원가입 후 자동 로그인 기능을 지원하는 좋은 UX 개선입니다.

src/main/java/org/ezcode/codetest/application/usermanagement/auth/service/AuthService.java (3)

58-67: 회원가입 시 토큰 자동 발급 로직이 잘 구현되었습니다.

사용자 생성 후 액세스 토큰과 리프레시 토큰을 발급하는 흐름이 올바르게 구현되었습니다. 리팩토링된 코드가 깔끔하고 읽기 쉽습니다.

다만, Redis 저장 실패 시의 처리를 고려해주세요. createRefreshToken 메서드(lines 146-154)에서 Redis 저장이 실패하면 사용자는 이미 DB에 저장된 상태이지만 리프레시 토큰이 없어 자동 로그인이 실패합니다. 로그인 시(line 180)에는 Redis 실패를 처리하고 있으니, 회원가입 시에도 유사한 처리가 필요할 수 있습니다.

Redis 장애 상황에서의 동작을 확인하려면 다음을 검토해주세요:

  • Redis 연결 실패 시 사용자 경험 (액세스 토큰만으로도 로그인 가능한지)
  • 에러 메시지가 적절히 전달되는지

78-86: 사용자 객체를 반환하도록 리팩토링된 구조가 깔끔합니다.

userRegisterationProcess 메서드가 User 객체를 반환하도록 변경되어 토큰 생성에 필요한 사용자 정보를 제공할 수 있게 되었습니다. 신규 사용자와 기존 사용자(소셜 로그인 이력) 두 경우 모두 올바르게 처리됩니다.


89-115: LGTM!

createNewUserupdateExistingUser 메서드의 반환 타입 변경이 정확하게 구현되었습니다. 기존 로직은 그대로 유지하면서 생성/수정된 사용자 객체를 반환하도록 깔끔하게 리팩토링되었습니다.

@ezcode-my ezcode-my deleted a comment from coderabbitai bot Oct 21, 2025
@minjee2758 minjee2758 merged commit 08fedac into dev Oct 21, 2025
2 checks passed
@minjee2758 minjee2758 deleted the refactor/user-signup-response branch October 21, 2025 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants