[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
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • iOS (4)
      • swift (16)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (9)
      • CS (8)
      • 면접 (11)
      • Flutter (6)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

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

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    FirebaseAuth
    Flutter
    ios
    부스트캠프 10기
    android
    챌린지
    네이버 부스트캠프
    토스
    Provider
    Firebase
    모듈화
    fatal error
    네이버 부스트캠프 후기
    SDK
    tuist
    후기
    부스트캠프
    백준
    2025 토스 Next
    boj
    구슬 탈출2
    Swift
  • 최근 댓글

  • 최근 글

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

티스토리툴바