Skip to content

Conversation

@wibaek
Copy link
Member

@wibaek wibaek commented Apr 8, 2025

관련 이슈

없음

작업 내용

  • 엔티티에서 성별과 생일 정보를 삭제했습니다
    • Flyway 마이그레이션 추가 완료
  • 이를 사용하던 auth와 my관련 API를 수정했습니다

특이 사항

리뷰 요구사항 (선택)

@wibaek wibaek added the 기능 label Apr 8, 2025
@wibaek wibaek self-assigned this Apr 8, 2025
@coderabbitai
Copy link

coderabbitai bot commented Apr 8, 2025

Walkthrough

  1. SignUpRequest 구조 변경:
    SignUpRequest record에서 Gender와 birth 필드가 제거되어, toOAuthSiteUser와 toEmailSiteUser 메소드 내의 처리 로직도 간소화되었습니다.

  2. SiteUser 클래스 개편:
    SiteUser 클래스의 생성자에서 gender 및 birth 관련 매개변수가 삭제되어, 생성자 시그니처가 단순해졌고 데이터 모델이 재정비되었습니다.

  3. 응답 객체 수정:
    MyPageResponse와 관련 메소드에서 birth 필드가 제거되어, 사용자 정보를 반환하는 구조가 변경되었습니다.

  4. Gender Enum 제거:
    Gender enum 파일이 삭제되어, 모든 코드베이스에서 성별에 대한 상수와 관련 로직이 제거되었습니다.

  5. DB 스키마 및 SQL 스크립트 업데이트:
    site_user 테이블에서 gender와 birth 컬럼을 제거하는 ALTER TABLE 명령과 함께, 관련 SQL migration 파일이 추가되었습니다.

  6. 테스트 코드 재정비:
    다양한 테스트 케이스에서 SiteUser 객체 생성 시 gender 및 dateOfBirth 파라미터가 제거되어, 테스트 로직과 어서션이 수정되었습니다.

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@wibaek wibaek marked this pull request as ready for review April 9, 2025 02:23
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: 0

🧹 Nitpick comments (3)
src/test/java/com/example/solidconnection/concurrency/PostViewCountConcurrencyTest.java (2)

118-118: 2. Thread.sleep 코드 포맷팅 변경

Thread.sleep 호출의 포맷팅이 개선되었습니다. 이 변경은 Gender/birth 관련 주요 변경사항과는 별개이지만, 코드 일관성 측면에서 긍정적인 변화입니다.


164-164: 3. Thread.sleep 코드 포맷팅 변경

두 번째 Thread.sleep 호출의 포맷팅도 마찬가지로 개선되었습니다. 코드 가독성을 일관되게 유지하려는 노력이 보입니다.

src/main/java/com/example/solidconnection/siteuser/domain/SiteUser.java (1)

124-140: 생성자에 관한 TODO 코멘트 검토가 필요합니다

라인 124의 TODO 코멘트가 여전히 유효한지 검토해보세요:

// todo: 가입 방법에 따라서 정해진 인자만 받고, 그렇지 않을 경우 예외 발생하도록 수정 필요
  1. 변경 제안

    • 필드 제거 후에도 이 TODO가 여전히 필요한지 확인해주세요
    • 생성자 오버로딩 패턴이 간소화되었으니 팩토리 메서드 패턴 도입을 고려해보세요
  2. 팩토리 메서드 예시

    • createKakaoUser(), createEmailUser() 등의 정적 팩토리 메서드를 만들어 생성자 용도를 명확히 할 수 있습니다
    • 이를 통해 잘못된 생성자 사용으로 인한 오류를 방지할 수 있습니다
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7c0ab90 and 89d3e81.

