ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

iOS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํ„ฐ๋””๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ ์ด์œ 

์šฐ์—ฐํžˆ ๋””ํ”„๋งŒ ๋™์•„๋ฆฌ์—์„œ iOS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํ„ฐ๋””์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
๋™์•„๋ฆฌ ๋‚ด์—๋Š” ํ˜„์—…์ž๋ถ„๋“ค๋„ ๊ณ„์‹œ๊ณ , ์‹ค๋ฌด ๊ด€์ ์—์„œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ๊ธฐํšŒ๊ฐ€ ํ”์น˜ ์•Š๋‹ค ๋ณด๋‹ˆ ์ฐธ์—ฌ๋ฅผ ๊ฒฐ์‹ฌํ–ˆ๋‹ค.

์ด 6๋ช…์ด์„œ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ๋‚˜๋ฅผ ์ œ์™ธํ•˜๋ฉด ๋ชจ๋‘ ํ˜„์—…์„ ํ•˜๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์ด์—ˆ๋‹ค.
์—ฐ์ฐจ๋„ 1~4๋…„์ฐจ๊นŒ์ง€ ๋‹ค์–‘ํ•ด์„œ, ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ณด๋”๋ผ๋„ ๊ฐ์ž ๋‹ค๋ฅธ ํฌ์ธํŠธ์— ๊ด€์ ์„ ๋‘๊ณ  ํ•ด์„ํ•˜๋Š” ๊ณผ์ •์„ ํ†ตํ•ด

“์™œ ์ด๋ ‡๊ฒŒ ์„ค๊ณ„ํ–ˆ๋Š”์ง€”๋ฅผ ๋” ์ž…์ฒด์ ์œผ๋กœ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ๋ฐฐ์šฐ๊ณ  ์‹ถ์—ˆ๋‹ค.


๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ํ•™์Šต ๋ฐฉ์‹: ์‚ฌ์šฉ์ž ๊ด€์ ์ด ์•„๋‹ˆ๋ผ ์„ค๊ณ„์ž ๊ด€์ 

์ด๋ฒˆ ์Šคํ„ฐ๋””์—์„œ ๋‚ด๊ฐ€ ๊ฐ€์ ธ๊ฐ€๊ณ  ์‹ถ์€ ํ•™์Šต ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•˜๋‹ค.

  • Problem → Solution → Trade-off
  • ์‚ฌ์šฉ์ž ๊ด€์  X → ์„ค๊ณ„์ž ๊ด€์  O

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ํ”ํžˆ “์ด ๋ฉ”์„œ๋“œ๋Š” ๋ญ˜ ํ•œ๋‹ค / ์ด ํด๋ž˜์Šค๋Š” ๋ญ˜ ๋‹ด๋‹นํ•œ๋‹ค” ๊ฐ™์€ ๊ธฐ๋Šฅ ์„ค๋ช…์œผ๋กœ ๋๋‚˜๊ธฐ ์‰ฝ๋‹ค.

 

ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์‹ค๋ ฅ์ด ์Œ“์ด๋Š” ์ง€์ ์€ ๊ทธ ๋‹ค์Œ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
์ฆ‰, ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์ด ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๊ฐ€ ํƒœ์–ด๋‚œ ์ด์œ ๋ฅผ ๋ฌป๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ด ์ฝ”๋“œ๋Š” ์–ด๋–ค ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ƒ๊ฒผ๋Š”๊ฐ€? (Problem)
  • ๊ทธ ๋ฌธ์ œ๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋Š”๊ฐ€? (Solution)
  • ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์„ ํƒ์€ ๋ฌด์—‡์„ ์–ป๊ณ , ๋ฌด์—‡์„ ํฌ๊ธฐํ–ˆ๋Š”๊ฐ€? (Trade-off)

์ด ๊ด€์ ์ด ์žกํžˆ๋ฉด, ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•˜๋‚˜๋ฅผ ๋„˜์–ด์„œ์„œ
๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/์šฐ๋ฆฌ ์ฝ”๋“œ์—์„œ๋„ ๊ฐ™์€ ์งˆ๋ฌธ์„ ๋˜์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


์Šคํ„ฐ๋”” ์ง„ํ–‰ ๋ฐฉ์‹

์Šคํ„ฐ๋””์˜ ๋ฐฉํ–ฅ์€ ๋”ฑํžˆ ๊ฐ•ํ•˜๊ฒŒ ์ •ํ•ด์ง„ ๊ฑด ์—†๊ณ , ๊ฐ์ž ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๋Š” ํ๋ฆ„์ด๋‹ค.


๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋งค์ฃผ “๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๊ฒƒ”์„ ๋‹จ์ˆœ ์š”์•ฝํ•˜๊ธฐ๋ณด๋‹ค,

๋‚ด๊ฐ€ ํ•™์Šตํ•˜๋ฉด์„œ ์‹ค์ œ๋กœ ๊ถ๊ธˆํ–ˆ๋˜ ์ง€์ ๊ณผ ๊ทธ ์ง€์ ์ด ๋“œ๋Ÿฌ๋‚ด๋Š” ์„ค๊ณ„ ํŒ๋‹จ์˜ ๊ทผ๊ฑฐ/ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•ด ๊ณต์œ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.


์ฒซ ๋ฒˆ์งธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ์ด๋ฏธ์ง€ ์บ์‹ฑ Kingfisher

์ฒซ ๋ฒˆ์งธ๋กœ ์„ ์ •ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๋ฏธ์ง€ ์บ์‹ฑ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Kingfisher์˜€๋‹ค.
์š”์ฆ˜ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ CPU์˜ “์บ์‹œ”๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๊ณ„์† ์ ‘ํ•˜๋‹ค ๋ณด๋‹ˆ, ์ด๋ฏธ์ง€ ์บ์‹ฑ๋„ ๋” ์นœ๊ทผํ•˜๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค.

 

์‚ฌ์‹ค ๋‚˜๋Š” Kingfisher๋ฅผ ๋‹จ์ˆœํžˆ “์ด๋ฏธ์ง€ ์บ์‹œ๋ฅผ ํ•ด์ฃผ๋Š” ๋ž˜ํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ” ์ •๋„๋กœ๋งŒ ์‚ฌ์šฉํ•ด์™”๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” “๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒƒ”์„ ๋„˜์–ด, ์™œ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€๋ฅผ ์ฝ”๋“œ๋กœ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

๋ฌผ๋ก  ํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜จ์ „ํžˆ “์”น์–ด ๋จน๋Š” ๊ฒƒ”์€ ์‰ฝ์ง€ ์•Š๋‹ค.
๊ทธ๋ž˜๋„ ์ด ์‹œ๊ฐ„์„ ์†Œ์ค‘ํžˆ ์—ฌ๊ฒจ์„œ, ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์—๋Š” ์–ด๋–ค ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ๊ณ ,

๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๊ฐ์ˆ˜ํ–ˆ๋Š”์ง€๋ฅผ ์ œ๋Œ€๋กœ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค.

๊ฒฐ๊ตญ ๋ชฉํ‘œ๋Š” ํ•˜๋‚˜๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฝ๋Š” ๊ฒฝํ—˜์ด, ๋‚ด ์—”์ง€๋‹ˆ์–ด๋ง ์‚ฌ๊ณ (๋ฌธ์ œ ์ •์˜ → ์„ค๊ณ„ ์„ ํƒ → ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ํŒ๋‹จ)๋ฅผ ๋” ๋‹จ๋‹จํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ.