[Swift] Keychain vs UserDefaults
ยท
๐ŸŽ Dev/Swift
iOS ์•ฑ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด, ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ์ง€๋ฅผ ํ•œ๋ฒˆ์”ฉ์€ ๊ผญ ๊ณ ๋ฏผํ•ด๋ณด๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.CoreData, UserDefaults, Keychain ๋“ฑ์ด ์žˆ๋Š”๋ฐ, ์ด ๊ธ€์€ ๋ณด์•ˆ ์œ ์ง€๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ Keychain์— ๋Œ€ํ•ด ์ •๋ฆฌ๋‹ค.      1. UserDefaults๋กœ  ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด ์ €์žฅ? ๋ฌผ๋ก , UserDefaults์— ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์šฐ์„  UserDefaults์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์ž.  UserDefaults๋Š”, 1. ๋Ÿฐํƒ€์ž„์— ๋™์ž‘2. ์•ฑ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•ด info ํŒŒ์ผ์— key-value์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒŒ๋“œ๋ฐ•์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์„ ์‚ญ์ œํ•˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ด..
[Swift] Method Dispatch
ยท
๐ŸŽ Dev/Swift
SweepSwift iOS ๋ฉด์ ‘ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ž‘์„ฑํ•œ ๊น€์— iOS ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์•ฑ์˜ ๊ธฐ๋Šฅํ–ฅ์ƒ ๋ฉด์—์„œ ๊ผญ ๊ณ ๋ คํ•ด๋ด์•ผํ•œ๋‹ค๋Š” Method Dispatch์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.    โœ”๏ธŽ Method DispatchMethod dispatching is the process of finding the address of instructions to be executed by the CPU when a particular method is called. ์–ด๋–ค ์ธ์Šคํ„ด์Šค์˜ ํ˜ธ์ถœ๊ตฌ๋ฌธ์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ• ์ง€ ์„ ํƒํ•˜๋Š” ๊ฒƒ์„ ๋ฉ”์†Œ๋“œ ๋””์ŠคํŒจ์น˜๋ผ๊ณ  ํ•œ๋‹ค.์–ด๋Š ์‹œ์ (์ปดํŒŒ์ผํƒ€์ž„ vs ๋Ÿฐํƒ€์ž„)์— ์–ด๋–ค method๋ฅผ ์‚ฌ์šฉํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ์„œ Static Dispatch์™€ Dynamic Dispatch๋กœ ๋‚˜๋‰œ..
[Swift] unowned vs weak
ยท
๐ŸŽ Dev/Swift
ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์€ iOS ๋ฉด์ ‘์Šคํ„ฐ๋”” SweepSwift์—์„œ ์ง„ํ–‰ํ•œ ์งˆ๋ฌธ ์ค‘ ์ œ๊ฐ€ ๋‹ด๋‹น ํ–ˆ๋˜ ์งˆ๋ฌธ์˜ ๋‹ต๋ณ€ ๋‚ด์šฉ์„ ์ •๋ฆฌ ๋ฐ ๋ณด๊ฐ•ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.    ๐Ÿ”ด unowned์™€ weak์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜์„ธ์š”.์บก์ฒ˜ ๋ฆฌ์ŠคํŠธ, ๊ฐ์ฒด๊ฐ„์˜ ์ฐธ์กฐ ๋“ฑ์˜ ๊ฒฝ์šฐ์ธ ๊ฐ•ํ•œ ์ฐธ์กฐ ์ˆœํ™˜(Strong Reference Cycle)๋กœ ์ธํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฐธ์กฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.   ๐Ÿ“Œ unowned unwoned๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ’(value)์ด ํ•ญ์ƒ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹นํ•ด์ œ๋ฅผ ํ•ด๋„ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.unowned๋Š” ๊ฐ’์— ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  unowned ์ฐธ์กฐ๋Š” ํ• ๋‹นํ•ด์ œ๊ฐ€ ๋œ ์ƒํƒœ์ผ ๋•Œ nil๋กœ ์„ค์ •๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— (์ฆ‰, ๊ฐ์ฒด๊ฐ€ ARC์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด..