swift - ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด

2022. 7. 5. 14:34ใ†ios

swift - ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด

 

 

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ swift ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ๊ฐœ๋…์ด ๋‚˜ํƒ€๋‚ฌ์„๊นŒ์š”?

 

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด

"์•ฑ ๋‚ด์—์„œ ์œ ์ผํ•˜๊ฒŒ ์กด์žฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค"

 

์•ฑ์„ ์ž‘๋™ํ•˜๋‹ค๋ณด๋ฉด ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๊ณตํ†ต์ ์ด ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ๋“ค์„ ๋ฝ‘์•„๋‚ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์ง„+์ œ๋ชฉ+๊ธ€+๋‚ ์งœ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ

 

๊ทธ๋Ÿฐ๋ฐ ์ด์ฒ˜๋Ÿผ ํ‹€ ์†์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋กœ "๊ณต์œ "ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

์ด๋ฅผ ์œ„ํ•ด ๋‚˜์˜จ ๊ฐœ๋…์ด ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

 

 

์‹ฑ๊ธ€ํ†ค ์ฝ”๋“œ

 

 

1. static let์œผ๋กœ shared๋ฅผ ์„ ์–ธํ•จ์œผ๋กœ์จ shared๋Š” "์ „์—ญ"์œผ๋กœ ๋งŒ๋“ค๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ฃผ์–ด ์œ ์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

2. ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ์จ shared์—๋Š” ์ƒ์„ฑ๋œ ํด๋ž˜์Šค์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

3. private init์„ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋กœ์จ ํด๋ž˜์Šค SingleTon์€ sharedํ”„๋กœํผํ‹ฐ๋งŒ์œผ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ์œ ์ผํ•œ ๊ณต์œ  ๊ฐ์ฒด๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์œ„์˜ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

printํ•จ์ˆ˜์—์„œ obj2๊ฐ€ ์•„๋‹Œ obj์˜ aํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ–ˆ๋Š”๋ฐ 789๊ฐ€ ์ถœ๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 

์ฆ‰ "shared๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ํ•ญ์ƒ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค."๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 ios์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

'ios' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

iOS - Realm  (0) 2022.09.19
Swift - ํด๋ž˜์Šค ์ƒ์†๊ณผ ์žฌ์ •์˜  (1) 2022.07.06
Swift - ์—ด๊ฑฐํ˜•(enum), ์›์‹œ๊ฐ’, ์—ฐ๊ด€๊ฐ’  (0) 2022.06.30
Swift- inout  (0) 2022.06.28
Swift - ํ•จ์ˆ˜  (0) 2022.06.27