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

App Distribution Today

์ด์ „์˜ App ๋ฐฐํฌ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค. ๊ฐ€๋ฌผ๊ฐ€๋ฌผํ•˜๋‹ค๋ฉด ์ด ๊ธ€์„ ๋‹ค์‹œ๋ณด์ž.

  1. Xcode๋กœ ๊ฐœ๋ฐœ
  2. testํ›„ app store ์ œ์ถœ
  3. ๊ฐœ๋ฐœ์ž certificate๋กœ signingํ•œ๋‹ค. ์• ํ”Œ์€ ์ด๋ฅผ ๋ณด๊ณ  ๊ฒ€์ฆ๋œ ๊ฐœ๋ฐœ์ž์ธ์ง€ ์•„๋‹Œ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.
  4. ์• ํ”Œ์ด ์•ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์Šน์ธํ•œ๋‹ค.
  5. ์•ฑ์Šคํ† ์–ด๋Š” app store certificate๋กœ re-signingํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์ด app์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Whatโ€™s in an App?

๊ทธ๋Ÿผ ์•ฑ ์•ˆ์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ? ์ปดํŒŒ์ผ๋œ ์‹คํ–‰์ฝ”๋“œ์™€ Resource๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ฒ ๋‹ค.

Executable Code

์ƒ๋Œ€์  ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ ๋น„๋Œ€ํ•œ ์˜์—ญ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์‹คํ–‰๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” 32๋น„ํŠธ, 64๋น„ํŠธ CPU์ธ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฟ๋งŒ์ด ์•„๋‹ˆ๊ณ , ์–ด๋–ค ์•„ํ‚คํ…์ณ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ญ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ถ€๋ถ„์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด Architecture Configuration์„ ๋ณด๊ณ ์˜ค์ž. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด armv7, armv6s, arm64๋Š” iphone์— ๋“ค์–ด๊ฐ€๋Š” arm๊ณ„์—ด cpu ์•„ํ‚คํ…์ณ ์ข…๋ฅ˜์ด๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์— ๋Œ€์‘ํ•˜๋„๋ก ํ•ด์•ผ ์• ํ”Œ ์ƒํƒœ๊ณ„์— ์žˆ๋Š” ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด์—์„œ ๋™์ž‘ํ•˜๋„๋ก ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Resources

Resources์—์„œ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ? ๋จผ์ € ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ๋””๋ฐ”์ด์Šค๋“ค์˜ scale์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ด์— ๋งž๋Š” 1x, 2x, 3x ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

iPad์™€ ๊ฐ™์ด ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅธ ๋””๋ฐ”์ด์Šค๊นŒ์ง€ ๋Œ€์‘ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๋Š” ๋” ๋ณต์žกํ•ด์ง„๋‹ค.

๊ฒŒ์ž„์ด๋‚˜ ๋‹ค๋ฅธ 3D ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋ฐ˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, 1x 2x๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

OpenGL ES๋‚˜ Metal์˜ ๊ฐ•์ ์„ ์ ๊ทน ์ด์šฉํ•˜๋ ค๋ฉด, ๊ฐ asset์— ๋Œ€ํ•ด ๊ทธ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์งˆ๊ฐ(textures)์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”ฝ capability์— ๋”ฐ๋ผ ๋‚ฎ์€/๋†’์€ ํ’ˆ์งˆ์„ ์ฐจ๋ณ„ํ™” ํ•œ๋‹ค๋ฉด ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์—์„œ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ํ•œ ์˜ค๋””์˜ค๋„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. bit rates ์ธก๋ฉด์—์„œ ๋ณ€ํ™”๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

์ด์™ธ์— ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

App Slicing

๋ฌธ์ œ๋Š” ์ด๊ฑฐ๋‹ค. ์•ฑ ํ•˜๋‚˜์— ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ชจ๋“  ๊ฒƒ์„ ๊ณ ๋ คํ•ด์„œ ๋ฐฐ์น˜๋ฅผ ํ•ด๋‘์—ˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ด ๋ชจ๋“ ๊ฒŒ ํ•„์š”ํ•˜์ง€๋Š” ์•Š๋‹ค. ๊ฐ๊ฐ์˜ ์•ฑ์—์„œ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์™ ๋ฝ‘์•„ ๋‹ด์„ ์ˆ˜๋Š” ์—†์„๊นŒ?

๊ทธ๊ฒŒ ๋ฐ”๋กœ App Slicing์ด๋‹ค. iPad Mini๋ฅผ ์œ„ํ•œ ์•ฑ ๋ฒˆ๋“ค์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์•„ํ‚คํ…์ณ๋ฅผ ์„ ํƒํ•˜๊ณ , ์ž‘์œผ๋‹ˆ๊นŒ ์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๊ณ , ์„ฑ๋Šฅ๋„ ์ข‹์ง€ ๋ชปํ•˜๋‹ˆ ๊ทธ์— ๋งž๋Š” OpenGL๊ณผ ์˜ค๋””์˜ค๋ฅผ ์„ ํƒํ•˜์ž. ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋‹ˆ๊นŒ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ .

iPhone 6+์—ฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์„ฑ๋Šฅ์ด ์ข‹์œผ๋‹ˆ๊นŒ ์ข‹์€ ๋…€์„๋“ค์ด ๋งŽ์ด ๋“ค์–ด๊ฐ„๋‹ค.

์ด๊ฒƒ์ด!! ์œ„ ๊ทธ๋ฆผ์˜ ์ •์ฒด์˜€๋˜ ๊ฒƒ! App Record๋Š” Fat binary๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์•„์ฃผ ๋šฑ๋šฑํ•œ ์นœ๊ตฌ๋“ค! ์ด๊ฑธ App Store์—์„œ ๋ฐ›์•„์„œ, ์‹ค์ œ device์— ์ „๋‹ฌํ•  ๋•Œ๋Š” ์ด๋ฅผ ๊ฐ device์— ๋งž๋Š” ๋…€์„๋“ค๋กœ ์ถ”๋ฆฐ๋‹ค์Œ์— ์•ฑ ๋ฒˆ๋“ค์„ ๋งŒ๋“ค์–ด์„œ ipa ํ˜•ํƒœ๋กœ ๋ฟŒ๋ ค์ค€๋‹ค.

๋งˆ๋ฌด๋ฆฌ

App Thinning์˜ ์‹œ์ž‘ App Slicing์„ ์•Œ์•„๋ณด์•˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋” ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๊ทธ๊ฑด ๋‹ค์Œ๊ธ€, On Demand Resources์—์„œ ์•Œ์•„๋ณด์ž.

Reference