카카오 Javascript SDK 로드 에러 문제

안녕하세요.

모바일 웹뷰에서 Javascript SDK를 동적으로 로드하여 카카오톡 로그인을 할 수 있도록 하는 기능을 추가했는데요. 하루 트래픽 2~3만건중 약 30~60건 정도 스크립트 로드 에러가 발생하고 있습니다.

//developers.kakao.com/sdk/js/kakao.min.js를 로드할 때 onerror에서 로그를 찍는 방식으로 확인했는데요. GA의 트래픽 분포와 비교해보니, 에러가 발생하는 브라우저 / OS가 전체 트래픽과 분포가 크게 다르지 않습니다. 스크립트 로드 에러가 발생하는 원인을 알 수 있을까요? 그리고, 이에 대해 알려진 해결책이 있는지도 궁금합니다.

감사합니다.

제보 감사합니다. 에러가 발생한 시간대도 공유해주실 수 있을까요?

원인 파악이 되기 전까지는 Javascript SDK를 파일로 내려받아서 사용하시는 방법도 있을 것 같아요.

안녕하세요. 12월 초에 첫 배포한 이후로 하루 몇십 건씩, 시간대랑 상관없이 꾸준히 일어나고 있는 문제라서 에러 발생 시간대를 특정해드리기는 어려울 것 같습니다. 다만 좀더 분석해보니 전체 트래픽 대비 안드로이드 OS에서 일어나는 비율이 월등히 높습니다.

image

말씀하신대로 원인이 파악되기 전까지는 onerror에서 Kakao CDN으로 몇 차례 로드를 재시도해보고, 그래도 실패하면 내려받은 SDK 파일을 로드해서 사용하는 식으로 하려고 합니다.

안녕하세요. 상황 업데이트드립니다.

참고로 저희 프론트엔드는 React 16.7로 구현되어있으며, 대부분의 트래픽이 카카오톡 인앱 브라우저를 통해 옵니다. kakao.min.js는 카카오톡 로그인이 필요한 페이지에서 동적으로 document body 맨 뒤에 붙여서 로드하는 방식입니다. (async=true, defer=true)

이 script에 onerror가 발생하면 같은 방식으로 kakao CDN에서 다시 가져오는 걸 시도하도록 변경했는데요. 이렇게 했더니 이틀동안 로드 에러가 거의 기록되지 않았습니다.

딱 한 분이 로드 에러를 두 번 경험했는데, windows 7 IE11였고, timestamp는 Jan 3, 2019 3:42:16 AM UTC 였습니다. 이건 그동안 안드로이드에서 발생하던 문제와는 패턴이 달라서 잠깐 네트워크가 느렸던 것인가? 정도로 생각하고 있습니다.

어쨌든 재시도를 넣은 이후로 에러는 기록되지 않고 있습니다만, 여전히 애초에 왜 문제가 생겼었는지는 모르고 있습니다. 저희 개발 단에서는 재현이 안되는데, React 16 + android kakaotalk inapp browser + async /defer load 라는 조건에서 어딘가 잘 맞지 않는 부분이 있는것인가 하고 추측만 하는 수준입니다.

비슷한 방식으로 dapi.kakao.com/v2/maps/sdk.js를 동적 로드하는 부분도 있는데, 여기서는 asyncdefer 옵션은 사용하고 있지 않습니다. 그리고 이쪽에서는 그동안 로드 에러 문제는 거의 발생하지 않았습니다. 그래서 asyncdefer가 재현조건인가? 하는 생각도 하고 있습니다만 확실한 건 모르겠군요.

관련해서 무언가 생각나는 게 있으시면 말씀해주시면 감사하겠습니다.

@anon53181640

상세한 제보 감사합니다.

SDK를 서빙하는 서버의 로그를 확인해보니 특별한 이슈는 없는 상태입니다.

현재로서는 SDK를 다운로드 받아서 서빙하시는 것이 가장 안정적인 방법으로 보입니다.

추후 문제의 원인이나 개선된 부분이 생긴다면 공유드리도록 하겠습니다.

1개의 좋아요