์•ฑ ๋ฐฐํฌ์— ์žˆ์–ด ๊ผญ ์•Œ์•„์•ผ ํ•˜๋Š” App Thining์ค‘ On-Demand Resource์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. ํ•ด๋‹น๊ธ€์€ WWDC 2015๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค.

Do Better

์ด์ „ ๊ธ€์—์„œ App Slicing์„ ํ•˜๋ฉด์„œ ์•ฑ ํฌ๊ธฐ๋ฅผ ๋งŽ์ด ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐœ์„ ํ•  ์ ์ด ์žˆ๋‹ค.

  • ํ•ญ์ƒ ํ•„์š”ํ•œ ๊ฒƒ
    • ์‹คํ–‰ ์ฝ”๋“œ
    • ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค (์ฒ˜์Œ ํ™”๋ฉด ๋“ค์–ด์™”์„ ๋–„ ๋ณด์ด๋Š” ๋…€์„๋“ค)
  • ๋‚˜์ค‘์— ํ•„์š”ํ•œ ๊ฒƒ
    • ์ด 20๋ ˆ๋ฒจ ๊นŒ์ง€ ๊ฒŒ์ž„์ด ์žˆ๋Š”๋ฐ, ๊ตณ์ด 20๋‹จ๊ณ„์—์„œ ๋ณด์—ฌ์งˆ Resource๋ฅผ ๋กœ๋“œํ•  ํ•„์š” ์—†์Œ
    • Keynote์™€ ๊ฐ™์€ ์•ฑ์„ ๋งŒ๋“ ๋‹ค๊ณ  ํ•  ๋•Œ, ๋ฌธ์„œ template ์ธ๋„ค์ผ๋งŒ ๋ณด์—ฌ์ฃผ๋ฉด ๋จ. ์‹ค์ œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ชจ๋‘ ๋“ค๊ณ  ์žˆ์„ ํ•„์š” ์—†์Œ
  • ๊ฑฐ์˜ ํ•„์š”์—†๋Š” ์ปจํ…์ธ 
    • ์ด๋ฏธ ์•ˆ๋‚ด๊ฐ€ ๋๋‚œ Tool Tip ํ˜น์€ Tutorial

On-Demand Resources

์œ„์˜ ์ƒํ™ฉ์—์„œ ํ•„์š”ํ•œ ๊ฒƒ์€, ๋‹น์žฅ ๋ณด์—ฌ์งˆ ๊ฒƒ์€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜, ํ•„์š”ํ•  ๋•Œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์–! ํ•˜๊ณ  ๋˜์ ธ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ๋™์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ. ์ด๋Ÿฐ ๊ฒƒ์„ **On-Demand Resources(ODR)**์ด๋ผ๊ณ  ํ•œ๋‹ค.

ODR์€ Appstore์— IPA์™€ ๋ณ„๋„๋กœ ์ €์žฅ๋˜๊ณ , ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋” ๋งŽ์€ ์ปจํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๊ธฐ ๋‚ด๋ถ€์˜ App Bundle๋‚˜ iCloud์— ์ €์žฅ๋˜์ง€ ์•Š๊ณ  โ€œ๋ฉ”๋ชจ๋ฆฌโ€์— ์ €์žฅ๋œ๋‹ค.

์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด System์ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ณ , ์ด ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ App์—์„œ ๋ฐœ์ƒํ•˜๋Š” ODR๋ฅผ ์บ์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

์•ฑ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ€ ์ด๋Ÿฐ์‹์œผ๋กœ ์žกํ˜€์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

๋งํ–ˆ๋“ฏ, ๊ฐ ๊ณ„์ธต์˜ ranking ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. Shared๋Š” ํ•ญ์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ, level์€ ์ˆซ์ž์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์‹œ์ ์ด ๋‹ค๋ฅด๋‹ค. ์œ„ ์‚ฌ์ง„์€ Xcode์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•œ ํ›„ AppStore์—์„œ App Slicingํ›„ ํ•˜๋‚˜์˜ ipa๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

ODR์ด ์ ์šฉ๋˜๊ณ  ๋‚˜๋ฉด ์ „์ฒด๊ฐ€ ipaํ™” ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ์™ผ์ชฝ์˜ ์˜์—ญ๋งŒ ipaํ™” ๋˜์–ด ๊ธฐ๊ธฐ์— ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์˜์—ญ์„ AppStore๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Code์˜์—ญ์€ ๋ชจ๋‘ Shared๋˜์–ด ๊ธฐ๊ธฐ๊ฐ€ ๋“ค๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์š”๋งŒํผ ๋ฟ์ด๋‹ค. ์ด ์ƒํ™ฉ์—์„œ level1์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด!

์š”๋Ÿฌ์ฝ”๋กฌ ๋ฐ›์•„์˜ค๊ฒŒ ๋œ๋‹ค. ์•„๊นŒ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๊ฐ์ฒด๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ level 4๋ฅผ ๋ฐ›์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‚ญ์ œ๋œ๋‹ค. ์ด ๋•Œ ์บ์‹œ์ •์ฑ…์€ LRU ์ •์ฑ…์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์•ฑ์„ ์˜ค๋ž˜๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ณ , ๋‹ค๋ฅธ ์•ฑ์ด ODR์„ ์š”์ฒญํ•œ๋‹ค๋ฉด ์‹œ์Šคํ…œ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„์šฐ๊ณ , ๋‹ค์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. On-Demand Resources๋Š”โ€ฆ

  • Asset Pack์€ Xcode์— ์˜ํ•ด์„œ ๋งŒ๋“ค์–ด์ง
  • ์‹คํ–‰๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ Asset์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Œ
  • App Store๊ฐ€ ํ˜ธ์ŠคํŒ…ํ•จ
  • ํ•„์š”ํ•  ๋•Œ ๋‹ค์šด๋กœ๋“œํ•จ
  • ์ ์ ˆํ•œ ์‹œ์ ์— ๋˜์ฐพ์Œ
  • ๋””๋ฐ”์ด์Šค์— ๋งž๊ฒŒ ์ตœ์ ํ™”๋จ

์žฅ์ ์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€๊ฒŒ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

  • ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์ ์€ ๋””๋ฐ”์ด์Šค ๋Œ€์‘ ๊ฐ€๋Šฅ
  • ์ดˆ๊ธฐ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„ ๊ฐ์†Œ
  • OTA ํฌ๊ธฐ ์ œํ•œ์•ˆ์— ์žˆ๊ธฐ ๋” ์‰ฝ๋‹ค. (์• ํ”Œ 100mb์ธ๊ฐ€ Cellular์ œํ•œ ์žˆ์Œ)
  • ๋œ ํƒ€ํ˜‘ํ•˜๊ณ  ๋งŽ์€ ๋””๋ฐ”์ด์Šค ์ง€์› ๊ฐ€๋Šฅ (๊ธฐ๊ธฐ ์ŠคํŽ™์— ๋”ฐ๋ผ ์šฉ๋Ÿ‰ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์ค„์–ด๋“ฆ)
  • ์ด์ „์— ๋งž์ถ”์ง€ ๋ชปํ–ˆ๋˜ ๊ธฐ๋Šฅ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ (์šฉ๋Ÿ‰ ์ œํ•œ ์ ์–ด์ง)

๋งˆ๋ฌด๋ฆฌ

App Slicing์— ์ด์–ด On-Demand Resources๊นŒ์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋‹ˆ ๊ดœ์ฐฎ์€ ๋“ฏ ์‹ถ๋‹ค. ๋‹ค์Œ์—๋Š” BitCode๊นŒ์ง€ ์•Œ์•„๋ณด์ž.

Reference