woowacourse-teams / 2023-festa-go

🎪 페스타고, 대학 축제를 더욱 즐겁게!
71 stars 8 forks source link

[BE] feat: 사용자 기본 닉네임 정책 추가 (#972) #974

Closed seokjin8678 closed 4 months ago

seokjin8678 commented 4 months ago

📌 관련 이슈

✨ PR 세부 내용

이슈에 남긴 내용대로 사용자의 기본 닉네임 정책을 추가했습니다.

Member 엔티티에 static 메서드를 가진 클래스를 사용해서 기본 닉네임을 사용하려고 했으나..

테스트가 불가능한 문제도 있고, static 메서드를 사용하는 것이 불편해서, 객체지향적으로 구현했습니다. 😂

기본 닉네임을 정하는 것은 좋은데, 사용자가 기본 닉네임이 마음에 들지 않아 할 수 있어서, 닉네임 변경 기능이 필요하지 않을까 싶네요.

github-actions[bot] commented 4 months ago

Test Results

241 files  241 suites   30s :stopwatch: 792 tests 792 :white_check_mark: 0 :zzz: 0 :x: 811 runs  811 :white_check_mark: 0 :zzz: 0 :x:

Results for commit c536e97b.

seokjin8678 commented 4 months ago

수고하셨습니다 Member의 nickName을 공백 대신 춤추는 다람쥐 같은 걸 기본으로 하는건 어떨까요?

지금 코드에 그렇게 되어있지 않나요??

seokjin8678 commented 4 months ago

Member Entity 에 지정을 안할 경우의 기본 닉네임을 말씀 드린 겁니다👍

지금 구현에서는 공백 문자열 또는 null이 들어오면 예외를 던지게 하지 않았나요..?

응집도를 위한다면 Member에 기본 닉네임을 정하는 것이 맞겠지만, 기본 닉네임은 랜덤한 축제에 관한 형용사와 동물 명사로 정하기로 했기 때문에 , Member 엔티티에 해당 로직들이 포함되게 됩니다.

정말 간단한 기본 닉네임같은 경우는 Member 엔티티에 포함이 되는 것이 괜찮아 보이지만, 지금 같이 부가 로직이 많은 경우엔 Member 엔티티에 포함되는 것이 올바르지 않다고 느껴졌습니다.

그리고 Member에서 랜덤한 닉네임을 정하게 하려면 랜덤한 닉네임을 뽑을 문자열을 static 변수로 정의해야 하는데, 이는 테스트를 불가능하게 만듭니다.

또한 이러한 정책은 변경될 가능성이 있기에, 엔티티에 직접 구현하는 것 보다, 별도의 컴포넌트로 분리하는 게 유연성이 더 높을 것 같네요. (중복 닉네임 검증 등)

seokjin8678 commented 4 months ago

iOS 측에서 프로덕션 준비가 거의 되었기 때문에 해당 PR 머지할게요!