์งง์€

[ ์งง์€ ] 5 - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•˜๋‚˜ ์ดํ•ด ํ•˜๋ ค๋‹ค

Forest Yun 2024. 3. 29. 23:06
728x90

 

 

 

๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์›”๋ ˆ์Šค์™€ ๊ทธ๋กœ๋ฐ‹์— ๋‚˜์˜ค๋Š” ํŽญ๊ท„ ์•…๋‹น๐Ÿ”ซ

 

5๏ธโƒฃ ๋ฒˆ ๊ธ€์„ ์‹œ์ž‘ํ•˜๋ฉฐ

๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ •๋ง ๋งŽ์€ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๋ณด๊ฒŒ ๋˜๋Š”๋ฐ, ํŽธํ•˜๊ฒŒ ์ ์€ ๋“ฏ ํ•˜๋ฉด์„œ๋„ ๋‚ด์šฉ ์ „๋‹ฌ์ด ์ž˜ ๋˜๋Š” ๊ธ€์„ ๋ณด๋ฉด '์ด ๊ธ€์„ ์“ธ ๋•Œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋“ค์˜€์„๊นŒ' ์ƒ๊ฐ์ด ๋“ค์–ด ์ข‹์•„์š”๋ฅผ ๊ผญ ๋ˆ„๋ฅด๊ณ  ๋‚˜์˜จ๋‹ค. ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“œ๋Š” ๋งŒํผ ๋‚˜๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์“ธ ๋•Œ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”๋ฐ, ๊ทธ๋ž˜๋„ ํ•ญ์ƒ ์•„์‰ฌ์›€์ด ๋‚จ๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ํ•ญ์ƒ '๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•œ๋‹ค' ์— ์ƒ๊ฐํ•˜๋ฉฐ ๊ธ€์„ ๊ณ„์† ์จ ์™”๋Š”๋ฐ ์ง€๊ธˆ๊นŒ์ง€ ๊ธ€์ด ๊ฝค ์Œ“์—ฌ ๋ฟŒ๋“ฏํ•˜๋‹ค! 

์งง์€ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ๋” ๋ถ€๋‹ด์„ ๋‚ด๋ ค๋†“๊ณ  ๊ธ€์„ ์“ฐ๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ํŽธํ•˜๊ฒŒ ์“ฐ๋ ค๋‹ค ๋ณด๋‹ˆ ๋” ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™์•„ ๊ธ€์ด ์ž˜ ์•ˆ ์จ์ง„๋‹ค. ๊ทธ๋Ÿด ์ˆ˜๋ก ๋” ๋ถ€๋‹ด์„ ๋‚ด๋ ค ๋†“๊ณ  ํŽธํ•˜๊ฒŒ ์“ฐ๋ ค ํ•œ๋‹ค.

 

 

 

 

 

๐Ÿ” ํ–„๋ฒ„๊ฑฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

์ž‘๋…„ ๋ง๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 0 ๋ ˆ๋ฒจ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํ’€์–ด๊ฐ€๊ณ  ์žˆ๋Š”๋ฐ ์˜ฌํ•ด ์ดˆ๋ถ€ํ„ฐ 1 ๋ ˆ๋ฒจ์— ์ž…์„ฑํ•ด ์ ˆ๋ฐ˜ ๊ฐ€๋Ÿ‰ ํ’€์—ˆ๋‹ค! ์•„์ง ๊ฐˆ ๊ธธ์ด ๋ฉ€๋‹ค๋Š”๊ฑธ ์•Œ์ง€๋งŒ 1 ๋ ˆ๋ฒจ๊นŒ์ง€ ์˜ฌ๋ผ์˜จ ๊ฒƒ์— ๊ธฐ๋ปํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์•„๋ฌดํŠผ ์˜ค๋Š˜์€ ํ–„๋ฒ„๊ฑฐ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ์€ ์•„์ฃผ ์‰ฌ์› ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ๊ฐ„ ์ดˆ๊ณผ์— ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ํ•˜๋‚˜์”ฉ ์Šคํƒ์„ ์Œ“์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ์ž‘์œผ๋กœ replacingOccurrences๋ถ€ํ„ฐ ์ •๊ทœ์‹๊นŒ์ง€ ์ƒ๊ฐ๋‚˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค ํ•ด๋ดค๋Š”๋ฐ, ์ ์  ์ฝ”๋“œ๋Š” ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋Š˜์–ด๊ฐ€๋Š” ๊ฑธ ๋ณด๋ฉด์„œ ์ด๊ฑด ์•„๋‹ˆ๋‹ค ์‹ถ์—ˆ๋‹ค. ์ด๋ฏธ ๊ณ„ํšํ–ˆ๋˜ ํ•˜๋ฃจ ํ’€์ด ์‹œ๊ฐ„์ด ํ›Œ์ฉ ๋„˜์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ธ€๋ง์œผ๋กœ ์•„์ด๋””์–ด๋ฅผ ์–ป๊ณ  ๋‚ด์ผ ๋‹ค์‹œ ํ’€์–ด๋ณด๋ ค ํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ตฌ๊ธ€๋ง์„ ํ•˜์ž๋งˆ์ž ๋‚˜๋ž‘ ๋˜‘๊ฐ™์ด ํ’€๊ณ  ํ†ต๊ณผํ•œ ๊ธ€์„ ๋ณด์•˜๋‹ค. ๊ทธ ๋ถ„์˜ ์ฝ”๋“œ์™€ ๋‚ด ์ฝ”๋“œ์˜ ์ฐจ์ด์ ์€ ArraySlice ์ธ์Šคํ„ด์Šค๋กœ Array ์ธ์Šคํ„ฐ์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ ๋ถ„๋„ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ด ๋‘ ๊ฐ์ฒด์˜ ์†๋„ ์ฐจ์ด๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฑด ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Swift - ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ(LV.1)

๋ฌธ์ œ ์„ค๋ช… ํ–„๋ฒ„๊ฑฐ ๊ฐ€๊ฒŒ์—์„œ ์ผ์„ ํ•˜๋Š” ์ƒ์ˆ˜๋Š” ํ–„๋ฒ„๊ฑฐ๋ฅผ ํฌ์žฅํ•˜๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์ผ์„ ํ•˜๋Š” ๋‹ค๋ฅธ ์ง์›๋“ค์ด ํ–„๋ฒ„๊ฑฐ์— ๋“ค์–ด๊ฐˆ ์žฌ๋ฃŒ๋ฅผ ์กฐ๋ฆฌํ•ด ์ฃผ๋ฉด ์กฐ๋ฆฌ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์ˆ˜์˜ ์•ž์— ์•„๋ž˜์„œ๋ถ€ํ„ฐ ์œ„

developer-eddy403.tistory.com

 

 

 

๐Ÿค” Array์™€ ArraySlice

๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ Swift์—์„œ๋Š” Array๊ฐ€ ๊ฐ’ ํƒ€์ž…์ด๋‹ค. ๊ทธ๋ž˜์„œ ํ• ๋‹น์„ ํ•˜๋ฉด ์ฐธ์กฐ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ์— ๋ณ„๊ฐœ์˜ Array ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋“ค์œผ๋ฉด ์ž์นซ ๋น„ํšจ์œจ์ ์ด์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด Swift๊ฐ€ ํšจ์œจ์ ์ธ ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

Array๋Š” copy-on-write ์ตœ์ ํ™”, ์ฆ‰ ๋ณต์‚ฌ ๋œ ํ›„ ์ˆ˜์ •๋œ๋‹ค. Array ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ง„ ๋ณ€์ˆ˜1์„ ๋ณ€์ˆ˜2์— ํ• ๋‹นํ•˜๋ฉด ๋ณ„๊ฐœ์˜ Array๋ผ์„œ ๋ณ€์ˆ˜1์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋ณ€์ˆ˜2๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์ˆ˜์ •์ด ์ผ์–ด๋‚˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ณ€์ˆ˜1๊ณผ ๋ณ€์ˆ˜2๋Š” ๋ชจ๋‘ ๊ฐ™์€ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ (share)ํ•œ๋‹ค.

