-
Notifications
You must be signed in to change notification settings - Fork 8
feat: 유저 생일과 성별 정보 삭제 #275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Walkthrough
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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: 가입 방법에 따라서 정해진 인자만 받고, 그렇지 않을 경우 예외 발생하도록 수정 필요
변경 제안
- 필드 제거 후에도 이 TODO가 여전히 필요한지 확인해주세요
- 생성자 오버로딩 패턴이 간소화되었으니 팩토리 메서드 패턴 도입을 고려해보세요
팩토리 메서드 예시
createKakaoUser(),createEmailUser()등의 정적 팩토리 메서드를 만들어 생성자 용도를 명확히 할 수 있습니다- 이를 통해 잘못된 생성자 사용으로 인한 오류를 방지할 수 있습니다
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 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 마이그레이션 적절히 구현되었습니다.
- 데이터베이스 스키마 변경 사항:
- 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 문이 올바르게 수정되었습니다.
- 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 목적에 맞게 유저 생일과 성별 정보가 성공적으로 제거되었습니다. 이 변경으로 사용자 정보 관리가 간소화되었습니다.
- 변경 내용:
- SiteUser 생성자에서 birth 필드 제거
- Gender 파라미터 제거
코드가 더 간결해졌고, 불필요한 개인정보를 수집하지 않는 방향으로 개선되었습니다.
src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java (1)
155-164: SiteUser 생성자에서 유저 생일과 성별 정보가 제거되었습니다.PR 목적에 맞게 성별과 생일 데이터 필드가 제거되었습니다. 이제 사용자 생성 시 필수 정보만 수집합니다.
- 변경 내용:
- birth 파라미터 제거
- Gender.MALE 인자 제거
이 변경으로 코드가 더 간결해지고, 사용자 데이터 관리가 간소화되었습니다.
src/test/java/com/example/solidconnection/auth/service/SignInServiceTest.java (1)
76-84: 로그인 서비스 테스트에서 SiteUser 생성 간소화.유저 정보에서 생일과 성별 데이터를 제거하는 PR 목적에 맞게 수정되었습니다.
- 변경 내용:
- createSiteUser 메소드에서 birth 파라미터 제거
- Gender 관련 파라미터 제거
이러한 변경으로 불필요한 개인정보 수집이 줄어들고 코드가 더 간결해졌습니다.
src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java (1)
141-150: 대학 추천 서비스의 사용자 생성 로직 개선.사용자 데이터에서 생일과 성별 정보를 제거하는 PR 목적에 맞게 수정되었습니다.
- 변경 내용:
- createSiteUser 메소드에서 birth 파라미터 제거
- Gender 유형 파라미터 제거
이 변경으로 개인정보 보호가 강화되고 사용자 생성 로직이 단순화되었습니다.
src/test/java/com/example/solidconnection/custom/security/userdetails/SiteUserDetailsServiceTest.java (1)
88-96: SiteUser 생성자 매개변수가 간소화되었습니다.이 변경사항은 PR의 주요 목적인 사용자 생년월일 및 성별 정보 제거와 일치합니다.
createSiteUser()메서드에서 다음과 같은 변경이 이루어졌습니다:
- 이전 코드에서 제공되던 Gender.MALE 파라미터가 제거되었습니다.
- 생년월일 문자열("1999-01-01")이 제거되었습니다.
- 생성자 호출이 간소화되어 필수 필드만 포함하게 되었습니다.
이러한 변경으로 테스트 코드가 더 간결해지고 필요한 정보만 다루게 되었습니다.
src/main/java/com/example/solidconnection/auth/dto/SignUpRequest.java (3)
11-19: SignUpRequest 레코드에서 개인정보 필드가 제거되었습니다.SignUpRequest 레코드의 구조가 다음과 같이 변경되었습니다:
- Gender 필드가 제거되었습니다.
- birth 필드가 제거되었습니다.
- 레코드 선언이 더 간결해졌습니다.
이 변경은 개인정보 최소화 원칙에 부합하며, 불필요한 사용자 데이터 수집을 줄이는 좋은 변화입니다.
21-30: toOAuthSiteUser 메서드가 단순화되었습니다.이 메서드에서 다음 변경사항이 적용되었습니다:
- Gender 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
- birth 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
- 결과적으로 메서드 호출이 더 간결해졌습니다.
이러한 변경으로 OAuth 사용자 생성 로직이 간소화되었습니다.
32-42: toEmailSiteUser 메서드가 단순화되었습니다.이 메서드에서 다음 변경사항이 적용되었습니다:
- Gender 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
- birth 파라미터가 더 이상 SiteUser 생성자에 전달되지 않습니다.
- 결과적으로 메서드 호출이 더 간결해졌습니다.
이러한 변경으로 이메일 기반 사용자 생성 로직이 간소화되었습니다.
src/test/java/com/example/solidconnection/e2e/DynamicFixture.java (2)
21-29: createSiteUserByEmail 메서드에서 불필요한 매개변수가 제거되었습니다.테스트 픽스처 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:
- Gender.MALE 파라미터가 제거되었습니다.
- 생년월일 문자열("2000-01-01")이 제거되었습니다.
- SiteUser 생성자 호출이 더 간결해졌습니다.
이 변경으로 테스트 데이터 생성 코드가 단순화되었습니다.
31-39: createSiteUserByNickName 메서드에서 불필요한 매개변수가 제거되었습니다.테스트 픽스처 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:
- Gender.MALE 파라미터가 제거되었습니다.
- 생년월일 문자열("2000-01-01")이 제거되었습니다.
- SiteUser 생성자 호출이 더 간결해졌습니다.
이 변경으로 닉네임 기반 테스트 사용자 생성 코드가 단순화되었습니다.
src/test/java/com/example/solidconnection/concurrency/PostLikeCountConcurrencyTest.java (1)
61-69: createSiteUser 메서드에서 불필요한 매개변수가 제거되었습니다.동시성 테스트를 위한 사용자 생성 메서드에서 다음과 같은 변경사항이 적용되었습니다:
- Gender.MALE 파라미터가 제거되었습니다.
- 생년월일 문자열("1999-01-01")이 제거되었습니다.
- 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: 사용자 도메인에서 필요없는 필드 제거 완료!변경사항은 다음과 같습니다:
createSiteUser메소드에서 Gender와 birth 정보 제거
- PR 목적에 따라 사용자 생일과 성별 정보를 제거했습니다
- 테스트 코드가 더 간결해졌습니다
- 실제 도메인 객체 변경에 맞게 테스트 코드도 잘 수정되었습니다
코드가 더 깔끔해졌고 PR의 목표를 잘 달성했습니다!
src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java (2)
168-224: 통합 테스트에서 사용자 생성 메소드 업데이트 완료!변경사항은 다음과 같습니다:
setUpSiteUsers메소드에서 모든 테스트 사용자 생성 시:
- Gender 매개변수 제거 완료
- birth 매개변수 제거 완료
- 총 8개의 테스트 사용자 생성 로직이 모두 정상적으로 수정되었습니다
통합 테스트에서 사용하는 사용자 객체 생성 로직이 PR 목표에 맞게 잘 수정되었습니다.
511-511: createPost 메소드 형식 수정 완료!변경사항:
- 메소드 이름과 괄호 사이의 공백이 제거되었습니다
- 코드 스타일 일관성 유지에 도움이 됩니다
작은 변경이지만 코드 스타일 일관성을 위한 좋은 수정입니다.
src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java (4)
65-73: 마이페이지 응답 검증 로직 수정 완료!변경사항:
- 마이페이지 정보 조회 시 birth 필드 확인 로직 제거
- birth 필드가 SiteUser 엔티티와 MyPageResponse에서 제거됨에 따라 관련 테스트 코드도 적절히 수정되었습니다
응답 객체에서 제거된 필드에 대한 검증 로직이 정확히 제거되었습니다.
202-211: createSiteUser 메소드에서 불필요한 필드 제거 완료!변경사항:
- SiteUser 생성 시 Gender와 birth 매개변수 제거
- PR 목표인 "유저 생일과 성별 정보를 삭제합니다"에 맞게 수정되었습니다
- 코드가 더 간결해졌습니다
테스트용 사용자 생성 로직이 깔끔하게 정리되었습니다.
213-222: createSiteUserWithCustomProfile 메소드 매개변수 업데이트 완료!변경사항:
- 커스텀 프로필을 가진 사용자 생성 시 Gender와 birth 필드 제거
- 일관되게 모든 SiteUser 생성 로직에서 해당 필드들이 제거되었습니다
기본 사용자 생성과 동일하게 커스텀 프로필 사용자 생성 로직도 일관되게 변경되었습니다.
224-233: createDuplicatedSiteUser 메소드 매개변수 업데이트 완료!변경사항:
- 중복 닉네임 테스트용 사용자 생성 시 Gender와 birth 필드 제거
- 모든 테스트 사용자 생성 메소드에서 일관되게 해당 필드들이 제거되었습니다
중복 사용자 생성 로직도 일관되게 업데이트되어 코드 일관성이 유지되었습니다.
src/test/java/com/example/solidconnection/e2e/SignUpTest.java (1)
81-82: 회원가입 요청에서 불필요한 필드 제거 완료!변경사항:
모든 SignUpRequest 생성 시 Gender와 birth 필드 제거
- 4개의 테스트 케이스에서 모두 동일하게 적용되었습니다:
- 유효한_카카오_토큰으로_회원가입한다 (81-82줄)
- 이미_있는_닉네임으로_회원가입하면_예외를_응답한다 (129-130줄)
- 이미_있는_이메일로_회원가입하면_예외를_응답한다 (154-155줄)
- 유효하지_않은_카카오_토큰으로_회원가입을_하면_예외를_응답한다 (170-171줄)
관련 응답 검증 로직도 함께 제거되었습니다 (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) 필드와 관련 매개변수가 생성자에서 제거되어 코드가 더 간결해졌습니다. 다음과 같은 변경점들이 확인됩니다:
매개변수 감소
- 불필요한 개인 정보(생일, 성별)가 제거되어 생성자가 간소화되었습니다
- 코드 유지보수가 더 쉬워졌습니다
데이터 모델 단순화
- 사용자 정보가 꼭 필요한 필드만 유지하게 되었습니다
- 개인정보 보호 측면에서도 좋은 변경입니다
Flyway 마이그레이션을 통한 데이터베이스 스키마 변경도 훌륭한 접근 방식입니다.
Gyuhyeok99
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인했습니다!
컬럼 두 개 없애는데 23개의 테스트 클래스를 수정하는 파급효과가.... 얼른 고치겠습니다 😅
보면서 '3번 이상 중복된 코드는 분리해야한다' 라는 말이 생각나더라고요! 가능하면 분리하는 것도 좋을 것 같습니다 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트 코드 파일 체인지... 웃프네요..
규혁님께서 test fixture 관련 작업하고 계셔서 앞으로는 정리될거라 생각합니다 ㅎㅎ
추가)위백님 머지 전에 |
관련 이슈
없음
작업 내용
특이 사항
리뷰 요구사항 (선택)