iOS ์ฑ ๊ฐ๋ฐ์ ํ๋ฉด, ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ง๋ฅผ ํ๋ฒ์ฉ์ ๊ผญ ๊ณ ๋ฏผํด๋ณด๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค.
CoreData, UserDefaults, Keychain ๋ฑ์ด ์๋๋ฐ, ์ด ๊ธ์ ๋ณด์ ์ ์ง๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ Keychain์ ๋ํด ์ ๋ฆฌ๋ค.
1. UserDefaults๋ก ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด ์ ์ฅ?
๋ฌผ๋ก , UserDefaults์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์๋ ์๋ค. ์ฐ์ UserDefaults์ ๋ํด ์ ๋ฆฌํด๋ณด์.
UserDefaults๋,
1. ๋ฐํ์์ ๋์
2. ์ฑ์ด ์คํ๋๋ ๋์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด info ํ์ผ์ key-value์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
์ด๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์๋๋ฐ์ค์ ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฑ์ ์ญ์ ํ๋ฉด ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ญ์ ๋๋ค๋ ํน์ง์ด ์๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ค ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ UserDefaults๋ฅผ ์ฌ์ฉํด์ ์ ์ฅํ์ง ์๋์ง์ ๋ํด ๊ณ ๋ฏผํด๋ณด์๋ฉด, OS๋ฅผ ํ์ฅํ๋ ์ผ์ด ๋ฒ์ด์ง ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด์ฌ์ฃผ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ๋ณด์์ฑ์ด ์ทจ์ฝํ๋ค! ๊ทธ๋์ ์ฌ์ฉ์์ ์ฑ ๊ฒฝํ ์ํ (๋ก๊ทธ์ธ ์ ๋ฌด, ์ฒซ ์ง์ ์ ๋ฌด) ๋ฑ์ ์ ์ฅํ๊ธฐ์ ์ ํฉํ์ง๋ง, ๋ณด์์ด ํ์ํ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ UserDefaults ์ฌ์ฉ์ด ์ง์๋๋ค.
2. Keychain?
ํค์ฒด์ธ์ด๋?
ํค์ฒด์ธ์ด๋ ๊ฐ๋จํ ์ค๋ช ํ์๋ฉด Apple์ด ์ ๊ณตํด์ฃผ๋ ๋ณด์ ํ๋ ์์ํฌ๋ก, ๋ณด์์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ ์ฅํ๋ ๋๋ฐ์ด์ค์ ์ ์ฅ๊ณต๊ฐ์ด๋ค. ์ ํ์์ ํค์ฒด์ธ์ ์ ๊ณตํ๊ฒ ๋ ์ด์ ๋, ์ฌ์ฉ์๊ฐ ๊ฐ๊ฐ์ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ์ ๋ณด ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ์ธ์ฐ๋ ๊ณผ์ ์ ์ค์ด๊ณ ์ ํจ์ด๋ค. ์ ๋ณด๋ฐ์ดํฐ์ ์๋ก๋ ๋น๋ฐ๋ฒํธ, ์ ์ฉ์นด๋ ์ ๋ณด (= ๊ฒฐ์ ์ ๋ณด) ๋ ์ธ์ฆ์, ์ํธํค ๋ฑ์ด ์๋ค.
๋๋ฐ์ด์ค์ ์ ๊ธ์ค์ ๊ณผ ํค์ฒด์ธ์ ์ ๊ทผ์ฌ๋ถ๋ ๋์ผํ๋ค. ์ฆ, ๋๋ฐ์ด์ค๊ฐ ์ ๊ฒจ์ ธ ์์ผ๋ฉด ํค์ฒด์ธ๋ ์ ๊ฒจ ์์ด ์ ๊ทผํ ์ ์๋ค.
๋ํ, ์ฑ์ ์ง์ฐ๋ฉด ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ญ์ ๋๋ UserDefaults์ ๋ฌ๋ฆฌ keychain์ ์ ์ฅ๋ ์ ๋ณด๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ง์ฐ์ง ์๋ ์ด์ ์ญ์ ๋์ง ์๋๋ค๋ ํน์ง์ด ์๋ค. ๊ทธ์ด์ ๋ keychain์ ์ ๋ณด๋ ์๋๋ฐ์ค ์ธ๋ถ์ ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ๋ฆฌ
- ํค์ฒด์ธ์ ๋ณด์์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ ์ฅํ๋ ๋๋ฐ์ด์ค์ ์ ์ฅ๊ณต๊ฐ
- ๊ทธ๋ฌ๋ฏ๋ก, ์ํฉ์ด๋ ๊ท๋ชจ์ ๋ง๊ฒ UserDefaults์ Keychain ์ฌ์ฉ์ ๊ณ ๋ฏผํ๊ณ ์ฌ์ฉํด์ผํ๋ค
References
https://developer.apple.com/documentation/foundation/userdefaults
UserDefaults | Apple Developer Documentation
An interface to the user’s defaults database, where you store key-value pairs persistently across launches of your app.
developer.apple.com
https://developer.apple.com/documentation/security/keychain_services
Keychain services | Apple Developer Documentation
Securely store small chunks of data on behalf of the user.
developer.apple.com
https://medium.com/@omar.saibaa/local-storage-in-ios-keychain-668240e2670d
'๐ Dev > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Method Dispatch (0) | 2023.12.02 |
---|---|
[Swift] unowned vs weak (2) | 2023.11.14 |