๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ/Swift

[Swift] ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ฐจ์ด

by yenios 2021. 6. 16.

 

 

 

 

 

(๋ณธ ๋น„๊ต๋Š” Swift5๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.)

 

 

๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์šฉ๋„์— ๋งž๊ฒŒ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค ๋ชจ๋‘ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€, ๊ตฌ์กฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ’ ํƒ€์ž… ์ฆ‰, ๋ณต์‚ฌํ•œ ๊ฒƒ์„ ์ฃผ๊ณ ๋ฐ›๊ณ  ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ์ฐธ์กฐ(์ฃผ์†Œ)ํƒ€์ž…์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

'๋ฌด์—‡์„ ์ฃผ๊ณ ๋ฐ›๋Š”์ง€'๊ฐ€, ์ฆ‰ ์ฃผ๊ณ ๋ฐ›๋Š” ๋Œ€์ƒ์ด ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ธ ๊ฒƒ์ด์ฃ . ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผํ•  ์ ์€ Swift ์–ธ์–ด ๋‚ด์—์„œ ์ฐธ์กฐ ํƒ€์ž…์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์œ ์ผํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋ฅผ ๋น„๋กฏํ•ด์„œ ๋‹ค๋ฅธ ํ…Œ์ดํ„ฐ ํƒ€์ž…์€ ๋ชจ๋‘ ๊ฐ’ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

 

 

 

[๊ณตํ†ต์ ] ์‚ฌ์šฉ ๋ชฉ์  : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€

  • ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ๊ตฌ์กฐ์ฒด ๋˜๋Š” ํด๋ž˜์Šค๊ฐ€ ๊ฐ–๋Š” ๊ฐ’(ํ”„๋กœํผํ‹ฐ)์— ์ ‘๊ทผํ•˜๋„๋ก ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐํ™”๋  ๋•Œ์˜ ์ƒํƒœ๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐ๊ตฌํ˜„๊ณผ ๋”๋ถˆ์–ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ์ต์Šคํ…์…˜(Extensioin)์„ ํ†ตํ•ด ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํŠน์ • ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

[์ฐจ์ด์ ] ์ฃผ๊ณ ๋ฐ›๋Š” ๋Œ€์ƒ์˜ ํƒ€์ž… : ๊ตฌ์กฐ์ฒด -  Value, ํด๋ž˜์Šค - Reference

  • ๊ตฌ์กฐ์ฒด๋Š” ์ƒ์†ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ํƒ€์ž… ์บ์ŠคํŒ…์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์—๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋””์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์—๋งŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐธ์กฐ ํšŸ์ˆ˜ ๊ณ„์‚ฐ(Reference Counting)์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ  ๐Ÿ‘€

- ์Šค์œ„ํ”„ํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(3ํŒ): ๊ฐ์ฒด์ง€ํ–ฅ, ํ•จ์ˆ˜ํ˜•, ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„๊นŒ์ง€ ํ•œ ๋ฒˆ์—!(Swift 5)

 

Swift - ๊ตฌ์กฐ์ฒด ํด๋ž˜์Šค - yagom's blog

yagom's blog Swift - ๊ตฌ์กฐ์ฒด ํด๋ž˜์Šค

blog.yagom.net

 

 

๋Œ“๊ธ€