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

[fix] 카카오로그인 수정 및 킹피셔 이슈 해결 #370

Merged
merged 4 commits into from
Sep 10, 2024

Conversation

hooni0918
Copy link
Member

🔗 연결된 이슈

📄 작업 내용

  • 카카오로그인 수정 및 킹피셔 오류 해결

📚 참고자료

Toss slash 23

👀 기타 더 이야기해볼 점

  • 카카오 로그인은 앱 배포시 직접 올리고 깃허브에는 올리지 않아 문제를 해결하였습니다.

  • 온보딩 로직에서 프로필 등록시 킹피셔로 압축하여 서버에 올리는시간이 약 2초-3초 정도 걸렷는데 해당 기다리는 시간이 앱이 동작을 안한다고 생각하여 QA가 잡혔습니다.

  • 이를 해결하고자 온보딩 로직에서 이미지를 등록하였을때 이미지 등록직후 화면은 바로 다음화면으로 넘기고 이미지 등록이 완료되었는지 여부는 확인하지 않는방식으로 구현하였습니다. 이미지 등록여부는 마이페이지까지 들어가야 확인할 수 있지만 에러가 있는 코드가 아니고 무결성을 확신할 수 있는 코드라고 생각하기에 해당 로직을 채택하였습니다.
    앱에서 마이페이지까지 가는 시간이 아무리 빨라도 2초 이상 걸린다 생각하며 이미지를 받아오는 시간이 이보다 빠를것이기에 (초고화질이 아니라면) 이미지를 불러오는데에도 문제가 없을것입니다. (사실상 비동기를 직접 구현하였다고 보시면 됩니다.)

  • 해당 아이디어는 토스의 Slash23 의 뷰 속도 개선하기 영상에서 본것같은데 다시보니 이런게 없네요 어쩃든 Toss Slash 에서 착안한 방법입니다.

  • 마이페이지또한 변경이 안되는것이 아닌 이미지를 서버에 킹피셔 압축 -> post -> get 로직을 거치게 되어 2초이상 걸리고 캐시삭제까지 이루어지게 되어 이미지 변경이 안되는것처럼 느껴진것입니다. 이를위해 이미지 전달을 서버에 의존하는것이 아닌 이미지 변경 사항을 Rx로 직접 바인딩하여 이미지 정보를 전달하는 로직으로 변경하였습니다.

@hooni0918 hooni0918 added 🛠️ fix 버그나 오류 해결시 사용 🧡 JiHoon 쌈뽕한 플러팅 꿀팁을 듣고 싶다면 labels Sep 6, 2024
@hooni0918 hooni0918 self-assigned this Sep 6, 2024
@hooni0918 hooni0918 linked an issue Sep 6, 2024 that may be closed by this pull request
1 task
@hooni0918 hooni0918 changed the title Hotfix/#363 kakao fix [fix] 카카오로그인 수정 및 킹피셔 이슈 해결 Sep 6, 2024
Copy link
Contributor

@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.

고생하셨습니다.
여러 레퍼를 찾아보며 해결하신 것 너무 인상적이네요.

다만, 동작화면도 같이 올려주시면 너무 좋을 것 같아요.
화이팅!

Comment on lines +43 to +46
if let myURL = URL(string: "https://arrow-frog-4b9.notion.site/a66033a3ff4a40bfaa6eff0a5bee737d") {
let myRequest = URLRequest(url: myURL)
webView.load(myRequest)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

외부 웹페이지를 여는 방법 중 WKWebView로 선택하신 이유가 궁금해요!

Copy link
Member Author

Choose a reason for hiding this comment

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

으잉 다른방법이 없는걸로아는데 다른방법이 있나요??

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
Member Author

Choose a reason for hiding this comment

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

웹뷰를 여는방법은 해당 블로그에서 말한 3가지 방법 모두 좋은 방법이지만 사파리로 여는방법은 하나의 앱에서 연장되는느낌이 아닌 '사파리로 접근한다' 라는 치명적인 단점이 있다라고 생각됩니다.
웹뷰를 들어갈때에는 무조건적으로 사용자가 웹뷰인것을 절대적으로 알면 안된다고 생각해요. 그렇기 때문에 조금 귀찮더라도 WKWebView을 채택해야만한다고 생각합니다

Copy link
Contributor

Choose a reason for hiding this comment

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

그러한 의도라면 웹뷰가 맞을수도 있겠네요 👍

Comment on lines +78 to +82
.compactMap { $0 }
.subscribe(onNext: { [weak self] image in
self?.viewModel.updateProfileImage(image)
})
.disposed(by: disposeBag)
Copy link
Contributor

Choose a reason for hiding this comment

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

compactMap으로 nil을 필터링 좋습니다. 👍

Copy link
Member

@youz2me youz2me left a comment

Choose a reason for hiding this comment

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

비동기 직접 구현이라니 멋집니다. 고생하셨어요!

Copy link
Member

@mmaybei mmaybei left a comment

Choose a reason for hiding this comment

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

수고하셨습니다!

@hooni0918 hooni0918 merged commit f4876a7 into suyeon Sep 10, 2024
@youz2me youz2me deleted the hotfix/#363-kakaoFix branch September 10, 2024 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🛠️ fix 버그나 오류 해결시 사용 🧡 JiHoon 쌈뽕한 플러팅 꿀팁을 듣고 싶다면
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[hotfix] 카카오로그인 또안됨
4 participants