ARC, MRC
ยท
๐Ÿ—ฃ๏ธ ๋ฉด์ ‘/๋ฉด์ ‘์งˆ๋ฌธ์ •๋ฆฌ
Q. ARC, MRC๋ž€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” A. 1. ARC๋Š” ์ž๋™์œผ๋กœ HeapObject์•ˆ์— ๋“ค์–ด์žˆ๋Š” Reference Count๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. -> Java์˜ Garbage Collector์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ปดํŒŒ์ผ ์‹œ์ ์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. 2. MRC๋Š” ์ˆ˜๋™์œผ๋กœ Reference Count๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. Retain, release ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Objective-C ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. cf) - ๋™์  ํ• ๋‹น์œผ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ•ด๋‹น ์ •๋ณด๋Š” HeapObject๋ผ๋Š” struct๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. - HeapObject์—๋Š” ๋™์  ํ• ๋‹น๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ. ์ฆ‰, reference count์™€ type meta data๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. Q. ARC๋Š” compile tim..
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
ยท
๐Ÿ—ฃ๏ธ ๋ฉด์ ‘/๋ฉด์ ‘์งˆ๋ฌธ์ •๋ฆฌ
Q. ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. A. ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ(๋ˆ„์ˆ˜)๋ž€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์ง€ ์•Š์•„ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋˜๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค. Q. ์ˆœํ™˜ ์ฐธ์กฐ(Reference Cycle)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” A. 1. ๋‘ ๊ฐ€์ง€ ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ์— ๋Œ€ํ•œ ๊ฐ•ํ•œ์ฐธ์กฐ ์ƒํƒœ๋ฅผ ๊ฐ€์งˆ ๋•Œ ์ˆœํ™˜ ์ฐธ์กฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2. ์ˆœํ™˜์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝํ•œ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ํ•ด์†Œ์‹œ์ผœ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Q. Retain Count ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” A. 1. ARC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฐฉ์‹์„ Retain Count ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2. ๋ฉ”๋ชจ๋ฆฌ์—์„œ reference count๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์„ retain, ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ์„ release๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Q. weak๊ณผ unowned๋ฅผ ๋น„๊ต ์„ค..
์˜ต์ €๋ฒ„ ํŒจํ„ด
ยท
๐Ÿ—ฃ๏ธ ๋ฉด์ ‘/๋ฉด์ ‘์งˆ๋ฌธ์ •๋ฆฌ
Q. ์˜ต์ €๋ฒ„ ํŒจํ„ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. A. 1. ์˜ต์ €๋ฒ„ ํŒจํ„ด์ด๋ž€, ์–ด๋–ค ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•  ๋•Œ ๊ทธ๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ๊ตฌ๋…์ž๋“ค์—๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์ฃผ๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. 2. ์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์ด๊ณ , ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋Š์Šจํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ์˜ต์ €๋ฒ„ ํŒจํ„ด์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ฐ์ฒด์ง€ํ–ฅ์˜ Open-closed principle (๊ฐœ๋ฐฉ-ํ์‡„์›์น™)์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์žฅ์ )
MVVM, MVC ํŒจํ„ด
ยท
๐Ÿ—ฃ๏ธ ๋ฉด์ ‘/๋ฉด์ ‘์งˆ๋ฌธ์ •๋ฆฌ
Q. MVVM ํŒจํ„ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” A. 1. Model, View, ViewModel๋กœ ์ด๋ฃจ์–ด์ง„ ๋””์ž์ธํŒจํ„ด์ž…๋‹ˆ๋‹ค. 2. MVVM ํŒจํ„ด์˜ ๋ชฉ์ ์€ ๋ทฐ ๋กœ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 3. MVVM์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ๋ทฐ์™€ ๋ทฐ๋ชจ๋ธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Q. MVC ํŒจํ„ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” A. 1. MVCํŒจํ„ด์€ Model, View, Controller๋กœ ์ด๋ฃจ์–ด์ง„ ๋””์ž์ธํŒจํ„ด์ž…๋‹ˆ๋‹ค. 2. MVCํŒจํ„ด์˜ ๋ชฉ์ ์€ ๋ทฐ์™€ ๋ชจ๋ธ์˜ ์˜์กด์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ด๋ฅผ Controller๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 3. MVCํŒจํ„ด์€ Controller๊ฐ€ View์™€ Model์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
JerryiOS
'๐Ÿ—ฃ๏ธ ๋ฉด์ ‘' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก