-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Copy On Write란 무엇인가요? #32
Comments
Cow(Copy On Write) 는 Swift Collection(Array, Set, Dictionary)와 String 타입에서 복사가 일어날 때 바로 깊은 복사가 일어나는 것이 아니라, 다른 변수에 복사되는 시점엔 얕은 복사로 동작하고 복사된 값에 변경이 생길 때 깊은 복사를 통해 완전히 다른 인스턴스로 구분하여 메모리를 효율적으로 사용하기 위한 방식을 말합니다. |
🙋🏻 답변COW는 값 타입이 복제될 때 메모리에 쌓이는 문제를 해결하기 위해 실제 사용할때까지 복사를 지연시키는 방법입니다. 예를 들어 1, 2, 3이 들어 있는 배열을 COW가 없는 상황에서 복사할 때 동일한 데이터의 인스턴스가 두개가 되어 메모리에 두배의 영역을 차지합니다. 하지만 COW를 사용한다면 바로 복사를 하지 않고 참조만 하고 있다가, 해당 인스턴스에 변경이 생기면 그 때 복사를 진행해서 메모리에 추가됩니다. COW를 사용하게 되면 메모리를 좀 더 효율적을 관리할 수 있게 됩니다. 🏷️ 키워드
|
Copy on Write는 값 타입 중 컬렉션 타입에서 데이터의 복사 비용을 줄이기 위해 사용하는 최적화 방식입니다. 처음에 배열 하나를 복사하면 참조를 복사하여 두 변수가 같은 메모리를 공유합니다. (얕은 복사) 이는 값 타입의 장점을 유지하면서 불필요한 복사를 피할 수 있는 최적화 방법입니다. |
이름 그대로 Write가 발생했을 때 Copy를 수행한다는 의미입니다. COW를 통해 값 타입 데이터를 복사 시 실제 값을 복사하는 것이 아닌 동일한 값을 참조하며, 해당 값이 변경(Write)될 때 값을 복사를 수행하여 독립적인 메모리 공간을 할당합니다. Swift의 경우 Heap 메모리를 사용하는 Collection Type의 Array, Set, Dictionary와 일부 String 타입의 경우 COW를 활용가능합니다. |
No description provided.
The text was updated successfully, but these errors were encountered: