[Refactor] #264 - 유저 소셜 로그인 전략 패턴 적용 #266
Merged
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.
🚀PullRequest🚀
📟 관련 이슈
💻 작업 내용
유저 소셜 로그인에 전략 패턴을 적용하였습니다.
기존 UserService에서 로그인 로직을 수행하고 있었는데 UserService에 너무 과중한 책임이 부여되어 코드 길이가 굉장히 길었습니다. 이에 따라 코드 가독성이 낮아지고 의존성 주입된 객체들이 10개가 넘어가는 상황에서 분리가 필요하겠다고 생각하였습니다. 또한 switch case 분기를 통해 로직을 분리하던 것을 전략 패턴을 적용함으로써 SRP를 지키도록 만들어보았습니다.
API 테스트는 해보았고 입력에 지원되지 않는 소셜 플랫폼이 입력된다면 예외를 발생시키도록 하였습니다. 또한 바로 예외를 던지는 것이 아니라 SocialLoginContext의 support 메소드를 통해 가독성 있게 처리하도록 하였습니다.
또한 USER_RETENTION_PERIOD가 User 엔티티 최상단에 존재하는 부분이 이질적으로 느껴져 이를 UserConstants로 분리하여 적용하도록 하였습니다.
📝 리뷰 노트