분류 전체보기

    Thread Safe한 Core Data 환경 구성하기

    Thread Safe한 Core Data 환경 구성하기

    CoreData는 Apple에서 기본으로 제공하는 객체지향 데이터베이스인 프레임워크 입니다. NSManagedObjectContext를 통해 CURD를 진행하며, Persistent Store Coordinator에 접근하고 Managed Object Instance를 생성하여 반환하여 데이터를 관리합니다. 기본적으로, 앱 내에 메모리를 저장할 수 있어서 최근 검색기록 및 내부데이터 등을 저장하기 위해 자주 사용됩니다. 간단한 데이터 저장이 필요한 경우라면 Side Effect가 크지 않을 수 있지만, 앱내에 저장해야할 데이터가 이미지이거나 한번에 많이 저장이 이루어진다면 멀티쓰레딩을 통해 CoreData 작업을 진행해야합니다. 하지만, 기본적으로 CoreData는 Thread Safe하지 않습니다. c..

    클로저 - Capturing Values와 ARC

    클로저 - Capturing Values와 ARC

    공식 Swift문서의 Closures Closures are self-contained blocks of functionality that can be passed around and used in your code 클로저는 자체 포함된 함수 블록으로, 전달이 가능하고 코드안에서 사용되어진다. Swift의 클로저에 대한 기본적인 개념을 알고 있다고 하고 시작하겠습니다. 전역 함수, 중첩 함수, 익명 함수 모두를 Swift에선 클로저라고 부릅니다. ARC와 관련된 값 캡쳐링은 중첩 함수와 익명함수에 유의해서 살펴보면 됩니다. 공식문서 설명: 전역 함수는 이름이 있고 값을 캡처하지 않는 클로저입니다. 중첩된 함수는 이름이 있고 둘러싸는 함수에서 값을 캡처할 수 있는 클로저입니다. 클로저 표현식은 주변 컨텍스..

    ARC 시리즈 2 - SideTable

    ARC 시리즈 2 - SideTable

    간단한 요약 SideTable은 Swift 4 이후로 weak 참조일 때 weak reference count에 상관없이 strong reference count가 0 이면 바로 deinit과 메모리 deallocated가 진행되게하는 성능향상을 위한 것! 먼저 weak 와 unowned 사용의 가장 큰 차이는 공식문서를 참고하자면, unowned는 참조하는 다른 인스턴스의 수명이 같거나 더 길 때 사용한다는 점입니다. Swift 4 이후로는 더욱 차별점이 생겼습니다. 바로 weak 참조는 SideTable을 참조하여 strong reference count가 0이 되면 weak reference count에 상관없이 object deinit , memory deallocated 가 발생하게 됩니다. u..

    ARC 시리즈 1 - Retatin Cycle 과 Reference Count

    ARC 시리즈 1 - Retatin Cycle 과 Reference Count

    Swift의 정말 정말 중요한 메모리 관리 기법입니다. Automatic Reference Counting 자동으로 레퍼런스 카운팅을 관리하며, 이를 명확히 이해해서 ARC를 고려한 메모리 설계가 iOS 프로젝트를 진행하며 필수입니다. (ARC를 고려하여, 메모리 누수 방지를 위해 노력한점 또한 추후 포스팅 예정 빠밤.) 공식문서 ARC 핵심 요약 Swift는 ARC(Automatic Reference Counting)를 사용하여 앱의 메모리 사용량을 추적하고 관리 클래스의 새 인스턴스를 생성할 때마다 ARC는 해당 인스턴스에 대한 정보를 저장하기 위해 메모리 청크를 할당합니다. 이 메모리는 해당 인스턴스와 관련된 저장된 속성 값과 함께 인스턴스 유형에 대한 정보를 보유 Class 마다 참조에 관한 Co..