iOS) mutating ํ‚ค์›Œ๋“œ๋Š” ๋ฌด์—‡์ผ๊นŒ?

ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š”ํƒ€์ž…์˜ ๊ตฌ์กฐ ์ž์‹ ์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋•Œ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ, ๊ฐ’ ํƒ€์ž…์˜ ๊ตฌ์กฐ์ฒด๋‚˜ ์—ด๊ฑฐํ˜• ๋“ฑ์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๊ฐ€ ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ mutating ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ”„๋กœํ† ์ฝœ์ด ์š”๊ตฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฉ”์†Œ๋“œ ์•ž์— mutating ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ๊ฐ’ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ mutating ์€ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ? Swift ์—์„œ ๊ฐ’ ํƒ€์ž…์ด ๋ณต์‚ฌ๋˜์—ˆ์„ ๋•Œ๋Š” ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋‹ค๊ฐ€ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ๋Š” ๋ณต์‚ฌํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋Š” COW(Copy on Write)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋กœ ๋‚ด..

iOS 2022. 9. 26. 09:11
iOS) COW(Copy-on-Write)

OptimizationTips ๋ฌธ์„œ์—์„œ Value Type(๊ฐ’ ํƒ€์ž…)์€ COW(Copy-on-Write) ์ตœ์ ํ™”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. COW ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์ „์— ํƒ€์ž…์— ๋”ฐ๋ผ์„œ ์–ด๋– ํ•œ ์‹์œผ๋กœ ๋ณต์‚ฌํ•˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. โœ… Swift ์—์„œ ๊ฐ’ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณต์‚ฌ ๋ฐฉ์‹์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฐ’ ํƒ€์ž… : ๊นŠ์€ ๋ณต์‚ฌ(deep copy). ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์‚ฌํ•œ ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๋”๋ผ๋„ ์›๋ณธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ํƒ€์ž… : ์–•์€ ๋ณต์‚ฌ(shallow copy). ์ตœ์†Œํ•œ์˜ ๋ณต์‚ฌ๋งŒ ์ง„ํ–‰. ๋ณต์‚ฌ๋ฅผ ํ•  ๋•Œ ์ฃผ์†Œ๊ฐ’์„ ๊ณต์œ ํ•œ๋‹ค. ์›๋ณธ๊ณผ ๋ณต์‚ฌ๋ณธ์ด ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’์„ ๊ณต์œ ํ•˜๋ฏ€๋กœ ํ•œ ์ชฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๋ฉด ๋‹ค๋ฅธ์ชฝ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๊ฐ’ ํƒ€์ž…์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•„๋„ ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ..

iOS 2022. 8. 25. 00:01
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
ยซ   2024/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
๋งํฌ
Total
Today
Yesterday