Swift의 Array, Set, Dictionary, String과 같은 녀석들을 우리는 Collection 타입이라고 합니다.
이 Collection 타입들은 모두 Struct로 구성되어 있죠!
우리는 흔히 Struct는 Stack영역에 Class는 Heap영역에 메모리가 저장된다!라고 오해를 하는 경우가 많습니다 🥲
이 오해는 Collection 타입들이 실제로 Heap에 저장되고 Stack에는 이 데이터를 참조하는 정보가 저장되는걸 실제 메모리 주소를 찍어보면서 풀 수가 있는데요.
그럼 왜 Swift에서는 이러한 타입들을 struct로 만들었으며 왜 Heap 영역에 저장하도록 했을까요?
그 과정에서 CoW까지 생각해서 파헤쳐봤습니다 🙋🏻