Skip to content

Conversation

@youz2me
Copy link
Member

@youz2me youz2me commented Jul 1, 2025

👻 PULL REQUEST

📄 작업 내용

  • 확장된 코드 컨벤션에 맞게 로그인 화면의 코드 리팩토링을 진행했어요.
  • DIContainer에 필요한 의존성을 등록하고 LoginViewModel에 의존성을 주입함으로써 불필요한 생성자 호출을 방지했어요.
  • 기존 Repository <- UseCase <- ViewModel 순으로 호출되던 로직 중 UseCase를 제거하고 ViewModel에서 바로 Repository를 선언해 사용할 수 있도록 코드를 수정했어요.
    • UseCase가 단순히 Repository를 선언하고 호출하는 역할에 그침에 따라 불필요한 로직을 없애 코드와 성능을 개선하고자 했어요.

✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!

  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.
  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.
  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.
  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.
잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

🔗 연결된 이슈

Summary by CodeRabbit

  • 버그 수정

    • 로그인 화면 및 관련 화면에서 불필요한 의존성 주입과 중복된 코드가 제거되어, 화면 전환 및 초기화가 간소화되었습니다.
    • 일부 UI 속성 및 초기화 순서가 정리되어 일관성이 향상되었습니다.
  • 리팩터

    • 로그인 관련 ViewModel 및 ViewController의 의존성 주입 방식이 간결하게 개선되었습니다.
    • 더 이상 사용하지 않는 인증 관련 클래스 및 파일이 프로젝트에서 삭제되었습니다.
    • 내부 메서드와 접근 제어자가 정리되어 코드 가독성이 향상되었습니다.
    • 로그인 화면 구성 로직이 단순화되고, 사용자 세션 및 토큰 관리가 직접 처리되도록 변경되었습니다.
    • 사용자 프로필 업데이트 메서드 호출 방식이 명확해졌습니다.
  • 스타일

    • 주석 및 메서드 정렬, UI 속성 설정 순서가 개선되었습니다.
    • Lottie 애니메이션 관련 코드 정리 및 주석 수정이 이루어졌습니다.
  • 기타

    • PR 템플릿의 코드 리뷰 체크리스트가 접이식으로 변경되어 가독성이 향상되었습니다.

@youz2me youz2me requested a review from JinUng41 July 1, 2025 01:22
@youz2me youz2me self-assigned this Jul 1, 2025
@youz2me youz2me added the ♻️ refactor 기존 코드를 리팩토링하거나 수정하는 등 사용 (생산적인 경우) label Jul 1, 2025
@youz2me youz2me added this to Wable-iOS Jul 1, 2025
@youz2me youz2me added the 🦉 유진 🛌🛌🛌🛌🛌🛌🛌🛌🛌🛌 label Jul 1, 2025
@coderabbitai
Copy link

coderabbitai bot commented Jul 1, 2025

