[swift] ARC

2024. 6. 19. 16:09·swift

ARC란?

Automatic Reference Counting의 약자로, 앱의 메모리 사용을 추적하고 관리해주는 기능이다.

 

클래스가 새로운 인스턴스를 할당하게 되면 ARC는 인스턴스 정보를 저장할 메모리를 할당하고 참조 카운트를 증가시킨다. 그 후 인스턴스의 참조가 해제되면 참조카운트를 감소시키고 더이상 필요하지 않은 상태가 되면 참조카운트가 0이 되어 자동으로 메모리에서 해제가 된다.

 

ARC에서 발생할 수 있는 문제

  • 순환 참조

 

순환 참조를 해결하기 위한 방법

  • Reference Count 계산에 포함되지 않는 unowned 나 weak를 사용한다.
  • 메모리에 없는 객체를 참조하게 되면 unowned는 crash가 나고, weak는 nil을 반환한다.
    • 하지만, 약한 참조를 사용하여 객체의 수명이 종료되는 동안 수명에 의존하고 있기에, 미래에 버그가 나타날 수 있음

 

weak와 unowned 참조를 안전하게 처리하는 방법

  • Optional Binding
  • withExtendedLifeTime()
  • 강한 참조 접근으로 설계
  • 내부 클래스 정보에 가시성을 제한하도록 재설계

 

 

'swift' 카테고리의 다른 글
  • [swift] 위치 권한 설정
  • [swift] RxSwift란?
  • [swift] URLSession
  • [swift] Combine
GwanSon
GwanSon
버그는 도전, 코드는 해결. 열정있는 개발을 하자.
  • GwanSon
    관슨의 개발일지
    GwanSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (3)
      • swift (15)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (8)
      • CS (8)
      • 면접 (11)
      • Flutter (4)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ios
    tuist
    Swift
    네이버 부스트캠프
    부스트캠프
    네이버 부스트캠프 후기
    부스트캠프 10기
    boj
    2025 토스 Next
    백준
    모듈화
    후기
    챌린지
    토스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
GwanSon
[swift] ARC
상단으로

티스토리툴바