iOS(48)
-
[iOS] MVVM-C vs. RIP
1. MVVM-C 패턴Model도메인 데이터와 비즈니스 로직을 포함합니다. 데이터 소스(네트워크, 데이터베이스 등)와 상호작용하는 부분입니다.View사용자 인터페이스(UI)를 담당하며, 사용자 입력을 받아 ViewModel에 전달합니다. 직접 비즈니스 로직을 포함하지 않습니다.ViewModelView와 Model 사이에 중재자 역할을 합니다. Modeldml epdlxjfmf rkrhdgo 퍋ㅈdp wprhdgkrh, UI 이벤트를 처리하여 필요한 로직(예, 데이터 포맷팅, 유효성 검사 등)을 수행합니다.MVVM의 핵심은 데이터 바인딩을 통해 View와 ViewModel간의 실시간 동기화가 가능하다는 점입니다.Coordinator(C)네비게이션 로직 및 화면 전환을 담당합니다. ViewModel이 화면 ..
2025.02.25 -
[iOS] AES와 RSA Keychain 저장여부 정리
1. AES 키 (대칭키)통신용 AES키 (세션키)저장X (임시키) : 보통 요청마다 생성 후 바로 폐기합니다.단, 요청마다 새 키를 생성해 RSA로 암호화해 서버에 전달 후, 서버에서만 복호화합니다.로컬 데이터 암호화용 AES키 (마스터 키)Keychain에 저장 : 하나의 AES키를 Keychain에 안전하게 저장 후 데이터 암복호화 시 재사용합니다.Keychain은 자동으로 보안 처리 (하드웨어 보안 요소 사용)2. RSA 키 쌍 (비대칭키)RSA 개인 키 (Private Key)반드시 Keychain에 저장개인키는 절대 외부에 노출되면 안됩니다.kSecAttrAccessible을 .afterFirstUnlock 또는 .whenUnlockedThisDeviceOnly로 설정해 보안을 강화합니다.RS..
2025.02.24 -
[iOS] CryptoKit vs. CryptoSwift
CryptoKit과 CryptoSwift는 둘 다 암호화 관련 기능을 제공하는 라이브러리지만, 그 사용 방식과 특징에 차이가 있습니다. 각 라이브러리를 비교해보면 다음과 같습니다:1. CryptoKitApple 공식 라이브러리: CryptoKit은 Apple에서 공식적으로 제공하는 암호화 라이브러리입니다. iOS 13 이상에서만 사용할 수 있으며, Swift로 작성된 네이티브 API입니다.기능:대칭 키 암호화 (AES)비대칭 키 암호화 (RSA, ECDSA)해시 (SHA-256, SHA-384, SHA-512 등)HMAC (Hash-based Message Authentication Code)키 관리 (SymmetricKey, Secure Enclaves 사용)암호화 및 복호화 기능을 간단하고 효율적으로..
2025.02.14 -
[iOS] WKWebView Cookie
WKWebView에서 사용할 수 있는 쿠키는 보통 세션 쿠키(Session Cookie)와 퍼시스턴트 쿠키(Persistent Cookie, 파일 쿠키) 두 가지로 나뉩니다. 하지만 조금 더 세부적으로 보면 몇 가지 추가적인 쿠키 유형이 있습니다.1. 세션 쿠키 (Session Cookie)유효기간(expiresDate)이 없는 쿠키입니다.브라우저나 앱(웹뷰)이 종료되면 자동으로 삭제됩니다.로그인 세션 등 일시적인 데이터를 유지하는 데 사용됩니다.2. 퍼시스턴트 쿠키 (Persistent Cookie, 파일 쿠키)유효기간(expiresDate)이 설정된 쿠키입니다.앱(웹뷰)이 종료되더라도 기기에 저장되어 유지됩니다.자동 로그인, 사용자 설정 저장 등에 사용됩니다.WKWebView에서는 쿠키가 자동으로 저..
2025.02.11 -
[iOS] Async/Await
Swift의 async/await는 비동기 작업을 더 쉽게 작성하고 관리할 수 있도록 도와주는 기능입니다. 기존의 콜백 기반 비동기 코드보다 가독성이 좋고, 오류 처리도 간편하게 할 수 있습니다.1. async와 await란?async : 비동기 함수(메서드)를 정의할 때 사용합니다.await : async 함수 내부에서 비동기 작업이 완료될 때까지 기다리는 키워드입니다.기존 클로저 기반 비동기 코드와 비교하면 가독성이 훨씬 좋아집니다.📌 기존 콜백 방식 (Completion Handler)func fetchData(completion: @escaping (String) -> Void) { DispatchQueue.global().async { sleep(2) // 네트워크 요청 시뮬..
2025.02.06 -
[iOS] 무결성 (Integrity)
무결성(Integrity)은 데이터나 시스템이 변경되지 않고 원래의 상태를 유지하는 것을 의미합니다. 보안, 데이터베이스, 소프트웨어 개발 등 다양한 분야에서 중요한 개념으로 사용됩니다.무결성의 주요 개념데이터 무결성 (Data Integrity)데이터가 변조되지 않고 정확하게 유지되는 것을 의미합니다.예: 데이터베이스에서 정합성을 유지하기 위해 정규화, 트랜잭션 관리, 제약 조건(Primary Key, Foreign Key 등) 적용.시스템 무결성 (System Integrity)시스템이 의도치 않은 변경 없이 정상적으로 작동하는 상태를 의미합니다.예: 운영 체제의 파일이 변조되지 않도록 하는 무결성 검사.보안 무결성 (Security Integrity)데이터가 불법적으로 변경되거나 손상되지 않도록 보..
2025.02.06