ios(6)
-
[iOS / macOS] 내 맥북에서 서버를 만들고 내 아이폰과 소켓 통신을 해보자
들어가기 앞서iOS의 소켓 통신에 대해서 궁금해서 찾아보다가 정보들이 부실하기도 하고, SocketIO에 대한 정보가 많아서 First-party Framework인 Network를 통해 직접 소켓 통신을 해보고 정리해 보기 위해서 이 글을 작성합니다.사전 지식이전에 c++98(POSIX) KQueue로 http 서버를 만들어 본 적이 있습니다. (대략 소켓 통신과 fd, tcp/ip, udp에 대해서 알고 있다는 뜻) GitHub - MyLittleWebServer/webserv: Web server made with C++98Web server made with C++98 . Contribute to MyLittleWebServer/webserv development by creating an acc..
2024.12.31 -
[iOS] 데이터를 저장하는 방법들 / 간단 예제
간단한 예제들과 함께 알아보는 iOS에서 데이터를 저장하는 방법1. UserDefaultsNSUserDefaults에 저장되어 키-값 쌍으로 앱이 삭제되기 전까지 영구적으로 저장됩니다.간단하고 사용이 쉽습니다만 대규모 데이터나 민감한 데이터에 적합하지 않습니다.import Foundationclass UserDefaultsHelper { static let shared = UserDefaultsHelper() private let launchCountKey = "launchCount" private init() {} // 실행 횟수 읽기 func getLaunchCount() -> Int { return UserDefaults.standard.intege..
2024.12.31 -
[Swift] Singleton Multithread Strategy / 싱글톤 멀티스레드 전략
안전한 Singleton Pattern을 위환 Thread-Safe 관리우리는 앱에서 전역적인 리소스 공유, 앱 상태 관리, 네트워크 요청, 로깅 및 분석 등과 같은 곳에서 싱글톤 패턴을 활용합니다.이때 어디서든 동일한 인스턴스에 접근하게 되고, 앱이 복잡해질수록 데이터 레이스가 발생할 가능성이 높아질 수 있습니다. 이때 사용할 수 있는 방안에 대해서 몇 가지 예시를 제시합니다. 1. DispatchQueue를 활용한 데이터 동기화final class Singleton { static let shared = Singleton() private let queue = DispatchQueue(label: "com.singleton.threadsafe", attributes: .concurr..
2024.12.27 -
암호화와 보안의 기본 개념, 그리고 iOS 앱 보안을 위한 방안
암호화와 보안의 기본 개념1. 암호화 (Encryption)암호화는 데이터를 특정 알고리즘을 사용해 변환하여, 인가된 사용자만이 읽을 수 있도록 보호하는 기술입니다.데이터를 암호화하면, 제3자가 데이터를 읽거나 해석할 수 없게 됩니다.핵심 용어:평문 (Plaintext): 암호화 전의 데이터.암호문 (Ciphertext): 암호화된 데이터.키 (Key): 암호화 및 복호화에 사용되는 값.복호화 (Decryption): 암호문을 평문으로 변환.2. 암호화의 유형대칭 키 암호화 (Symmetric Encryption):암호화와 복호화에 동일한 키를 사용.예: AES, DES.장점: 빠름.단점: 키를 안전하게 공유하는 것이 어려움.비대칭 키 암호화 (Asymmetric Encryption):암호화에 공개키(P..
2024.12.27 -
[Clean Architecture] Presentation(MVVM), Domain, Data
Clean Architecture and MVVM iOS에서 가장 유명한 Clean Layered Architecture and MVVM 클린 아키텍쳐에 대해서 얘기해 보려고 합니다. 여태까지 UIKit으로 진행한 프로젝트들은 거의 MVVM으로 진행 했었고 나름 이정도면 MVVM에 대해서 잘 알고 있다고 생각했었는데요. 그냥 우물안의 개구리였을 뿐이라는 것을 깨달았습니다. 여태까지 한 프로젝트들은 Presentation의 MVVM 까지 구현하고 VM에서 Business 로직을 실행하고 있었습니다. 도메인과 데이터는 Clean Layered가 아닌 그냥 제가 편한대로 구현하고 있었는데요. 이번에 개인 프로젝트를 진행하면서 정리를 해볼겸, 설명을 좀 쉽게 해서 이해해볼 겸 작성합니다.iOS 개발자라면..
2024.08.30