본문 바로가기

arc3

[Swift] ARC(Automatic Reference Counting) - 2 지난번에 ARC가 어떤 식으로 메모리를 관리하는지, 강한 참조 순환 문제는 어떻게 예방할 수 있는지에 대해 알아보았고, 이번에는 그 외의 공식문서상에 나와있는 내용들에 대해 공부해 보고자 한다. [Swift] ARC(Automatic Reference Counting) - 1 ✏️ ARC(Automatic Reference Counting) 참조 타입의 인스턴스는, 더 이상 참조되지 않을 때 적절히 메모리에서 해제해줘야 한다. 그렇지 않으면, 쓸모없는 메모리 공간을 낭비하게 되고 결국 앱의 성능 zzoo789.tistory.com ✏️ Unowned Optional References(미소유 옵셔널 참조) 이전에 공부한 내용으로는 미소유참조의 경우 옵셔널이 아닌 인스턴스를 참조할 수 있다고 했다. 그럼 .. 2022. 2. 9.
[Swift] ARC(Automatic Reference Counting) - 1 ✏️ ARC(Automatic Reference Counting) 참조 타입의 인스턴스는, 더 이상 참조되지 않을 때 적절히 메모리에서 해제해줘야 한다. 그렇지 않으면, 쓸모없는 메모리 공간을 낭비하게 되고 결국 앱의 성능 저하를 유발할 수 있기 때문이다. Swift는 ARC라는 개념을 통해 이 과정을 자동으로 해 준다. 물론, 이름과 같이 Reference counting이기 때문에 참조 타입의 인스턴스에 대해서만 ARC가 동작하며, 값 타입의 인스턴스(struct, enum의 인스턴스)는 관리해주지 않는다. 다만, 몇몇 경우에 ARC는 메모리를 관리하기 위해 코드 내에서 더 많은 정보를 요구한다. 이번에는 그런 내용 들에 대해서 공부해 보고 ARC로 하여금 애플리케이션 내의 모든 메모리를 잘 관리하도.. 2022. 2. 5.
[TIL] 220120 - Swift ARC Swift는 ARC(Automatic Reference Counting)을 통해 메모리를 관리한다. 대충 비슷한 개념은 Java의 가비지컬렉션 메모리 관리 방식 참조 타입 인스턴스를 참조할 때 강한참조의 개수를 카운팅 하여 메모리를 관리 강한참조 카운트 개수가 1 이상인 경우 메모리에 할당, 0이면 메모리에서 해제하는 방식 -> 강한 참조 순환문제 발생 가능 -> 메모리 누수 발생 강한참조 순환 문제(Strong reference cycle)를 해결하기 위해 약한 참조(Weak reference), 미소유 참조(Unowned reference) 사용 가능 약한 참조 : 자동으로 nil을 할당할 가능성이 있기에 Optional value + 변수로 사용 미소유 참조 : 자동으로 nil을 할당해 주지 않기 .. 2022. 1. 21.