📒 Files selected for processing (30)
  • src/main/java/com/example/solidconnection/auth/dto/SignUpRequest.java (1 hunks)
  • src/main/java/com/example/solidconnection/siteuser/domain/SiteUser.java (1 hunks)
  • src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java (0 hunks)
  • src/main/java/com/example/solidconnection/type/Gender.java (0 hunks)
  • src/main/resources/data.sql (1 hunks)
  • src/main/resources/db/migration/V11_remove_siteuser_birth_and_gender.sql (1 hunks)
  • src/test/java/com/example/solidconnection/admin/service/AdminGpaScoreServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/admin/service/AdminLanguageTestScoreServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/auth/service/AuthTokenProviderTest.java (5 hunks)
  • src/test/java/com/example/solidconnection/auth/service/EmailSignInServiceTest.java (0 hunks)
  • src/test/java/com/example/solidconnection/auth/service/SignInServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/concurrency/PostLikeCountConcurrencyTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/concurrency/PostViewCountConcurrencyTest.java (3 hunks)
  • src/test/java/com/example/solidconnection/concurrency/ThunderingHerdTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/resolver/AuthorizedUserResolverTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/security/aspect/AdminAuthorizationAspectTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/security/authentication/SiteUserAuthenticationTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/security/provider/SiteUserAuthenticationProviderTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/security/userdetails/SiteUserDetailsServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/custom/security/userdetails/SiteUserDetailsTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/e2e/DynamicFixture.java (2 hunks)
  • src/test/java/com/example/solidconnection/e2e/MyPageTest.java (0 hunks)
  • src/test/java/com/example/solidconnection/e2e/SignUpTest.java (4 hunks)
  • src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/siteuser/repository/SiteUserRepositoryTest.java (0 hunks)
  • src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java (3 hunks)
  • src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java (2 hunks)
  • src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java (1 hunks)
  • src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java (1 hunks)
💤 Files with no reviewable changes (5)
  • src/test/java/com/example/solidconnection/e2e/MyPageTest.java
  • src/test/java/com/example/solidconnection/auth/service/EmailSignInServiceTest.java
  • src/main/java/com/example/solidconnection/type/Gender.java
  • src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java
  • src/test/java/com/example/solidconnection/siteuser/repository/SiteUserRepositoryTest.java
🔇 Additional comments (36)
src/main/resources/db/migration/V11_remove_siteuser_birth_and_gender.sql (1)

1-3: SQL 마이그레이션 적절히 구현되었습니다.

  1. 데이터베이스 스키마 변경 사항:
    • site_user 테이블에서 gender 컬럼 삭제
    • site_user 테이블에서 birth 컬럼 삭제

PR 목적에 맞게 유저의 생일과 성별 정보를 삭제하는 마이그레이션이 적절하게 구현되었습니다. SQL 문법도 올바르게 작성되었습니다.

src/test/java/com/example/solidconnection/custom/resolver/AuthorizedUserResolverTest.java (1)

99-99: 생성자 파라미터 수정 적절히 반영되었습니다.

SiteUser 객체 생성 시 Gender와 birth 필드가 제거됨에 따라 테스트 코드의 생성자 호출도 올바르게 수정되었습니다. 이제 Role.MENTEE가 생성자의 마지막 파라미터로 적절히 전달되고 있습니다.

src/main/resources/data.sql (1)

44-46: 데이터 삽입 SQL 문이 올바르게 수정되었습니다.

  1. site_user 테이블 데이터 삽입 변경 사항:
    • INSERT 문에서 gender 컬럼 제거
    • INSERT 문에서 birth 컬럼 제거
    • VALUES 절에서 해당 값들 제거

데이터베이스 스키마 변경에 맞춰 데이터 삽입 쿼리가 적절하게 수정되었습니다. 이제 site_user 테이블에는 gender와 birth 데이터 없이 필수 필드만 삽입됩니다.

src/test/java/com/example/solidconnection/concurrency/ThunderingHerdTest.java (1)

49-49: 동시성 테스트의 SiteUser 생성자 호출이 적절히 수정되었습니다.

ThunderingHerdTest 클래스의 createSiteUser 메서드에서 SiteUser 생성자 호출 시 Gender와 birth 파라미터가 제거되었습니다. 이제 Role.MENTEE가 생성자의 마지막 파라미터로 올바르게 전달되고 있어 PR의 목적에 부합합니다.

src/test/java/com/example/solidconnection/custom/security/userdetails/SiteUserDetailsTest.java (1)

39-47: SiteUser 생성자 매개변수 수정이 올바르게 적용되었습니다!

유저 생일과 성별 정보 삭제에 따라 createSiteUser() 메소드에서 Gender와 birth 매개변수가 제거되었습니다. 변경된 SiteUser 생성자 시그니처와 일치하도록 잘 수정되었습니다.

src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java (1)

55-64: SiteUser 생성자 호출이 일관되게 수정되었습니다!

유저 생일과 성별 정보 삭제 PR의 일환으로 createSiteUser() 메소드에서 Gender와 birth 매개변수가 제거되었습니다. 테스트가 수정된 SiteUser 클래스 구조와 일치하도록 정확하게 업데이트되었습니다.

src/test/java/com/example/solidconnection/auth/service/AuthTokenProviderTest.java (5)

30-33: 코드 스타일 개선: 불필요한 줄바꿈 제거

클래스 멤버 변수 선언 사이의 불필요한 줄바꿈을 제거하여 코드의 일관성과 가독성이 향상되었습니다.


39-43: 코드 스타일 개선: 일관된 변수 선언 형식

멤버 변수 선언부의 불필요한 줄바꿈을 제거하고 더 일관된 형식으로 정리되었습니다.


52-54: 중첩 클래스 선언 스타일 개선

중첩 클래스 선언부의 불필요한 줄바꿈을 제거하여 더 일관된 코드 스타일로 정리되었습니다.


77-80: 중첩 클래스 선언 간격 일관성 유지

중첩 클래스 사이의 줄바꿈 스타일이 일관되게 수정되었습니다.


174-183: SiteUser 생성자 호출이 올바르게 수정되었습니다!

유저 생일과 성별 정보 삭제에 따라 createSiteUser() 메소드에서 Gender와 birth 매개변수가 제거되었습니다. 수정된 SiteUser 클래스 구조와 일치하도록 잘 업데이트되었습니다.

src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java (1)

170-179: SiteUser 생성자 호출이 일관되게 수정되었습니다!

유저 생일과 성별 정보 삭제 PR의 일환으로 createSiteUser() 메소드에서 Gender와 birth 매개변수가 제거되었습니다. 테스트가 업데이트된 SiteUser 클래스 구조와 일치하도록 정확하게 수정되었습니다.

src/test/java/com/example/solidconnection/admin/service/AdminGpaScoreServiceTest.java (1)

212-220: SiteUser 생성자에서 불필요한 필드가 제거되었습니다.

PR 목적에 맞게 유저 생일과 성별 정보가 성공적으로 제거되었습니다. 이 변경으로 사용자 정보 관리가 간소화되었습니다.

  1. 변경 내용:
    • SiteUser 생성자에서 birth 필드 제거
    • Gender 파라미터 제거

코드가 더 간결해졌고, 불필요한 개인정보를 수집하지 않는 방향으로 개선되었습니다.

src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java (1)

155-164: SiteUser 생성자에서 유저 생일과 성별 정보가 제거되었습니다.

PR 목적에 맞게 성별과 생일 데이터 필드가 제거되었습니다. 이제 사용자 생성 시 필수 정보만 수집합니다.

  1. 변경 내용:
    • birth 파라미터 제거
    • Gender.MALE 인자 제거

이 변경으로 코드가 더 간결해지고, 사용자 데이터 관리가 간소화되었습니다.

src/test/java/com/example/solidconnection/auth/service/SignInServiceTest.java (1)

76-84: 로그인 서비스 테스트에서 SiteUser 생성 간소화.

유저 정보에서 생일과 성별 데이터를 제거하는 PR 목적에 맞게 수정되었습니다.

  1. 변경 내용:
    • createSiteUser 메소드에서 birth 파라미터 제거
    • Gender 관련 파라미터 제거

이러한 변경으로 불필요한 개인정보 수집이 줄어들고 코드가 더 간결해졌습니다.

src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java (1)

141-150: 대학 추천 서비스의 사용자 생성 로직 개선.

사용자 데이터에서 생일과 성별 정보를 제거하는 PR 목적에 맞게 수정되었습니다.

  1. 변경 내용:
    • createSiteUser 메소드에서 birth 파라미터 제거
    • Gender 유형 파라미터 제거

