Skip to content
Merged
36 changes: 23 additions & 13 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,29 @@ Prefix [#이슈번호] 작업 설명
## 👀 리뷰어에게 전달할 사항
<!-- 있으면 작성하고 없으면 제목까지 완전히 지워주세요! -->

## ✅ 코드 리뷰 체크리스트
- [ ] 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.
- [ ] 한 줄당 120자 제한을 준수했는지 확인해주세요.
- [ ] MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

- [ ] 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.
- [ ] 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.
- [ ] 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.
- [ ] 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

- [ ] 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.
- [ ] 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.
- [ ] 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.
## ✅ 이번 PR에서 이런 부분을 중점적으로 체크해주세요!
<!-- 해당 토글 내에 있는 항목 중 리뷰어가 중점적으로 봐주었으면 하는 부분은 토글 밖으로 이동해주세요. -->
<!-- 해당 토글 내에 있는 항목이 아니더라도 중점적으로 봐주었으면 하는 부분이 있다면 자유롭게 추가해주세요. -->
<!-- 토글 내에 있는 항목들은 PR 게시 전 점검해주세요! -->

<details>
<summary>잠깐 확인하고 갈까요?</summary>

- 들여쓰기를 5번 이하로 준수했는지, 코드 가독성이 적절한지 확인해주세요.
- 한 줄당 120자 제한을 준수했는지 확인해주세요.
- MARK 주석이 정해진 순서와 형식에 맞게 작성되었는지 확인해주세요.

- 반복되는 상수 값이 있는지, 있다면 Constant enum으로 분리되어 있는지 확인해주세요.
- 삼항 연산자가 길어질 경우 적절히 개행되어 있는지 확인해주세요.
- 조건문에서 중괄호가 올바르게 사용되었는지 확인해주세요.
- 라이브러리 import가 퍼스트파티와 서드파티로 구분되고 알파벳순으로 정렬되었는지 확인해주세요.

- 용량이 큰 리소스나 호출되지 않을 가능성이 있는 프로퍼티에 lazy var가 적절히 사용되었는지 확인해주세요.
- 메모리 누수 방지를 위한 weak 참조가 필요한 곳에 적용되었는지 확인해주세요.
- 도메인 로직과 UI 로직이 적절히 분리되어 있는지 확인해주세요.

</details>


## 🔗 연결된 이슈
- Resolved: #이슈번호
20 changes: 4 additions & 16 deletions Wable-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
DD29687C2D6DB27F00143851 /* OAuthenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD29687B2D6DB27200143851 /* OAuthenticator.swift */; };
DD29687E2D6DC70700143851 /* OAuthCredential.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD29687D2D6DC70100143851 /* OAuthCredential.swift */; };
DD3935B62DDDB9F700B6CA94 /* MyProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD3935B42DDDB9F700B6CA94 /* MyProfileView.swift */; };
DD431E1A2E136C8100BA55FB /* UpdateFCMTokenUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD431E192E136C8100BA55FB /* UpdateFCMTokenUseCase.swift */; };
DD4AFD452D8FF19F00D56B94 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD4AFD442D8FF19B00D56B94 /* LoginViewModel.swift */; };
DD4AFD472D90264500D56B94 /* OAuthEventManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD4AFD462D90263400D56B94 /* OAuthEventManager.swift */; };
DD50980C2DA2C1A300F666DE /* FetchContentCommentListUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD50980B2DA2C18F00F666DE /* FetchContentCommentListUseCase.swift */; };
Expand All @@ -155,7 +156,6 @@
DD514D0A2D8C958B0095021D /* AgreementItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD514D092D8C957E0095021D /* AgreementItemView.swift */; };
DD514D0E2D8C99DC0095021D /* AgreementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD514D0D2D8C99DC0095021D /* AgreementView.swift */; };
DD514D102D8CA3780095021D /* AttributedString+.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD514D0F2D8CA36D0095021D /* AttributedString+.swift */; };
DD51A43B2DD3BE10004295B6 /* UpdateFCMTokenUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD51A43A2DD3BE08004295B6 /* UpdateFCMTokenUseCase.swift */; };
DD51A44C2DD458A8004295B6 /* ProfileEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD51A44B2DD458A8004295B6 /* ProfileEditViewController.swift */; };
DD547AB92D7E43A600B8BA5A /* GhostButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD547AB82D7E439E00B8BA5A /* GhostButton.swift */; };
DD69C5902D71A3BE000A3349 /* OAuthTokenProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD69C58F2D71A3B6000A3349 /* OAuthTokenProvider.swift */; };
Expand Down Expand Up @@ -204,7 +204,6 @@
DDED595E2D78C3E000A0BEF1 /* KakaoAuthProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED595D2D78C3D900A0BEF1 /* KakaoAuthProvider.swift */; };
DDED59752D78F16400A0BEF1 /* FetchNicknameDuplicationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED59742D78F15000A0BEF1 /* FetchNicknameDuplicationUseCase.swift */; };
DDED59782D78F1E500A0BEF1 /* UserProfileUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED59772D78F1DA00A0BEF1 /* UserProfileUseCase.swift */; };
DDED597C2D794F0D00A0BEF1 /* FetchUserAuthUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED597B2D794F0600A0BEF1 /* FetchUserAuthUseCase.swift */; };
DDED597E2D79578C00A0BEF1 /* AuthProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED597D2D79578800A0BEF1 /* AuthProvider.swift */; };
DDED59862D7965E900A0BEF1 /* OverviewUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED59852D7965DB00A0BEF1 /* OverviewUseCase.swift */; };
DDED59882D7965F100A0BEF1 /* NotificationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDED59872D7965EC00A0BEF1 /* NotificationUseCase.swift */; };
Expand Down Expand Up @@ -521,6 +520,7 @@
DD29687B2D6DB27200143851 /* OAuthenticator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthenticator.swift; sourceTree = "<group>"; };
DD29687D2D6DC70100143851 /* OAuthCredential.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthCredential.swift; sourceTree = "<group>"; };
DD3935B42DDDB9F700B6CA94 /* MyProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyProfileView.swift; sourceTree = "<group>"; };
DD431E192E136C8100BA55FB /* UpdateFCMTokenUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateFCMTokenUseCase.swift; sourceTree = "<group>"; };
DD4AFD442D8FF19B00D56B94 /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = "<group>"; };
DD4AFD462D90263400D56B94 /* OAuthEventManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthEventManager.swift; sourceTree = "<group>"; };
DD50980B2DA2C18F00F666DE /* FetchContentCommentListUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchContentCommentListUseCase.swift; sourceTree = "<group>"; };
Expand All @@ -533,7 +533,6 @@
DD514D092D8C957E0095021D /* AgreementItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgreementItemView.swift; sourceTree = "<group>"; };
DD514D0D2D8C99DC0095021D /* AgreementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgreementView.swift; sourceTree = "<group>"; };
DD514D0F2D8CA36D0095021D /* AttributedString+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttributedString+.swift"; sourceTree = "<group>"; };
DD51A43A2DD3BE08004295B6 /* UpdateFCMTokenUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateFCMTokenUseCase.swift; sourceTree = "<group>"; };
DD51A44B2DD458A8004295B6 /* ProfileEditViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileEditViewController.swift; sourceTree = "<group>"; };
DD547AB82D7E439E00B8BA5A /* GhostButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhostButton.swift; sourceTree = "<group>"; };
DD69C58F2D71A3B6000A3349 /* OAuthTokenProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthTokenProvider.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -589,7 +588,6 @@
DDED595D2D78C3D900A0BEF1 /* KakaoAuthProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoAuthProvider.swift; sourceTree = "<group>"; };
DDED59742D78F15000A0BEF1 /* FetchNicknameDuplicationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchNicknameDuplicationUseCase.swift; sourceTree = "<group>"; };
DDED59772D78F1DA00A0BEF1 /* UserProfileUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileUseCase.swift; sourceTree = "<group>"; };
DDED597B2D794F0600A0BEF1 /* FetchUserAuthUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchUserAuthUseCase.swift; sourceTree = "<group>"; };
DDED597D2D79578800A0BEF1 /* AuthProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthProvider.swift; sourceTree = "<group>"; };
DDED59852D7965DB00A0BEF1 /* OverviewUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverviewUseCase.swift; sourceTree = "<group>"; };
DDED59872D7965EC00A0BEF1 /* NotificationUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationUseCase.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1487,7 +1485,6 @@
isa = PBXGroup;
children = (
DE202FFC2DE7865300B04CAA /* AppVersion */,
DDED59552D78BF5800A0BEF1 /* Login */,
DE0D0CA32DD2012900FB64DC /* UserRole */,
DDED59732D78EFCF00A0BEF1 /* Onboarding */,
DD9EAE202D99C58600803A1A /* Home */,
Expand All @@ -1499,14 +1496,6 @@
path = UseCase;
sourceTree = "<group>";
};
DDED59552D78BF5800A0BEF1 /* Login */ = {
isa = PBXGroup;
children = (
DDED597B2D794F0600A0BEF1 /* FetchUserAuthUseCase.swift */,
);
path = Login;
sourceTree = "<group>";
};
DDED59582D78C31B00A0BEF1 /* Auth */ = {
isa = PBXGroup;
children = (
Expand All @@ -1521,7 +1510,7 @@
children = (
DDED59772D78F1DA00A0BEF1 /* UserProfileUseCase.swift */,
DDED59742D78F15000A0BEF1 /* FetchNicknameDuplicationUseCase.swift */,
DD51A43A2DD3BE08004295B6 /* UpdateFCMTokenUseCase.swift */,
DD431E192E136C8100BA55FB /* UpdateFCMTokenUseCase.swift */,
);
path = Onboarding;
sourceTree = "<group>";
Expand Down Expand Up @@ -2933,9 +2922,7 @@
DD4AFD472D90264500D56B94 /* OAuthEventManager.swift in Sources */,
DDED59862D7965E900A0BEF1 /* OverviewUseCase.swift in Sources */,
DE202FF62DE784FB00B04CAA /* AppVersion.swift in Sources */,
DDED597C2D794F0D00A0BEF1 /* FetchUserAuthUseCase.swift in Sources */,
DE7C53102D761E3300076E5D /* String+.swift in Sources */,
DD51A43B2DD3BE10004295B6 /* UpdateFCMTokenUseCase.swift in Sources */,
DD9EAE222D99C59900803A1A /* FetchContentListUseCase.swift in Sources */,
DD2968192D6DAD0200143851 /* ReportRepository.swift in Sources */,
DE6C3E3E2D91A8E00046DB30 /* NewsViewModel.swift in Sources */,
Expand All @@ -2945,6 +2932,7 @@
DDFB22422D8BA9D200FEA24A /* LCKTeamViewController.swift in Sources */,
DD765D9D2D8747950029A317 /* SplashViewController.swift in Sources */,
DD29681B2D6DAD0200143851 /* ProfileRepository.swift in Sources */,
DD431E1A2E136C8100BA55FB /* UpdateFCMTokenUseCase.swift in Sources */,
DD1F30472D9D71E1003DB820 /* DeleteContentLikedUseCase.swift in Sources */,
DD29681C2D6DAD0200143851 /* InformationRepository.swift in Sources */,
DD69C5902D71A3BE000A3349 /* OAuthTokenProvider.swift in Sources */,
Expand Down
12 changes: 12 additions & 0 deletions Wable-iOS/App/AppDelegate+InjectDependency.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@ extension AppDelegate {

func injectDependency() {

// MARK: - UserSession

diContainer.register(
for: UserSessionRepository.self,
object: UserSessionRepositoryImpl(userDefaults: UserDefaultsStorage())
)

// MARK: - Login

diContainer.register(for: LoginRepository.self, object: LoginRepositoryImpl())
diContainer.register(for: TokenStorage.self, object: TokenStorage(keyChainStorage: KeychainStorage()))

// MARK: - Overview

diContainer.register(for: InformationRepository.self, object: InformationRepositoryImpl())
Expand Down
17 changes: 1 addition & 16 deletions Wable-iOS/App/SceneDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {

private extension SceneDelegate {
func configureLoginScreen() {
let userProfileUseCase = UserProfileUseCase(repository: ProfileRepositoryImpl())
let fetchUserAuthUseCase = FetchUserAuthUseCase(
loginRepository: loginRepository,
userSessionRepository: userSessionRepository
)
let updateFCMTokenUseCase = UpdateFCMTokenUseCase(repository: ProfileRepositoryImpl())
let updateUserSessionUseCase = FetchUserInformationUseCase(repository: userSessionRepository)

self.window?.rootViewController = LoginViewController(
viewModel: LoginViewModel(
userProfileUseCase: userProfileUseCase,
fetchUserAuthUseCase: fetchUserAuthUseCase,
updateFCMTokenUseCase: updateFCMTokenUseCase,
updateUserSessionUseCase: updateUserSessionUseCase
)
)
self.window?.rootViewController = LoginViewController(viewModel: LoginViewModel())
}

func configureMainScreen() {
Expand Down
12 changes: 6 additions & 6 deletions Wable-iOS/Data/RepositoryImpl/ProfileRepositoryImpl.swift
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,12 @@ extension ProfileRepositoryImpl: ProfileRepository {
}

func updateUserProfile(
profile: UserProfile? = nil,
isPushAlarmAllowed: Bool? = nil,
isAlarmAllowed: Bool? = nil,
image: UIImage? = nil,
fcmToken: String? = nil,
defaultProfileType: String? = nil
profile: UserProfile?,
isPushAlarmAllowed: Bool?,
isAlarmAllowed: Bool?,
image: UIImage?,
fcmToken: String?,
defaultProfileType: String?
) -> AnyPublisher<Void, WableError> {
return provider.request(
.updateUserProfile(
Expand Down
54 changes: 0 additions & 54 deletions Wable-iOS/Domain/UseCase/Login/FetchUserAuthUseCase.swift

This file was deleted.

Loading