์ฃผ์˜ํ•ด์•ผํ•  ๊ฒƒ์€ reference๊ฐ€ ์•„๋‹ˆ๋ผ share๋ผ๊ณ  ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ์˜์–ด๋กœ๋œ ๋ฌธ์„œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ๋Š๋‚€ ์ ์€ ๊ทธ๋ƒฅ ๊ฐœ๋ฐœ ๋‚ด์šฉ๋„ ์–ด๋ ค์šด๋ฐ ์˜์–ด๊นŒ์ง€ ํ•ด์„ํ•ด์•ผํ•˜๋‹ˆ ๋”์šฑ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ดํ•ด์— ๋„์›€์ด ๋˜๋Š” ๊ฑด ๋‹จ์–ด์ด๋‹ค! ์ผ๋ถ€๋Ÿฌ ๊ทธ ๋‹จ์–ด๋ฅผ ์“ด ์ด์œ ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์–ด๋กœ ๋‚ด์šฉ์„ ์—ฐ๊ฒฐํ•ด๊ฐ€๋ฉด ๊ณต๋ถ€์— ๋„์›€์ด ๋œ๋‹ค!

๋‹ค์‹œ ๋Œ์•„๊ฐ€์„œ Array๋Š” ์ด๋ ‡๊ฒŒ copy-on-write ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•œ๋‹ค. ๋ฌผ๋ก  ๊ฐ’ ํƒ€์ž…์ธ๋งŒํผ ์ˆ˜์ •์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น Array๊ฐ€ ๋ณต์‚ฌ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ์ด ๋“ค์ง€๋งŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†๋Š”๋ฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณต์‚ฌ๋ณธ์ด ์ƒ๊ธด๋‹ค๋ฉด ์ •๋ง ๋‚ญ๋น„์ผ ๊ฒƒ์ด๋‹ค.

 

ArraySlices๋Š” Array.prefix ์ฒ˜๋Ÿผ Array์˜ ์ผ๋ถ€๋ถ„์„ ์กฐ๊ฐ(slice)๋‚ด๊ฒŒ ๋˜๋ฉด ์–ป๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์˜ Array๊ฐ€ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ (share)ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌด์กฐ๊ฑด ์กฐ๊ฐ๋‚ด์ง„ ์•Š๋Š”๋‹ค. ArraySlice๋Š” ์›๋ž˜ Array์˜ ์ €์žฅ์†Œ ์ „์ฒด๋ฅผ ์ฐธ์กฐ(reference)ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹นํ•˜๋Š” ๋ฒ”์œ„๋ฅผ "view"๋ฅผ ํ†ตํ•ด ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋ž˜์„œ Array์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ ์ž‘์—…๋“ค์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ "์ „์ฒด"๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ ์›๋ž˜ Array๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋˜ ๋ณ€์ˆ˜์˜ LifeTime์ด ๋๋‚˜ ํ•ด๋‹น Array๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋”๋ผ๋„, ArraySlice์˜ ์ฐธ์กฐ๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ• ๋‹น ํ•ด์ œ๋˜์ง€ ๋ชปํ•˜๊ณ  ๋‚จ๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๊ฑด ๊ฐ•ํ•œ ์ฐธ์กฐ ์‚ฌ์ดํด์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(memory leak)๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.  

 

 

 

 

 

 

โ‰๏ธ Reference ํƒ€์ž…์€ Heap

๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์—ฌ๊ธฐ๊นŒ์ง€ ์ž˜ ๊ณต๋ถ€ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑธ๋กœ Array์™€ ArraySlice ๊ฐ„์˜ ์†๋„ ์ฐจ์ด๊ฐ€ ์ดํ•ด๋˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ ์ด ๋‘˜์˜ ์ฐจ์ด๋ฅผ ๋ณด๊ฒŒ ๋œ ๋ธ”๋กœ๊ทธ๋ฅผ ๋‹ค์‹œ ์ฝ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  '์ฐธ์กฐ ํƒ€์ž…์€ Heap์˜์—ญ์„ ์‚ฌ์šฉ.."ํ•œ๋‹ค๋Š” ๋ง์— ์ง‘์ค‘ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ € ๋ฉ€๋ฆฌ ์•„๋“ํžˆ ์žˆ๋˜ ์šด์˜์ฒด์ œ ์ˆ˜์—…์—์„œ์˜ ๊ธฐ์–ต์„ ๋– ์˜ฌ๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ์ „๊ณต ์„œ์ ์„ ๊บผ๋‚ด ์ฐพ์•„ ์ฝ์—ˆ๋‹ค. 'ํ”„๋กœ์„ธ์Šค์™€ ๊ทธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์—ˆ์„ ๋•Œ..' ์„ค๋ช…์„ ์ฝ์œผ๋ฉฐ Stack๊ณผ Heap ์˜์—ญ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์› ์—ˆ์ง€ ์ƒ๊ฐํ•˜๋ฉฐ ์ฝ์—ˆ์ง€๋งŒ ์ •ํ™•ํ•˜๊ฒŒ Heap์˜์—ญ์— ์ฐธ์กฐ ํƒ€์ž…์ด ํ• ๋‹น๋œ๋‹ค๋Š” ๋ง์€ ์—†์—ˆ๋‹ค. ์ดํ•ด๋ฅผ ์œ„ํ•ด ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์ฑ… ์„ค๋ช…, ๋ธ”๋กœ๊ทธ ๊ณต๋ถ€ ๊ธ€ ๋“ฑ์„ ์ฝ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋Š” ๊ผญ ๊ฐ’ ํƒ€์ž…, ์ฐธ์กฐ ํƒ€์ž…์ด ์–ด๋–ค ์˜์—ญ์— ๋“ค์–ด๊ฐ€๋Š”๊ฑด ์•„๋‹ˆ๋ผ๊ณ  ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์ฐธ์กฐ ํƒ€์ž…์ด Heap ์˜์—ญ์— ํ• ๋‹น๋˜๋Š” ๊ฑด, Heap ์˜์—ญ์ด ๋™์ ์˜์—ญ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ผ ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Stack์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ LIFO ๊ทœ์น™์„ ๊ฐ€์ ธ ์ž‘๋™๋˜์–ด์•ผ ํ•˜๋‹ˆ๊น ์ง€์—ญ ๋ณ€์ˆ˜, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฒ˜๋Ÿผ LifeTime์ด ์ •ํ™•ํ•œ ๊ฒƒ๋“ค์ด ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 

๊ทธ๋ž˜๋„ ์ด๊ฑด ๋‚ด ์ƒ๊ฐ์ด๋ผ ์ž˜๋ชป ์ดํ•ดํ•œ ๊ฑฐ๋ฉด ์–ด์ฉŒ์ง€ ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋“ค ์–ด๋–ป๊ฒŒ ์ฐธ์กฐ ํƒ€์ž…์ด Heap ์˜์—ญ์ด๋ผ๊ณ  ํ™•์‹ ํ–ˆ์„๊นŒ ์ƒ๊ฐํ•ด ๋ธ”๋กœ๊ทธ ๊ธ€์— ์—ฐ๊ฒฐ ๋œ ๋งํฌ์— ์ง‘์ค‘ํ–ˆ๊ณ , ํ•ญ์ƒ ๋„์›€์ด ๋˜๋Š” ๋ธ”๋กœ๊ฑฐ์˜ ๊ธ€์—์„œ WWDC2016 ์˜์ƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

 

 

[iOS] Swift์˜ Type๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๊ณต๊ฐ„

Value Type์ด Heap์— ํ• ๋‹น ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค๊ตฌ์—ฌ???

sujinnaljin.medium.com

 

Understanding Swift Performance - WWDC16 - Videos - Apple Developer

In this advanced session, find out how structs, classes, protocols, and generics are implemented in Swift. Learn about their relative...

developer.apple.com

 

 

 

 

 

 

๐Ÿ WWDC2016

2016๋…„์€ Swift 3.0์ด ๋ฐœํ‘œ๋œ ํ•ด์ด๋‹ค. ์˜์ƒ์ด ์ •ํ™•ํžˆ ์–ธ์ œ ์‹œ๊ธฐ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ํ•ด๋‹น ์˜์ƒ์„ ์‚ดํŽด๋ณด๋‹ˆ Swift์˜ ์ˆ˜ํ–‰๊ณผ ๊ด€๋ จํ•ด Stack๊ณผ Heap์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฐพ๋˜ ์˜์ƒ์ด์—ˆ๋‹ค! ํ•˜์ง€๋งŒ ๊ทผ๋ณธ์„ ์„ค๋ช…ํ•˜๋Š” ์˜์ƒ์ด๋‹ค ๋ณด๋‹ˆ... 1์‹œ๊ฐ„ ๋ถ„๋Ÿ‰์ด์—ˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ๋ชจ๋‘ ์˜์–ด๋กœ..!

๊ทธ๋ž˜๋„ Apple์€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์นœ์ ˆํ•ด์„œ ๋Œ€๋ณธ๋„ ๋‹ค ์žˆ์—ˆ๊ณ , ๋ฌธ์žฅ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ์ด๋™๋„ ํ•ด์ค€๋‹ค. ์ „์ž๋กœ๋Š” ๊ธ€์ฝ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํž˜๋“œ๋‹ˆ๊น ์ผ๋‹จ ๋Œ€๋ณธ์„ ์ „๋ถ€ ์ถœ๋ ฅํ–ˆ๋‹ค. ์ž˜ ์ฝ์–ด๋ณด์ž...๐Ÿซจ

 

 

 

 

 

 

 

๐Ÿ˜ด ๋งˆ๋ฌด๋ฆฌ

๊ทธ๋ž˜์„œ ํ•˜๋ฃจ์ข…์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•œ ๋ฌธ์ œ๋กœ ์ •๋ง ๋งŽ์€ ํ•œ๊ตญ์–ด์™€ ์˜์–ด๋ฅผ ์ฝ์—ˆ๋‹ค.. ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ํ•˜๋‚˜๋„ ์—†์–ด์„œ ์•ฝ๊ฐ„ ํ—ˆ๋ฌดํ•ด ์งง์€ ๊ธ€์ด๋ผ๋„ ๋‚จ๊ฒจ ์ด ํ•˜๋ฃจ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ๋ผ๋„ ๊ธ€์„ ๋‚จ๊ธฐ๋‹ˆ ์ •๋ง ํ•˜๋ฃจ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜๋Š” ๊ธฐ๋ถ„์ด ๋“ค๊ณ , ์˜ค๋Š˜ ์ •๋ง ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์–ป์—ˆ๊ตฌ๋‚˜ ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋จธ๋ฆฟ์†์ด ์ข€ ์ •๋ฆฌ๋œ๋‹ค. ์‹ค์ œ๋กœ๋„ ๊ธ€์„ ์“ฐ๋ฉด์„œ ์ดํ•ดํ•œ ๋ถ€๋ถ„๋„ ์žˆ๋‹ค. ๋‚ด์ผ์€ 1์‹œ๊ฐ„ ์งœ๋ฆฌ ์˜์–ด + ๊ฐœ๋ฐœ ์„ ์ดํ•ดํ•˜๋ฉฐ ๊ธ€๊นŒ์ง€ ์ •๋ฆฌํ•ด์•ผ์ง€.. ํ™”์ดํŒ…!!!

 

 

 

728x90