🍏(114)
-
[iOS / macOS] Swift 면접 질문 2
문제 리스트 가져온 곳 GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.github.com 레벨 2Swift의 동시성(Concurrency) 프로그래밍에 대해 설명해주세요.Grand Central Dispatch(GCD)의 주요 개념과 사용 방법을 설명해주세요.OperationQueue와 DispatchQueue의 차이점은 무엇인가요?동시성 프로그래밍에서 발생할 수 있는 문제(Race Cond..
2024.12.31 -
[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 -
[iOS] 코드베이스 프로젝트 세팅 / Codebase Project
1. Main.storyboard(Main) 삭제(move trash) 2. Info.plist에서 Storyboard Name 삭제- 를 눌러 삭제하자 3. UIKit Main Storyboard File Base Name 삭제Module > TARGETS > Build Settings > filter(story)delete 키를 눌러 삭제하자 4. SceneDelegate의 willConnectTo 파라미터 함수 수정func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as..
2024.12.30 -
[iOS] 에러 처리 / Error Handling
Swift의 에러 처리 방법Swift에서는 안전하고 명시적인 방식으로 에러를 처리하기 위해 에러 처리 기능을 제공합니다. Swift의 에러 처리는 에러를 발생시키고(throw), 전파하고(throws), 처리하는(catch) 방식을 기반으로 합니다.throws, try, catch 키워드의 사용 방법throws에러를 발생시킬 가능성이 있는 함수나 메서드에 사용합니다.throws를 선언한 함수는 호출할 때 반드시 try 키워드를 사용해야 합니다.enum NetworkError: Error { case invalidURL case noResponse}func fetchData(from url: String) throws -> String { guard url.starts(with: "http..
2024.12.30