๐Ÿ“ฑ iOS

๋ฉด์ ‘์Šคํ„ฐ๋”” Day2 (Static Dispatch, Dynamic Dispatch, DB)

Kiwi๐Ÿ’ป 2022. 10. 27. 10:39

class์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๋‚˜์—ดํ•ด๋ณด์‹œ์˜ค.

Static Dispatch

"์ปดํŒŒ์ผ ํƒ€์ž„"์— ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ, ๋Ÿฐํƒ€์ž„ ๋•Œ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค

์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ •์ด ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ƒ ์ด์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค

Dynamic Dispatch

"๋Ÿฐํƒ€์ž„"์— ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค

๋•Œ๋ฌธ์— Swift์—์„œ๋Š” ํด๋ž˜์Šค๋งˆ๋‹ค ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋“ค์˜ ๋ฐฐ์—ด์ธ vTable(Virtual Dispatch Table)์ด๋ผ๋Š” ๊ฒƒ์„ ์œ ์ง€ํ•œ๋‹ค

ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ์ด vTable ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‹ค์ œ ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค

์ด ๊ณผ์ •๋“ค์ด "๋Ÿฐํƒ€์ž„"์— ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ƒ ์†ํ•ด๋ฅผ ๋ณด๊ฒŒ ๋œ๋‹ค

์ถœ์ฒ˜: https://babbab2.tistory.com/

์•ฑ์˜ ์ฝ˜ํ…์ธ ๋‚˜ ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ์ €์žฅ/๋ณด๊ด€ํ•˜๋Š” ํŠน๋ณ„ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฌด์—‡์ด๋ผ๊ณ  ํ•˜๋Š”๊ฐ€?

UserDefaults

์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ฐ™์€ ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์ €์žฅ์— ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด๋‹ค. [๋ฐ์ดํ„ฐ,ํ‚ค(key]ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ด๋•Œ key๊ฐ’์œผ String ๊ฐ’์ด๋‹ค.

CoreData

๋””๋ฐ”์ด์Šค์— permanent data๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” Framework์ด๋‹ค. CoreData์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ Persistence(SQLite๋ฅผ ์ง€์›๋ฐ›์Œ)๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์ €์žฅ์„ ํ•œ๋‹ค.

'๐Ÿ“ฑ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฉด์ ‘์Šคํ„ฐ๋”” Day1(Frame, Bounds, ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)  (0) 2022.10.25
์ปฌ๋ ‰์…˜ ๋ทฐ  (0) 2022.07.26