이 변경으로 개인정보 보호가 강화되고 사용자 생성 로직이 단순화되었습니다.

src/test/java/com/example/solidconnection/custom/security/userdetails/SiteUserDetailsServiceTest.java (1)

88-96: SiteUser 생성자 매개변수가 간소화되었습니다.

이 변경사항은 PR의 주요 목적인 사용자 생년월일 및 성별 정보 제거와 일치합니다. createSiteUser() 메서드에서 다음과 같은 변경이 이루어졌습니다:

  1. 이전 코드에서 제공되던 Gender.MALE 파라미터가 제거되었습니다.
  2. 생년월일 문자열("1999-01-01")이 제거되었습니다.
  3. 생성자 호출이 간소화되어 필수 필드만 포함하게 되었습니다.

이러한 변경으로 테스트 코드가 더 간결해지고 필요한 정보만 다루게 되었습니다.

src/main/java/com/example/solidconnection/auth/dto/SignUpRequest.java (3)

11-19: SignUpRequest 레코드에서 개인정보 필드가 제거되었습니다.

SignUpRequest 레코드의 구조가 다음과 같이 변경되었습니다:

  1. Gender 필드가 제거되었습니다.
  2. birth 필드가 제거되었습니다.
  3. 레코드 선언이 더 간결해졌습니다.

이 변경은 개인정보 최소화 원칙에 부합하며, 불필요한 사용자 데이터 수집을 줄이는 좋은 변화입니다.


21-30: toOAuthSiteUser 메서드가 단순화되었습니다.

이 메서드에서 다음 변경사항이 적용되었습니다:

  1. Gender 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
  2. birth 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
  3. 결과적으로 메서드 호출이 더 간결해졌습니다.

이러한 변경으로 OAuth 사용자 생성 로직이 간소화되었습니다.


32-42: toEmailSiteUser 메서드가 단순화되었습니다.

이 메서드에서 다음 변경사항이 적용되었습니다:

  1. Gender 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
  2. birth 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
  3. 결과적으로 메서드 호출이 더 간결해졌습니다.

이러한 변경으로 이메일 기반 사용자 생성 로직이 간소화되었습니다.

src/test/java/com/example/solidconnection/e2e/DynamicFixture.java (2)

21-29: createSiteUserByEmail 메서드에서 불필요한 매개변수가 제거되었습니다.

테스트 픽스처 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:

  1. Gender.MALE 파라미터가 제거되었습니다.
  2. 생년월일 문자열("2000-01-01")이 제거되었습니다.
  3. SiteUser 생성자 호출이 더 간결해졌습니다.

이 변경으로 테스트 데이터 생성 코드가 단순화되었습니다.


31-39: createSiteUserByNickName 메서드에서 불필요한 매개변수가 제거되었습니다.

테스트 픽스처 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:

  1. Gender.MALE 파라미터가 제거되었습니다.
  2. 생년월일 문자열("2000-01-01")이 제거되었습니다.
  3. SiteUser 생성자 호출이 더 간결해졌습니다.

이 변경으로 닉네임 기반 테스트 사용자 생성 코드가 단순화되었습니다.

src/test/java/com/example/solidconnection/concurrency/PostLikeCountConcurrencyTest.java (1)

61-69: createSiteUser 메서드에서 불필요한 매개변수가 제거되었습니다.

동시성 테스트를 위한 사용자 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:

  1. Gender.MALE 파라미터가 제거되었습니다.
  2. 생년월일 문자열("1999-01-01")이 제거되었습니다.
  3. SiteUser 생성자 호출이 더 간결해졌습니다.

이 변경으로 동시성 테스트에 사용되는 테스트 사용자 생성이 간소화되었습니다.

src/test/java/com/example/solidconnection/custom/security/authentication/SiteUserAuthenticationTest.java (1)

61-69: 1. SiteUser 생성자에서 성별, 생년월일 필드 제거 적용 확인

변경 사항이 PR의 목적(유저 생일과 성별 정보 삭제)과 일치하게 잘 적용되었습니다. SiteUser 생성자에서 필요하지 않은 성별과 생년월일 필드를 제거하여 코드가 더 간결해졌습니다.

src/test/java/com/example/solidconnection/admin/service/AdminLanguageTestScoreServiceTest.java (1)

222-231: 1. createSiteUser 메서드에서 Gender, birth 매개변수 제거 확인

PR의 목적에 맞게 createSiteUser 메서드에서 성별과 생년월일 필드를 제거했습니다. 코드가 간결해졌고, 이 변경은 유저 정보 모델 간소화에 일관성 있게 적용되었습니다.

src/test/java/com/example/solidconnection/custom/security/provider/SiteUserAuthenticationProviderTest.java (1)

147-155: 1. SiteUser 생성자에서 성별, 생년월일 필드 제거

PR 목적(유저 생일과 성별 정보 삭제)에 맞게 createSiteUser 메서드에서 성별과 생년월일 매개변수가 제거되었습니다. 이 변경으로 불필요한 사용자 정보를 더 이상 저장하지 않게 되었습니다.

src/test/java/com/example/solidconnection/concurrency/PostViewCountConcurrencyTest.java (1)

64-72: 1. SiteUser 생성자에서 성별, 생년월일 필드 제거

PR 목적에 맞게 createSiteUser 메서드에서 성별과 생년월일 매개변수가 제거되었습니다. 모든 테스트 파일에서 일관되게 적용된 변경으로, 코드 유지보수성이 향상되었습니다.

src/test/java/com/example/solidconnection/custom/security/aspect/AdminAuthorizationAspectTest.java (1)

65-73: 사용자 도메인에서 필요없는 필드 제거 완료!

변경사항은 다음과 같습니다:

  1. createSiteUser 메소드에서 Gender와 birth 정보 제거
    • PR 목적에 따라 사용자 생일과 성별 정보를 제거했습니다
    • 테스트 코드가 더 간결해졌습니다
    • 실제 도메인 객체 변경에 맞게 테스트 코드도 잘 수정되었습니다

코드가 더 깔끔해졌고 PR의 목표를 잘 달성했습니다!

src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java (2)

168-224: 통합 테스트에서 사용자 생성 메소드 업데이트 완료!

변경사항은 다음과 같습니다:

  1. setUpSiteUsers 메소드에서 모든 테스트 사용자 생성 시:
    • Gender 매개변수 제거 완료
    • birth 매개변수 제거 완료
    • 총 8개의 테스트 사용자 생성 로직이 모두 정상적으로 수정되었습니다

통합 테스트에서 사용하는 사용자 객체 생성 로직이 PR 목표에 맞게 잘 수정되었습니다.


511-511: createPost 메소드 형식 수정 완료!

변경사항:

  1. 메소드 이름과 괄호 사이의 공백이 제거되었습니다
    • 코드 스타일 일관성 유지에 도움이 됩니다

작은 변경이지만 코드 스타일 일관성을 위한 좋은 수정입니다.

src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java (4)

65-73: 마이페이지 응답 검증 로직 수정 완료!

변경사항:

  1. 마이페이지 정보 조회 시 birth 필드 확인 로직 제거
    • birth 필드가 SiteUser 엔티티와 MyPageResponse에서 제거됨에 따라 관련 테스트 코드도 적절히 수정되었습니다

응답 객체에서 제거된 필드에 대한 검증 로직이 정확히 제거되었습니다.


202-211: createSiteUser 메소드에서 불필요한 필드 제거 완료!

변경사항:

  1. SiteUser 생성 시 Gender와 birth 매개변수 제거
    • PR 목표인 "유저 생일과 성별 정보를 삭제합니다"에 맞게 수정되었습니다
    • 코드가 더 간결해졌습니다

테스트용 사용자 생성 로직이 깔끔하게 정리되었습니다.


213-222: createSiteUserWithCustomProfile 메소드 매개변수 업데이트 완료!

변경사항:

  1. 커스텀 프로필을 가진 사용자 생성 시 Gender와 birth 필드 제거
    • 일관되게 모든 SiteUser 생성 로직에서 해당 필드들이 제거되었습니다

기본 사용자 생성과 동일하게 커스텀 프로필 사용자 생성 로직도 일관되게 변경되었습니다.


224-233: createDuplicatedSiteUser 메소드 매개변수 업데이트 완료!

변경사항:

  1. 중복 닉네임 테스트용 사용자 생성 시 Gender와 birth 필드 제거
    • 모든 테스트 사용자 생성 메소드에서 일관되게 해당 필드들이 제거되었습니다

중복 사용자 생성 로직도 일관되게 업데이트되어 코드 일관성이 유지되었습니다.

src/test/java/com/example/solidconnection/e2e/SignUpTest.java (1)

81-82: 회원가입 요청에서 불필요한 필드 제거 완료!

변경사항:

  1. 모든 SignUpRequest 생성 시 Gender와 birth 필드 제거

    • 4개의 테스트 케이스에서 모두 동일하게 적용되었습니다:
      • 유효한_카카오_토큰으로_회원가입한다 (81-82줄)
      • 이미_있는_닉네임으로_회원가입하면_예외를_응답한다 (129-130줄)
      • 이미_있는_이메일로_회원가입하면_예외를_응답한다 (154-155줄)
      • 유효하지_않은_카카오_토큰으로_회원가입을_하면_예외를_응답한다 (170-171줄)
  2. 관련 응답 검증 로직도 함께 제거되었습니다 (92-98줄)

E2E 테스트에서도 PR 목표에 맞게 일관되게 필드가 제거되었습니다. 회원가입 요청이 더 간결해졌고, 불필요한 개인정보 수집이 줄어들었습니다.

Also applies to: 129-130, 154-155, 170-171

src/main/java/com/example/solidconnection/siteuser/domain/SiteUser.java (1)

95-107: 코드 간소화가 잘 이루어졌습니다!

생일(birth)과 성별(gender) 필드와 관련 매개변수가 생성자에서 제거되어 코드가 더 간결해졌습니다. 다음과 같은 변경점들이 확인됩니다:

  1. 매개변수 감소

    • 불필요한 개인 정보(생일, 성별)가 제거되어 생성자가 간소화되었습니다
    • 코드 유지보수가 더 쉬워졌습니다
  2. 데이터 모델 단순화

    • 사용자 정보가 꼭 필요한 필드만 유지하게 되었습니다
    • 개인정보 보호 측면에서도 좋은 변경입니다

Flyway 마이그레이션을 통한 데이터베이스 스키마 변경도 훌륭한 접근 방식입니다.

Copy link
Contributor

@Gyuhyeok99 Gyuhyeok99 left a comment

Choose a reason for hiding this comment

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

확인했습니다!
컬럼 두 개 없애는데 23개의 테스트 클래스를 수정하는 파급효과가.... 얼른 고치겠습니다 😅

@wibaek
Copy link
Member Author

wibaek commented Apr 9, 2025

확인했습니다! 컬럼 두 개 없애는데 23개의 테스트 클래스를 수정하는 파급효과가.... 얼른 고치겠습니다 😅

보면서 '3번 이상 중복된 코드는 분리해야한다' 라는 말이 생각나더라고요! 가능하면 분리하는 것도 좋을 것 같습니다

Copy link
Collaborator

@nayonsoso nayonsoso left a comment

Choose a reason for hiding this comment

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

테스트 코드 파일 체인지... 웃프네요..
규혁님께서 test fixture 관련 작업하고 계셔서 앞으로는 정리될거라 생각합니다 ㅎㅎ

@nayonsoso
Copy link
Collaborator

nayonsoso commented Apr 9, 2025

추가)

위백님 머지 전에
"feat: 유저 생일과 성별 정보를 삭제합니다" 로 되어있는 제목을
"feat: 유저 생일과 성별 정보 삭제" 처럼 바꿔주시면 더 좋을 것 같아요!

@wibaek wibaek changed the title feat: 유저 생일과 성별 정보를 삭제합니다 feat: 유저 생일과 성별 정보 삭제 Apr 9, 2025
@wibaek wibaek merged commit e1ddbe9 into solid-connection:develop Apr 9, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants