Jeeehee / myUnsplash

0 stars 0 forks source link

Kakao Login 초기화 진행시, AppKey를 가져오는 로직의 의존성 문제 #3

Closed Jeeehee closed 1 year ago

Jeeehee commented 1 year ago

사전 설명

Kakao Login 문서에 따라, AppDelegate에서 KakaoSDKAuth 초기화를 진행해야합니다. 초기화 코드는 KakaoSDK.initSDK(appKey: ) 로 이때, AppKey가 사용됩니다.

프로젝트에 적용한 아키텍처는 MVVM + Clean Architecture 로 AppKey를 가져오는 로직의 도식화는 아래와 같습니다.

이미지 제목

UseCase에서 @escaping closure로 성공시 AppKey를 반환합니다.

고민

AppDelegate에서 AppKey가 필요한데, 이 키를 AppDelegate에 어떻게 넘겨줄까? 라는 고민과 함께 AppDelegate가 UseCase의 인스턴스를 갖고있고, 해당 메서드를 호출해도 의존성에 문제가 없는것인가? 라는 고민이 들었습니다.

Jeeehee commented 1 year ago

해결

KakaoSDK 초기화를 AppDelegate에서 하는 이유는, App 실행시 초기화 하기 위함이라고 생각했습니다. 하지만 해당 프로젝트에서는 사용자가 Button을 눌러야 Kakao Login에 대한 로직이 실행되기 때문에, 이벤트를 받은 후 초기화를 진행해도 되지 않을까? 라는 생각이 들었습니다.

Clean Architecture대로 ViewModel이 UseCase를 바라보게 한 뒤, View과 ViewModel을 binding해 해당 로직을 수행시켰습니다. 변경 이후 문제없이 실행되는것을 확인했습니다.