Protocol 3

[Swift] any 키워드는 왜 있는걸까? Existential Type은 뭔데?

some과 any를 공부하다 보니 any라는 키워드가 등장한 이유가 궁금해졌다.궁금증이 의식의 흐름처럼 생기는 편.. ㅎㅎ  any 키워드에 대해서 공부하다보니 Existential type 이라는 것까지 공부하게 되었는데 Existential type의 특성과 함께 swift 5.6에서 any 키워드가 등장한 이유에 대해서도 알게되어 흥미로워 글을 적는다. Swift를 공부하면서 Existential 이라는 단어는 Existential Container 공부할 때 밖에 못 봤는데 (프로토콜 타입의 인스턴스를 저장하는 방법에 대한 내용) 역시나 이번에도 프로토콜에 관련한 내용이었다. Existential Container 에 대한 내용이 궁금하다면 아래 블로그 글로!프로토콜 채택한 구조체 Existent..

Swift 2024.10.31

[Swift] 프로토토콜 뽀개볼까 (4) | Hashable, HashTable

set, dictionary가 해시테이블로 만들어져서 배열의 검색보다 빠르다는 이야기를 들어본 적이 있나요?set, dictionary가 해시테이블로 저장되기 위해서는 hashable해야하는데,  이 해시테이블이란 무엇이고 값들이 어떻게 저장되며, hashable은 도대체 무엇인지 알아보자!! # HashTableHah Table은 간단하게 말하면 (key,valye)형태로 데이터를 저장하는 자료구조입니다만,,,전혀 간단하지 않단말임.. 1) key를 해시 함수에 넣어2) 고유한 인덱스를 만들어서3) 배열의 해당 인덱스에 value값을 집어넣는 원리 라고 일단 머릿속에 넣어놓고 천천히 생각해 보자!    (key,valye)형태라고 하면 swift에서 가장 먼저 생각나는 건 아마 딕셔너리 Dictiona..

Swift 2024.05.09

[Swift] Swift Performance (2) | Generic을 활용한 성능개선

이전 글에서는 Swift에서 성능일 미치는 세 가지 요소와 구조체가 protocol을 채택했을 때 어떻게 성능이 달라지는지 알아보았다. [Swift] Swift Performance (1) | swift에서 성능을 좌우하는 3가지 요소와 구조체의 성능 변화 struct + protocol을 사용하면 단순하게 struct를 사용하는 것에 비해 성능이 안 좋아진다고 했는데 이 인스턴스를 argument로 전달한다고 가정했을 때 함수 내 로컬 변수로 사용되는 상황해서 어떻게 하면 성능을 좋게 할 수 있을까? 정답은 제네릭 함수를 사용하는 것이다! 이번 글도 WWDC 2016 Understanding Swift Performance 세션과 연관되는 글이다. 우선 제네릭 함수를 사용했을 때와 사용하지 않았을 때의..

Swift 2024.02.07