arc4 Swift : 고급문법[ARC 메모리 관리4 - 미소유 참조(unowned)] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 이 글도 읽어보세요 Swift : 고급문법 [ARC 메모리 관리 1 - 강한 참조] Swift : 고급문법 [ARC 메모리 관리 2 - 강한 참조 순환 문제] Swift : 고급문법 [ARC 메모리 관리 3 - 약한 참조(weak)] 미소유 참조 약한 참조와 같이 미소유 참조도 인스턴스의 참조 횟수를 증가시키지 않음 약한 참조와는 다르게 자신이 참조하는 인스턴스가 메모리에서 해제되더라도 스스로 nil을 할당하지 않음. 그렇기 때문에 변수나 프로퍼티는 옵셔널이나 변수가 아니어도 가능함 하지만, 메모리에서 해제된 인스턴스에 접근하려 하면 잘못된 접근으로 런타임 오류가 발생함 따라서 미소유 참조는 참조하는 동안 그 인스턴스가 메모.. SWIFT/Grammar 2022. 2. 19. Swift : 고급문법 [ARC 메모리 관리 3 - 약한참조(weak)] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 고급문법 [ARC 메모리 관리 1 - 강한 참조] Swift : 고급문법 [ARC 메모리 관리 2 - 강한 참조 순환 문제] 약한 참조 강한 참조와 달리 자신이 참조하는 인스턴스의 참조 횟수를 증가시키지 않음 참조 타입의 프로퍼티나 변수의 선언 앞에 weak 키워드를 사용하면 그 프로퍼티나 변수는 자신이 참조하는 인스턴스를 약한 참조함 약한 참조를 사용하면 자신이 참조하는 인스턴스가 메모리에서 해제될 수 도 있다는 것을 예상할 수 있음 참조하는 인스턴스에 대한 참조를 강하게 유지하지 않기 때문에 약한 참조로 참조되고 있는 동안에도 해당 인스턴스가 할당 해제될 수 있음 ARC는 인스턴스가 할.. SWIFT/Grammar 2022. 2. 13. Swift : 고급문법 [ARC 메모리 관리 2 - 강한 참조 순환 문제] 본 게시글은 bongcando님의 게시글을 참고하여 작성되었습니다. 강한 참조 순환 문제 순환 참조란 두 가지 이상의 객체가 서로에 대한 강한 참조(Strong Reference) 상태를 가지고 있을 때 발생하며, 순환 참조가 발생하게 되면 서로에 대한 참조가 해제되지 않기 때문에 메모리에서 유지되며 이로 인해 메모리 릭이 발생하게 된다. 이런 순환 참조를 해결하기 위해 약한 참조(weak), 미소유 참조(unowned) reference를 사용한다. 단일 인스턴스에 대한 참조 인스턴스 끼리 서로가 서로를 강한 참조할 때를 대표적인 예로 들 수 있는데, 이를 강한 참조 순환이라고 한다. 예를 한번 보자 먼저 name 프로퍼티를 이니셜라이저로 가지는 Person 클래스가 있고, 옵셔널 Person? 타입을.. SWIFT/Grammar 2022. 2. 12. Swift : 고급문법 [ARC 메모리 관리 1 - 강한 참조] 본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. ARC 참조 타입은 하나의 인스턴스가 참조를 통해 여러 곳에서 접근하기 때문에 언제 메모리에서 해제되는지가 가장 중요하다. 인스턴스가 적절한 시점에 메모리에서 해제되지 않는다면 한정적인 메모리 자원을 낭비하게 되고, 이것은 성능 저하로 이어진다. Swift는 프로그램의 메모리 사용을 관리하기 위해서 메모리 관리 기법인 ARC(Automatic Reference Counting)를 사용한다. TIP ARC와 값 타입 ARC가 관리해주는 참조 횟수 계산(Reference Counting)은 참조 타입인 클래스의 인스턴스에만 적용된다. 구조체나 열거형은 값 타입으로 참조 횟수 계산과 무관하다. 즉, 값 타입은 다른 곳에서 참조하지.. SWIFT/Grammar 2022. 2. 10. 이전 1 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기