existentialContainer 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의 메서드 실행 방법 (3) | 프로토콜 채택한 구조체 Existential Container / ValueBuffer / VWT / PWT

Swift의 메서드 실행 방법에 대한 글에서 우리는 Swift가 메서드를 실행시키는 세 가지 방법과 테이블 기반 메커니즘인 Virtual Table과 Witness Table에 대해 알아보았다. Swift의 메서드 실행 방법 (1) | Direct(Static) Dispatch/ Table(Dynamic) Dispatch/ Message Dispatch Swift의 메서드 실행 방법 (2) | table 기반 메커니즘 Virtual Table과 Witness Table 저번 글의 마지막에서 프로토콜을 채택한 구조체가 있을 때 이 인스턴스에서 메서드를 찾아서 실행하기 위해서는 Existential Container를 거쳐야 한다고 설명했다. 이번 글에서는 프로토콜을 채택한 구조체가 저장되는 방법인 Exis..

Swift 2024.01.29

Swift의 메서드 실행 방법 (2) | table 기반 메커니즘 Virtual Table과 Witness Table

이전 글에서 swift의 세 가지 메서드 실행 방법에 대해 알아보았다. 이번 글에서는 Table Dispatch를 하기 위한 메서드 저장 방식인 Virtual Table, Witness Table에 대해 알아보려고 한다. WWDC2016에서 Swift의 퍼포먼스에 대한 세션에서 사용했던 코드를 중심으로 차이를 살펴보자. Understanding Swift Performance Swift의 메서드 실행 방법 (1) | Direct(Static) Dispatch/ Table(Dynamic) Dispatch/ Message Dispatch Swift의 메서드 실행 방법 (2) | table 기반 메커니즘 Virtual Table과 Witness Table Swift의 메서드 실행 방법 (3) | 프로토콜 채택..

Swift 2024.01.23