SDK ์‚ฝ์ž…

์›น๋ทฐ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์•ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Android ๋ฐ iOS ์•ฑ์— ์ข…์†๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ Android ๋ฐ iOS SDK๊ฐ€ ํ•ด๋‹น ์•ฑ์— ์„ค์น˜๋œ ์ƒํƒœ์—์„œ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์™€ ์• ํ”Œ ์•ฑ์Šคํ† ์–ด์— ๋ฐฐํฌ๋˜์–ด์•ผ ์ •ํ™•ํ•œ ์›น๋ทฐ ๋ฐ์ดํ„ฐ ์ธก์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์„ค์ •

ํ•„์ˆ˜ ์„ค์ •์ด๋ž€ SDK๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์•ฑ์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์„ค์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์•ฑ ํ™˜๊ฒฝ์—์„œ์˜ ํ•„์ˆ˜ ์„ค์ •์ด๋ž€,

  1. Android ๋ฐ iOS์šฉ ์•ฑ SDK๊ฐ€ ์„ค์น˜

  2. ์›น๋ทฐ์˜ ๊ฐ ํŽ˜์ด์ง€์— ํŠธ๋ž˜ํ‚น ์Šคํฌ๋ฆฝํŠธ ์‚ฝ์ž…

์ด ์™„๋ฃŒ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์— SDK ์ถ”๊ฐ€ ๋ฐ ์ดˆ๊ธฐํ™”

  • Android ์•ฑ์— ๋Œ€ํ•œ SDK ์„ค์น˜๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

  • iOS ์•ฑ์— ๋Œ€ํ•œ SDK ์„ค์น˜๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

์›น,์•ฑ ๋ถ„์„์„ ๋™์‹œ์— ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

HibridApp ์œผ๋กœ ๊ฐœ๋ฐœ๋œ ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ, WebView ์— ๋กœ๋”ฉ๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ผ๋ฐ˜ ๋ฐ์Šคํฌํƒ‘ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ, ํ•ด๋‹น ์›น ํŽ˜์ด์ง€์—๋Š”

  1. ์›น ์‚ฌ์ดํŠธ ๋ถ„์„์„ ์œ„ํ•œ SDK ์™€ ๋ถ„์„ ์ฝ”๋“œ ์…‹ํŠธ์™€

  2. ๋ชจ๋ฐ”์ผ ์•ฑ ๋ถ„์„์„ ์œ„ํ•œ ๋ถ„์„ ์ฝ”๋“œ ์…‹ํŠธ๊ฐ€ ๋™์‹œ์— ์กด์žฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฐ”์ผ ์•ฑ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ, ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์›น๋ทฐ์—์„œ ๋ Œ๋”๋ง ์‹œํ‚ค๊ฒŒ๋˜๋ฉด, ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ์šฉ๋œ ์›น ์‚ฌ์ดํŠธ ๋ถ„์„ SDK์™€ ๋ถ„์„ ์ฝ”๋“œ ์…‹ํŠธ๊ฐ€ ์‹คํ–‰๋˜์–ด, ๋ฐ์ดํ„ฐ๊ฐ€ ๋”๋ธ” ์นด์šดํŒ…๋˜๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • ์•ฑ์—์„œ ์›น๋ทฐ์— ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋ง ํ•˜๊ธฐ ์ „์—, ์•„๋ž˜์˜ ์ฝ”๋“œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์›น๋ทฐ์˜ navigator.userAgent ๋ฌธ์ž์—ด์— "RW2SDK" ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

StringBuilder _userAgent = new StringBuilder();
_userAgent.append(webView.getSettings().getUserAgentString());
_userAgent.append("RW2SDK");
webView.getSettings().setUserAgentString(_userAgent.toString());
  • ์›น ์‚ฌ์ดํŠธ ๋ถ„์„ SDK๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด navigator.userAgent ์— "RW2SDK" ๋ฌธ์ž์—ด์ด ์กด์žฌํ•  ๊ฒฝ์šฐ, SDK์˜ ์ดˆ๊ธฐํ™” ์š”์ฒญ์„ ๋ฌด์‹œํ•˜๊ฒŒ ๋˜๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ console ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

export class WDOTInitialization {   
/**    * Website SDK Initialzation    ***/   
    static setConfig(config){      
        let _ua = window.navigator.userAgent;      
        if ( _ua.indexOf("RW2SDK") >= 0 ){         
            console.log("WDOT is disabled with RW Native SDK.  ( WDOTInitialization )  ");      
        }      
        else{         
            window.DOP_SDK_CONF = config;         
            console.log("Set window.DOP_SDK_CONF ", window.DOP_SDK_CONF );      
        }   
    }
    .... ์ค‘๋žต ... 
}
  • ์œ„์™€ ๊ฐ™์ด ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์›น๋ทฐ์˜ userAgent ์— ์˜ˆ์•ฝ๋œ ๋ฌธ์ž์—ด (RW2SDK) ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘์†ํ•˜๋ฉด ์›น ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์ž‘ํ•  ๊ฒƒ์ด๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ํ†ตํ•ด์„œ ์›นํŽ˜์ด์ง€๋ฅผ ์ ‘๊ทผํ•˜๋ฉด User-Agent๋•Œ๋ฌธ์—, ์›น์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŠธ๋Š” disabled ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ์›น๋ทฐ์—์„œ ๋กœ๋”ฉ๋œ ํŽ˜์ด์ง€์— ์›น ์‚ฌ์ดํŠธ ๋ถ„์„ SDK๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ถœ๋ ฅ ๋ฉ”์‹œ์ง€
  • ์›นํŽ˜์ด์ง€์—๋Š” WDOT ๋กœ ํƒœ๊น…๋œ ์›น์‚ฌ์ดํŠธ ๋ถ„์„์ฝ”๋“œ์™€, DOT ๋กœ ํƒœ๊น…๋œ ๋ชจ๋ฐ”์ผ ์›น๋ทฐ ๋ถ„์„์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ๋™์‹œ์— ์กด์žฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ถ”๊ฐ€์ ์œผ๋กœ ์›น ํŽ˜์ด์ง€์— ์ ์šฉ๋˜๋Š” ๋ถ„์„ ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ DOT, WDOT ๊ฐ์ฒด์— ๋Œ€ํ•œ Null ์ฒดํฌ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” SDK Referrence Object๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด if ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ ํ•ด ์ฃผ์„ธ์š”.


// ํ™”๋ฉด๋ถ„์„์„ ์œ„ํ•œ logScreen ์ฒ˜๋ฆฌ logScreen ์ฒ˜๋ฆฌ ( ๋ชจ๋ฐ”์ผ ์›น๋ทฐ์—์„œ ๋กœ๋”ฉ์‹œ ) 
if (typeof DOT != 'undefined') {
  DOT.logScreen(screen);
}
else if (typeof WDOT != 'undefined') {       // ( ๋ธŒ๋ผ์šฐ์ ธ๋กœ ๋กœ๋”ฉ์‹œ ) 
  WDOT.onStartPage(window.WDOTParam || {});
}

// ์•ฑ๋‚ด ๋™์ž‘ ๋ถ„์„์„ ์œ„ํ•œ logEvent
if (typeof DOT != 'undefined') {
  DOT.logEvent(event);
}
else if (typeof WDOT != 'undefined') {
  WDOT.logEvent(event);
}

Last updated

Was this helpful?