iOS 앱 개발 과정에서 로컬(모바일 기기)에 특정 정보를 저장할 때
간단하게는 유저디폴트(UserDefaults)부터 코어데이터, Realm, SQLite 등 여러 저장 방식을 사용할 수 있습니다.
하지만 정말 중요한 사용자 정보들(예를 들어 패스워드, 프라이빗 키, 인증서 등)을
아무 곳에나 저장하는 것은 아주 위험하다고 할 수 있겠습니다!
민감한 정보를 안전하게 저장하기 위해 애플은 Keychain Services를 제공합니다.
여러분들은 사용자의 민감 정보를 암호화 해서 키체인에 저장하고, 이후에 이를 다시 복호화 해서 사용할 수 있습니다!
결국 중요한 것은 사용 방법이겠지요?
키체인을 생성(Create)하고, 읽고(Read), 지우는(Delete) 방법을 한 번 알아봅시다!
바로 전체 코드를 보여드리겠습니다!
전체 GitHub Code는 여기에서 다운로드 받으시면 됩니다!
https://github.com/TDCIAN/KeychainExample
위 코드는 참고 자료에 있는 여러 내용들을 종합해서 제가 별도로 만든 내용입니다.
가장 기초적인 영상 설명을 원하신다면 이 링크를 클릭해주세요!
https://www.youtube.com/watch?v=cQjgBIJtMbw%20
키체인의 특성상 유저디폴트와 다르게 여러분이 앱을 한 번 삭제 하더라도
저장된 내용(정확하게는 키체인에서 kSecAttrService와 kSecAttrAccount로 조회했을 때 일치하는 내용)은 지워지지 않습니다!
* 혹시라도 잘못된 부분을 발견하셨거나, 조언하고 싶으신 내용이 있으시다면 댓글로 남겨주세요!
참고 자료
- https://www.youtube.com/watch?v=cQjgBIJtMbw
- https://developer.apple.com/documentation/security/keychain_services
'iOS > Common' 카테고리의 다른 글
[Swift] lazy 왜 쓰나요? (0) | 2022.05.13 |
---|---|
[Code Snippet] private lazy var 쓰다가 팔 부러질 것 같을 때 보는 글 (0) | 2022.04.29 |
Test Driven Development는 무엇이며, 왜 하는가? (0) | 2022.04.14 |
앱 스토어 커넥트에서 DSYM 파일 다운로드가 안 되는 문제 해결하기 (0) | 2022.03.31 |
[Swift] Let's use SwiftLint (feat. swiftlint exclude pods not working) (0) | 2022.03.23 |