안녕하세요?
Production 환경에서 Kakao Javascript SDK를 사용해 공유하기 feature를 사용하고 있는데요,
궁금한 점이 있어서 문의를 드리고자 합니다.
현재 웹앱에서 Module Loader는 RequireJS를 사용하고 있습니다.
(Backbone.Marionette를 사용하긴 하지만, Marionette.Module은 쓰지않고 RequireJS만 사용하고 있습니다.)
Kakao SDK는 아래와 같이 RequireJS configuration에서 다른 SNS의 Javascript와 함께 path/shim 설정을 합니다.
/**
* This is RequireJS main module file.
*/
require.config({
catchError: true,
paths: {
'kakao': 'https://developers.kakao.com/sdk/js/kakao.min',
'facebook': '//connect.facebook.net/ko_KR/all',
'widget-twitter': '//platform.twitter.com/widgets'
},
shim: {
kakao: {
exports: 'Kakao'
},
facebook : {
exports: 'FB'
}
}
});
그리고, 아래와 같이 sdk initialize를 하고 다른 모듈에서 singleton class처럼 불러서 사용합니다.
/**
* Kakao Javascript SDK Wrapper
*
* @config API.KAKAO.API_KEY
*/
define(['debug', 'kakao', 'app/config'], function (debug, Kakao, CONFIG) {
var log = debug('LawSquare:Helper:Kakao');
log('Initializing Kakao SDK...');
Kakao.init(CONFIG.API.KAKAO.API_KEY);
log('Initialized Kakao SDK!');
return Kakao;
});
현재 Production에서 Airbrake와 Errorception이라는 Error Reporter를 써서 Javascript runtime에서 발생하는 에러들을 보고받고 있습니다.
그런데, 최근에 불특정한 환경에서 자꾸 Error가 날아오네요.
대부분 Timeout Error가 대부분인데, 간혹 Uncaught Script Error도 찍힙니다.
아마 Remote Script를 불러오는 과정에서 뭔가 문제가 생긴 것 같은데요.
(분명 제 컴퓨터에서는 잘 되는데!!!)
문의드리고자 하는 것은 다음과 같습니다.
-
Kakao Javascript SDK는 공식적으로 AMD Loader (e.g. RequireJS, Almond 등)을 지원하나요?
minify된 코드를 보면 factory pattern으로 amd support를 하는 것 같은데요, 개발 문서에는 AMD Loader 관련 언급이 없어서 계속 이렇게 사용해도 되는건지 궁금합니다. -
Kakao Javascript SDK를 serve하는 서버는 SLA가 보장되나요?
(물론 카카오 정도의 규모의 서비스에서 그럴 일은 없겠지만) 서버가 간혹 downtime이 있거나, SDK가 종종 업데이트 되는건지 궁금합니다. -
Kakao Javascript SDK를 서비스에서 직접 호스트해도 되나요?
혹여나 Javascript SDK을 서비스에서 직접 호스트해도 된다면, 서비스에서 직접 호스트를 하고 추후 경과를 추적해보고 싶은데요.
Javascript SDK를 카카오가 아닌, 개발자가 임의로 서비스의 서버에서 호스트를 해도 되는지 (코드의 변형은 하지 않는 것을 조건) 궁금합니다. 물론, 언제 업데이트가 될 지도 모르는 3rd party SDK를 임의로 호스트하는건 내키지 않습니다만…