"""

Walkthrough

로그인 화면 및 관련 의존성 주입, 뷰모델, 컨트롤러 코드가 리팩토링되었습니다. 여러 UseCase 및 리포지토리의 명시적 주입이 제거되고, 뷰모델 내부에서 직접 리포지토리와 토큰 스토리지를 사용하도록 변경되었습니다. FetchUserAuthUseCase가 완전히 삭제되었습니다.

Changes

파일/경로 요약 변경 내용 요약
Wable-iOS.xcodeproj/project.pbxproj FetchUserAuthUseCase.swift 및 Login 그룹 참조 삭제, UpdateFCMTokenUseCase.swift 참조 정리 및 위치 이동
Wable-iOS/App/AppDelegate+InjectDependency.swift UserSessionRepository, LoginRepository, TokenStorage 의존성 등록 추가
Wable-iOS/App/SceneDelegate.swift
Wable-iOS/Presentation/Profile/My/View/MyProfileViewController.swift
Wable-iOS/Presentation/Profile/Withdrawal/Guide/View/WithdrawalGuideViewController.swift
LoginViewModel 및 LoginViewController 생성 시 UseCase/Repository 주입 코드 제거, 기본 생성자 사용으로 변경
Wable-iOS/Data/RepositoryImpl/ProfileRepositoryImpl.swift updateUserProfile 메서드 파라미터의 기본값(nil) 제거, 명시적 인자 전달 필요
Wable-iOS/Domain/UseCase/Login/FetchUserAuthUseCase.swift FetchUserAuthUseCase 전체 파일 삭제
Wable-iOS/Presentation/Login/LoginViewController.swift setupView() 제거, setupConstraint()로 통합, UI 속성 순서 정리, navigateToOnboarding/navigateToHome 접근제어 internal로 변경, init(coder:) unavailable로 지정
Wable-iOS/Presentation/Login/LoginViewModel.swift UseCase 의존성 제거, 리포지토리/토큰스토리지 직접 사용, 내부 메서드로 토큰 및 세션 업데이트 로직 분리, 생성자 변경
Wable-iOS/Presentation/Splash/SplashViewController.swift Lottie 애니메이션 완료 핸들러 간소화, 주석 정정, setupView/setupConstraint 내 subview 추가 위치 변경 (기능 동일)

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant LoginViewController
    participant LoginViewModel
    participant LoginRepository
    participant UserSessionRepository
    participant TokenStorage
    participant ProfileRepository

    User->>LoginViewController: 로그인 버튼 탭
    LoginViewController->>LoginViewModel: fetchUserAuth 호출
    LoginViewModel->>LoginRepository: fetchUserAuth(platform)
    LoginRepository-->>LoginViewModel: Account 반환
    LoginViewModel->>TokenStorage: updateToken(accessToken, refreshToken)
    LoginViewModel->>UserSessionRepository: updateUserSession(account)
    LoginViewModel-->>LoginViewController: 로그인 성공/실패 알림
Loading

Assessment against linked issues

Objective Addressed Explanation
로그인 화면 코드 리팩토링 (257)

Assessment against linked issues: Out-of-scope changes

(해당 변경사항에는 linked issue의 범위를 벗어난 기능적 코드 변경이 발견되지 않았습니다.)
"""


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4150a8e and e617c39.

📒 Files selected for processing (1)
  • .github/PULL_REQUEST_TEMPLATE.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .github/PULL_REQUEST_TEMPLATE.md

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary or `` to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🔭 Outside diff range comments (1)
Wable-iOS/Presentation/Login/LoginViewModel.swift (1)

113-135: 비동기 프로필 업데이트 로직의 오류 처리 개선 고려

updateUserProfile 메서드에서 try await를 사용하지만 해당 오류가 catch되지 않아 Task가 실패할 수 있습니다.

다음과 같이 수정하여 비동기 오류를 적절히 처리하는 것을 권장합니다:

    func updateUserProfile(userID: Int, cancelBag: CancelBag) {
        Task {
-            let authorizedStatus = await UNUserNotificationCenter.current().notificationSettings().authorizationStatus
-            let isAuthorized = authorizedStatus == .authorized
-            let profile = try await profileRepository.fetchUserProfile(memberID: userID)
+            do {
+                let authorizedStatus = await UNUserNotificationCenter.current().notificationSettings().authorizationStatus
+                let isAuthorized = authorizedStatus == .authorized
+                let profile = try await profileRepository.fetchUserProfile(memberID: userID)
                
-            profileRepository.updateUserProfile(
+                profileRepository.updateUserProfile(
                    profile: profile,
                    isPushAlarmAllowed: isAuthorized,
                    isAlarmAllowed: nil,
                    image: nil,
                    fcmToken: nil,
                    defaultProfileType: nil
                )
                .catch { error -> AnyPublisher<Void, Never> in
                    self.loginErrorSubject.send(error)
                    return .just(())
                }
                .sink(receiveValue: {})
                .store(in: cancelBag)
+            } catch {
+                let wableError = ErrorMapper.map(error)
+                self.loginErrorSubject.send(wableError)
+            }
        }
    }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e96914e and eb402bb.

📒 Files selected for processing (10)
  • Wable-iOS.xcodeproj/project.pbxproj (4 hunks)
  • Wable-iOS/App/AppDelegate+InjectDependency.swift (1 hunks)
  • Wable-iOS/App/SceneDelegate.swift (1 hunks)
  • Wable-iOS/Data/RepositoryImpl/ProfileRepositoryImpl.swift (1 hunks)
  • Wable-iOS/Domain/UseCase/Login/FetchUserAuthUseCase.swift (0 hunks)
  • Wable-iOS/Presentation/Login/LoginViewController.swift (4 hunks)
  • Wable-iOS/Presentation/Login/LoginViewModel.swift (3 hunks)
  • Wable-iOS/Presentation/Profile/My/View/MyProfileViewController.swift (1 hunks)
  • Wable-iOS/Presentation/Profile/Withdrawal/Guide/View/WithdrawalGuideViewController.swift (1 hunks)
  • Wable-iOS/Presentation/Splash/SplashViewController.swift (2 hunks)
💤 Files with no reviewable changes (1)
  • Wable-iOS/Domain/UseCase/Login/FetchUserAuthUseCase.swift
🧰 Additional context used
🧬 Code Graph Analysis (1)
Wable-iOS/App/AppDelegate+InjectDependency.swift (1)
Wable-iOS/Core/DI/DIContainer.swift (2)
  • register (35-37)
  • register (39-41)
🔇 Additional comments (17)
Wable-iOS/Presentation/Splash/SplashViewController.swift (3)

21-21: 코드 간소화 잘 적용됨

completion handler를 한 줄로 단순화하여 가독성이 개선되었습니다.


25-25: 주석 개선 잘 적용됨

주석이 더 정확하고 구체적으로 개선되었습니다.

Also applies to: 35-35


43-43: 논리적 그룹핑 개선

addSubview 호출을 setupConstraint() 메서드로 이동하여 관련 코드를 한곳에 모으는 것이 좋은 개선입니다.

Wable-iOS/App/AppDelegate+InjectDependency.swift (1)

15-26: 의존성 주입 등록이 올바르게 구현됨

새로운 의존성들이 적절한 구현체와 함께 등록되었고, 기존 패턴과 일관성을 유지하고 있습니다. 로그인 관련 아키텍처 리팩토링을 잘 지원하는 변경입니다.

Wable-iOS/Presentation/Profile/Withdrawal/Guide/View/WithdrawalGuideViewController.swift (1)

102-102: 의존성 주입 단순화가 올바르게 적용됨

LoginViewModel 생성이 크게 단순화되어 코드 복잡성이 감소했습니다. DI Container를 통한 의존성 주입 패턴으로 전환된 것이 PR 목적과 일치합니다.

Wable-iOS/App/SceneDelegate.swift (1)

63-63: 앱 시작 시 로그인 화면 설정 단순화 완료

SceneDelegate에서도 LoginViewModel 생성이 일관되게 단순화되어 전체 앱에서 통일된 의존성 주입 패턴을 사용하고 있습니다.

Wable-iOS/Presentation/Profile/My/View/MyProfileViewController.swift (1)

468-468: 로그아웃 플로우에서도 일관된 단순화 적용

프로필 화면의 로그아웃 시에도 동일한 패턴으로 LoginViewController 생성이 단순화되어 전체 앱에서 일관성이 유지되고 있습니다.

Wable-iOS.xcodeproj/project.pbxproj (3)

146-146: UpdateFCMTokenUseCase 빌드 파일 추가가 적절합니다.

UpdateFCMTokenUseCase.swift가 프로젝트 빌드에 포함되도록 설정되었습니다. 이는 기존 Login 그룹에서 Onboarding 그룹으로 이동한 파일이 여전히 빌드 대상에 포함되어 있음을 의미합니다.


523-523: 파일 참조가 올바르게 유지되었습니다.

UpdateFCMTokenUseCase.swift 파일의 참조가 적절하게 설정되어 있으며, 파일이 프로젝트에서 인식되도록 되어 있습니다.


1513-1513: UseCase 그룹 구조 개선이 완료되었습니다.

UpdateFCMTokenUseCase.swiftOnboarding 그룹 하위로 이동되었습니다. 이는 PR 목표에서 언급한 "Login 그룹에서 Onboarding 그룹으로 이동"과 일치하며, 기능적으로 더 적절한 위치로 보입니다. FCM 토큰 업데이트는 로그인보다는 온보딩 과정의 일부로 분류하는 것이 합리적입니다.

Wable-iOS/Data/RepositoryImpl/ProfileRepositoryImpl.swift (1)

91-98: 기존 메서드 오버로드로 하위 호환성 유지 확인됨

새로운 updateUserProfile(profile:isPushAlarmAllowed:isAlarmAllowed:image:fcmToken:defaultProfileType:) 메서드를 추가하면서
기존의 updateUserProfile(nickname:fcmToken:) 오버로드도 여전히 남아 있어
SceneDelegate, UpdateFCMTokenUseCase 등 기존 호출부가 모두 정상 작동합니다.
따라서 호출 지점을 일괄 수정할 필요 없이 API 변경에 따른 문제가 발생하지 않습니다.

Likely an incorrect or invalid review comment.

Wable-iOS/Presentation/Login/LoginViewModel.swift (2)

20-23: 의존성 주입을 통한 깔끔한 아키텍처 개선

@Injected 속성을 사용한 의존성 주입 방식으로 변경하고 UseCase 레이어를 제거한 것은 불필요한 추상화를 줄이고 코드를 단순화하는 좋은 개선입니다.


77-99: 토큰 및 사용자 세션 관리 로직 개선

새로 추가된 updateTokenupdateUserSession 헬퍼 메서드는 관심사를 잘 분리하고 코드 가독성을 높였습니다. 토큰 저장 실패 시 오류 처리도 적절히 구현되어 있습니다.

Wable-iOS/Presentation/Login/LoginViewController.swift (4)

34-39: UI 컴포넌트 속성 설정 순서 정리

titleLabel의 속성 설정 순서를 일관성 있게 정리한 것이 코드 가독성을 향상시켰습니다.


69-72: 초기화 메서드 개선

@available(*, unavailable) 속성을 사용하여 지원하지 않는 초기화 메서드를 명시적으로 표시한 것이 더 명확한 API 설계입니다.


84-127: 설정 메서드 통합으로 코드 구조 개선

setupView()setupConstraint() 메서드를 하나로 통합하고 뷰 추가와 제약 조건 설정을 함께 처리하도록 변경한 것이 코드 구조를 단순화하고 유지보수성을 향상시켰습니다.


175-201: 헬퍼 메서드 구조 정리

내비게이션 관련 헬퍼 메서드들을 별도 extension으로 분리하여 코드 구조를 더욱 명확하게 정리했습니다.

@youz2me youz2me changed the title [Refactor] 로그인 화면 의존성 주입, UseCase 삭제 [Refactor] 로그인 화면 의존성 주입 및 아키텍처 개선 Jul 1, 2025
Copy link
Collaborator

@JinUng41 JinUng41 left a comment

Choose a reason for hiding this comment

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

DI를 미리 등록해두니, 코드가 확실히 깔끔해진 것 같아요.

PR에서 체크리스트가 차지하는 부분이 과도하게 많은 것 같아요.
해당 부분은 토글 형태로 구현해도 좋을 것 같습니다.
아래와 같은 형태는 어떨까요?


✅ 체크리스트

잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

@github-project-automation github-project-automation bot moved this to In Review in Wable-iOS Jul 1, 2025
@youz2me
Copy link
Member Author

youz2me commented Jul 1, 2025

@JinUng41

PR에서 체크리스트가 차지하는 부분이 과도하게 많은 것 같아요.
해당 부분은 토글 형태로 구현해도 좋을 것 같습니다.
아래와 같은 형태는 어떨까요?

토글 형태로 체크리스트를 넣으면 나중에는 귀찮아서 보지 않는(ㅠㅠ) 이슈가 생길 것 같아 따로 토글로 넣지는 않았습니다.
현재 체크리스트 형식으로 되어있어 더 그래보이는 것 같은데, 원래는 저 중에서 필요한 내용만 골라 리뷰어에게 중점적으로 봐주기를 요청하는 형식으로 템플릿을 수정하고자 했습니다. 뭔가 쓰다보니 다 필수로 보는 게 맞는 것 같아(ㅎㅎ) 체크리스트 형식으로 바꾸긴 했지만요.
따라서 아래와 같이 수정하는 것을 제안드립니다.

✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!

<!-- 해당 토글 내에 있는 항목 중 리뷰어가 중점적으로 봐주었으면 하는 부분은 토글 밖으로 이동해주세요. -->
<!-- 해당 토글 내에 있는 항목이 아니더라도 중점적으로 봐주었으면 하는 부분이 있다면 자유롭게 추가해주세요. -->
<!-- 토글 내에 있는 항목들은 PR 게시 전 점검해주세요! -->

잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.


아래와 같이 사용 가능합니다.

✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!

  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.
  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.
  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.
  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.
잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

@JinUng41
Copy link
Collaborator

JinUng41 commented Jul 1, 2025

@JinUng41

PR에서 체크리스트가 차지하는 부분이 과도하게 많은 것 같아요.

해당 부분은 토글 형태로 구현해도 좋을 것 같습니다.

아래와 같은 형태는 어떨까요?

토글 형태로 체크리스트를 넣으면 나중에는 귀찮아서 보지 않는(ㅠㅠ) 이슈가 생길 것 같아 따로 토글로 넣지는 않았습니다.

현재 체크리스트 형식으로 되어있어 더 그래보이는 것 같은데, 원래는 저 중에서 필요한 내용만 골라 리뷰어에게 중점적으로 봐주기를 요청하는 형식으로 템플릿을 수정하고자 했습니다. 뭔가 쓰다보니 다 필수로 보는 게 맞는 것 같아(ㅎㅎ) 체크리스트 형식으로 바꾸긴 했지만요.

따라서 아래와 같이 수정하는 것을 제안드립니다.

✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!

<!-- 해당 토글 내에 있는 항목 중 리뷰어가 중점적으로 봐주었으면 하는 부분은 토글 밖으로 이동해주세요. -->

<!-- 해당 토글 내에 있는 항목이 아니더라도 중점적으로 봐주었으면 하는 부분이 있다면 자유롭게 추가해주세요. -->

<!-- 토글 내에 있는 항목들은 PR 게시 전 점검해주세요! -->

잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.


아래와 같이 사용 가능합니다.

✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!

  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

잠깐 확인하고 갈까요?
  • 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.

  • 한 줄당 120자 제한을 준수했는지 확인해주세요.

  • MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

  • 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.

  • 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.

  • 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.

  • 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

  • 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.

  • 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.

  • 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

넵 확인했습니당

@youz2me youz2me merged commit 5892d95 into develop Jul 1, 2025
1 check was pending
@youz2me youz2me deleted the refactor/#257-login branch July 1, 2025 08:09
@github-project-automation github-project-automation bot moved this from In Review to Done in Wable-iOS Jul 1, 2025
youz2me added a commit that referenced this pull request Oct 26, 2025
[Refactor] 로그인 화면 의존성 주입 및 아키텍처 개선
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ refactor 기존 코드를 리팩토링하거나 수정하는 등 사용 (생산적인 경우) 🦉 유진 🛌🛌🛌🛌🛌🛌🛌🛌🛌🛌

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Refactor] 로그인 화면 코드 리팩토링

3 participants