Skip to content
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

feat: 알송파트 유즈케이스 적용 #666

Open
wants to merge 16 commits into
base: chongdae
Choose a base branch
from

Conversation

songpink
Copy link
Contributor

📌 관련 이슈

close #663

✨ 작업 내용

알송파트에 유즈케이스 적용했습니다 다음 뷰모델에 적용되었습니다

  • LoginViewModel
  • OfferingWriteViewModel
  • OfferingModifyViewModel
  • CommentRoomsViewModel

📚 기타

다른 분들도 유즈케이스 적용하시다보면 Hilt로 유즈케이스를 뷰모델에 주입해야 할텐데, 제가 만들어 둔 Qualifier, DependencyModule 파일에다가 추가로 작성하시면 됩니다. (아직 이슈가 안올라온 것으로 보아 다른 사람들 아직 시작 안한것으로 판단함)

@songpink songpink self-assigned this Dec 16, 2024
@songpink songpink changed the base branch from chongdae to develop December 19, 2024 11:35
@songpink songpink changed the base branch from develop to chongdae December 19, 2024 11:49
Copy link
Contributor

@chaehyuns chaehyuns left a comment

Choose a reason for hiding this comment

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

와우 알송 많은 코드를 수정해주셨네요...!
너무 많은 양이어서 일단 코멘트 남기고 나중에 더 남길게요!!


@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class CheckAlreadyLoggedInUseCaseQualifier
Copy link
Contributor

Choose a reason for hiding this comment

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

usecase 구현체가 1개 인것으로 하는데 굳이 Qualifier를 설정하는 이유가 궁금해요!!
제가 모르는 다른 이유가 있나요? 🧐

Copy link
Contributor Author

@songpink songpink Dec 21, 2024

Choose a reason for hiding this comment

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

일단은 구현체가 추가될 것에 대비해서 Qualifier를 설정 해두었습니다.

usecase를 추상화 하지 않아도 된다라는 피드백이라면, 목요일에 서기와도 얘기를 했던 부분인데요,
https://mashup-android.vercel.app/mashup-11th/heejin/useCase/useCase/
위 링크에서 usecase를 interface로 추상화 했길래, 저도 추상화 했습니다.

서기도 usecase를 추상화 할 필요까지는 없다는 의견을 주었는데요, 저도 대체적으로 동의하지만 저는 usecase를 처음 적용해 보는 것이기도 해서 위 블로그 내용을 최대한 따라하려고 노력했고, 또 확장성의 관점에서 usecase를 추상화 함으로써 비즈니스 로직이 바뀔 경우 구현체만 교체하는 방식으로 수정이 용이해지는 장점이 있다고 생각해서 이렇게 구현했습니다. 서기와 채채는 usecase를 추상화 하지 않고 구현해도 된다고 생각합니다!

when (result.error) {
DataError.Network.UNAUTHORIZED -> {
when (authRepository.saveRefresh()) {
is Result.Success -> invoke(multipartBody)
Copy link
Contributor

Choose a reason for hiding this comment

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

이렇게 재귀를 하게 되면 생기는 문제가 있을 듯합돠

Copy link
Contributor Author

Choose a reason for hiding this comment

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

어떤 문제가 있을까요..? 잘 모르겠어서 다시 질문 드립니다.

지금 구현이 usecase 적용 전과 똑같이 동작한다고 생각되는데, 그렇지 않은 걸까요?

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