Swift의 String과 CollectionType(Array, Dictionary, Set) 등은 struct로 구현된 값 타입
COW(Copy-on-Write) 최적화 덕분에 값 타입처럼 동작하면서도 실제 복사는 필요할 때만 일어남
var a = [1, 2, 3]
var b = a // 힙 메모리를 참조만 공유 (복사 X)
b.append(4) // 쓰기 시점에 복사 발생 (COW)
- b가 수정되기 전까지는 a와 동일한 힙 메모리 참조를 공유
- b.append(4) 시점에 Swift는 복사본을 생성하고 변경 작업을 수행
→ 불필요한 복사를 줄이면서도 값 타입처럼 안전하게 동작
'Swift' 카테고리의 다른 글
[WWDC] ARC in Swift (0) | 2025.05.30 |
---|---|
Struct 접근제어와 Memberwise Initializers (0) | 2025.05.29 |
[Swift]switch문 대신 if, guard 사용하기 (0) | 2025.05.28 |
Struct와 Class 차이(부제: 내가 SwiftUI가 어려웠던 이유) (1) | 2025.05.27 |
[Swift]Optional을 사용하는 이유 (0) | 2025.05.19 |