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

task #273 채널 생성 및 삭제 시점 변경 #275

Merged
merged 9 commits into from
Nov 30, 2024

Conversation

INYEKIM
Copy link
Collaborator

@INYEKIM INYEKIM commented Nov 29, 2024

💡 요약 및 이슈

채널 생성 및 삭제 시점을 변경했습니다.

📃 작업내용

  • 채널 생성 시점 변경
  • 채널 삭제 지우기
  • 유효성검사 로직 수정
  • cell 리스트에서 이름 변경

🙋‍♂️ 리뷰노트

  1. 닉네임 유효성검사가 끝나고 UserDefaults에 저장하는 메소드에서 채널 생성 유즈케이스를 실행해줬습니다.
   private func save(for name: String?) {
        guard let name else { return }
        UserDefaults.standard.set(name, forKey: "USER_NAME")
        
        let savedName = UserDefaults.standard.string(forKey: "USER_NAME")
        
        createChannelUsecase.execute(name: "Guest")
            .sink { _ in
            } receiveValue: { [weak self] channelEntity in
                UserDefaults.standard.set(channelEntity.id, forKey: "CHANNEL_ID")
                let savedID = UserDefaults.standard.string(forKey: "CHANNEL_ID")
                
                self?.output.isSaved.send(savedName == name && savedID != nil)
            }
            .store(in: &cancellables)
    }

보통 Usecase를 실행하는 메소드를 따로 빼서 구현되어 있거나, input으로 스트림을 처리할 때 진행하던데 위와 같이하는게 좋을지 따로 메소드로 빼는게 좋을지 고민했습니다.
결과적으로 output으로 보낼 때 닉네임이 제대로 저장되었는지와 채널 id가 저장되었는지 2개를 확인해야했기에 하나의 메소드 안에 같이 있는게 좋을 것 같다고 판단했습니다.
보시기에 어떠신가요?

  1. DeleteChannelUsecase는 혹시 몰라서 남겨뒀는데 삭제하는게 좋을까요?

✅ PR 체크리스트

  • 이 작업으로 인해 변경이 필요한 문서가 변경되었나요? (e.g. XCConfig, 노션, README)
  • 이 작업을 하고나서 공유해야할 팀원들에게 공유되었나요? (e.g. "API 개발 완료됐어요", "XCConfig 값 추가되었어요")
  • 작업한 코드가 정상적으로 동작하나요?
  • Merge 대상 브랜치가 올바른가요?
  • PR과 관련 없는 작업이 있지는 않나요?

🎸 기타

@INYEKIM INYEKIM requested a review from hyunjuntyler November 29, 2024 16:13
@INYEKIM INYEKIM self-assigned this Nov 29, 2024
@INYEKIM INYEKIM added the chore 간단한 작업 label Nov 29, 2024
UserDefaults.standard.set(channelEntity.id, forKey: "CHANNEL_ID")
let savedID = UserDefaults.standard.string(forKey: "CHANNEL_ID")

self?.output.isSaved.send(savedName == name && savedID != nil)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
self?.output.isSaved.send(savedName == name && savedID != nil)
self?.output.isSaved.send(savedName == name && savedID == channelEntity.id)

nil 값 확인이 아닌 channelEntity.id와 비교하는 것도 좋을 것 같아요.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

그방법도 좋은 것 같습니다! 다음에 수정해서 반영해두겠습니다!

Copy link
Collaborator

@hyunjuntyler hyunjuntyler left a comment

Choose a reason for hiding this comment

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

usecase를 멋지게 갈아끼워서 넣으셨군요~!~! 👍 유효성 검사 부분에서도 많이 생각하신게 보여서 넘 인상적으로 봤습니당 👍

Comment on lines -60 to -61
createChannelUsecase: createChannelUsecase,
deleteChannelUsecase: deleteChannelUsecase,
Copy link
Collaborator

Choose a reason for hiding this comment

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

usecase 2개가 덜어졌네요!! 👀🥹👍

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

👍🏻

private var channelDescription: String = ""
private var channel: ChannelEntity?
private var channelID = UserDefaults.standard.string(forKey: "CHANNEL_ID")
Copy link
Collaborator

Choose a reason for hiding this comment

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

이렇게 하면 init 될때만 가져오기때문에 당장은 문제가 없지만 추후 채널 아이디가 변경될 경우 (새로운 채널을 생성했을때?) 고려해야할 부분 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

오, 그 부분도 생각을 해야될 것 같습니다! 지금 유저입장에서는 닉네임이 자기 채널처럼 보이기 때문에 아마 닉네임쪽이랑 같이 변경되어야할 것 같긴합니다!

@INYEKIM INYEKIM merged commit 8510dcc into develop Nov 30, 2024
2 checks passed
@INYEKIM INYEKIM deleted the task/change_make_channel_logic branch November 30, 2024 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore 간단한 작업
Projects
None yet
Development

Successfully merging this pull request may close these issues.

채널 생성 및 삭제 시점 변경
3 participants