반응형 스위프트3 [Swift] Hashable 프로토콜 이해하기 Hashable 프로토콜: Hashable의 중요성 1. 해시 값의 개념: 해시 값은 객체를 대표하는 유일한 정수 값입니다. 이 값은 객체의 내용에 기반하여 계산되며, 동일한 객체는 항상 같은 해시 값을 가져야 합니다. 해시 함수는 이러한 해시 값을 생성하는 데 사용됩니다. 2. 효율적인 데이터 액세스: Dictionary의 키나 Set의 원소로 사용될 때, 객체의 해시 값은 해당 객체의 저장 위치를 결정하는 데 사용됩니다. 이로 인해 데이터의 검색, 삽입, 삭제 등의 연산이 매우 빠르게 이루어질 수 있습니다. 배열(Array) 배열에서의 검색은 선형 검색(linear search)를 사용합니다. 이는 최악의 경우 모든 요소를 확인해야 하므로, 시간 복잡도는 O(n) 입니다. 여기서 n은 배열의 요소 수.. 2023. 11. 17. [SwiftUI] 앱 생명주기: 깊이 이해하기 SwiftUI View의 생명주기를 먼저 보고싶으신 분들은 이 링크를 클릭 하시면 됩니다. SwiftUI는 앱 개발을 위한 새로운 패러다임을 소개하면서, 앱의 생명주기 관리에도 명확한 변화를 가져왔습니다. UIKit의 AppDelegate와 SceneDelegate에 의존하던 전통적인 방식에서 벗어나, SwiftUI는 @main 구조체와 함께 App 프로토콜을 사용하여 앱의 시작점과 생명주기 이벤트를 관리합니다. 이 포스트에서는 SwiftUI 앱 생명주기의 주요 구성 요소를 예시와 함께 살펴보겠습니다. SwiftUI 앱의 구조 SwiftUI 앱은 App 프로토콜을 준수하는 구조체로 시작합니다. 이 구조체는 앱의 진입점 역할을 하며, body 속성에서 앱의 초기 뷰를 제공합니다. import SwiftUI.. 2023. 11. 8. [Swift] Swift에서 Equatable을 이해하고 적용하기 오늘은 Swift 개발자로서 반드시 알아야 할 기본적인 프로토콜 중 하나인 'Equatable'에 대해 이야기해보려고 합니다. Equatable 프로토콜은 객체 비교를 간단하게 만들어 주며, 특히 SwiftUI와 같은 최신 Swift 기술에서 중요한 역할을 합니다. 1.Equatable 이란? Equatable은 Swift 표준 라이브러리의 프로토콜 중 하나로, 사용자 정의 데이터 타입(클래스, 구조체 등)의 인스턴스 간에 동등 비교(==)를 가능하게 합니다. 기본 데이터 타입들은 이미 Equatable을 준수하고 있기 때문에, 우리는 문자열이나 정수 등을 쉽게 비교할 수 있습니다. let a = 5 let b = 5 print(a == b) // true 하지만, 사용자 정의 데이터 타입의 경우, 어떤.. 2023. 10. 26. 이전 1 다음 반응형