본문 바로가기
[iOS] 이미지 캐시 프로젝트 유지보수 중 사수님이 이미지 캐시 관련 로직을 구현하시다가 나에게 이미지 캐시에 대해 설명해주셔서 까먹기 전에 살짝쿵 정리하고 가기로 했다. 실제로 캐시에 대한 개념을 개발자가 알고 있는 게 중요하기도 하고, 의외로 면접 단골 질문이라 미래를 위해서 (?) 이해하고 있는 게 도움이 될 것 같다.    https://motosw3600.tistory.com/37 ImageCacheImageCache 이미지 캐시로 이미지를 받아오는 로직은 총 3가지로 분류된다. 메모리 캐시 디스크 캐시 URL 요청 1. 메모리 캐시 NSCache사용 Key-Value쌍으로 이루어진 Generic Type의 클래스 메모리 영역 일부motosw3600.tistory.com 위 블로그가 사수님이 간결하게 잘 정리 된 것.. 2024. 4. 3.
[iOS] Keychain vs UserDefaults iOS 앱 개발을 하면, 사용자의 정보를 저장할 데이터베이스 선택지를 한번씩은 꼭 고민해보게 되는 것 같다. CoreData, UserDefaults, Keychain 등이 있는데, 이 글은 보안 유지가 필요한 데이터를 저장할 때 사용하기 좋은 Keychain에 대해 정리다. 1. UserDefaults로 사용자의 개인정보 저장? 물론, UserDefaults에 사용자의 데이터를 저장할 수도 있다. 우선 UserDefaults에 대해 정리해보자. UserDefaults는, 1. 런타임에 동작 2. 앱이 실행되는 동안 기본 데이터베이스에 접근해 info 파일에 key-value의 형태로 데이터를 저장 이라는 특징을 가지고 있으며, 데이터가 샌드박스에 저장되어 있기 때문에 앱을 삭제하면 저장된 데이터가 모두.. 2023. 12. 17.
[Study/iOS] Method Dispatch SweepSwift iOS 면접 질문에 대한 답을 작성한 김에 iOS 개발자라면 앱의 기능향상 면에서 꼭 고려해봐야한다는 Method Dispatch에 대해 정리해보기로 했다.    ✔︎ Method DispatchMethod dispatching is the process of finding the address of instructions to be executed by the CPU when a particular method is called. 어떤 인스턴스의 호출구문에서 프로그램이 어떤 메서드를 실행할지 선택하는 것을 메소드 디스패치라고 한다.어느 시점(컴파일타임 vs 런타임)에 어떤 method를 사용할지를 결정하느냐에 따라서 Static Dispatch와 Dynamic Dispatch로 나뉜.. 2023. 12. 2.
[iOS] 앱의 생명주기 ✔︎ 생명주기 (Life Cycle) 생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다. 그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app determines what it can and can’t do at any time." 즉, 현재 시점에서 앱이 무엇을 할 수 있느냐를 결정 짓는 것을 뜻한다. 앱을 개발 및 사용을 하다보면 사용중인 앱을 백그라운드로 잠시 보낼 때도 있고 (카톡으로 받은 계좌번호를 복사하고, 그대로 은행앱을 켜서 붙여놓는다거나 하는 상황), 백그라운드에 둔 채로 해당 앱을 계속 사용할 때도 있고 (유튜브 뮤직을 사용중인 채로 다른 앱을 메인으로 사용하고 있을 수도 있고), 포그라운드 상태로 그 앱을 이용할.. 2023. 11. 27.
[Study/iOS] unowned vs weak 해당 게시글은 iOS 면접스터디 SweepSwift에서 진행한 질문 중 제가 담당 했던 질문의 답변 내용을 정리 및 보강한 내용입니다. 🔴 unowned와 weak의 차이점을 설명하세요. 캡처 리스트, 객체간의 참조 등의 경우인 강한 참조 순환(Strong Reference Cycle)로 인한 메모리 누수를 방지하기 위해 사용되는 참조 타입입니다. 차이점은 아래와 같습니다. 📌 unowned unwoned를 참조하는 경우 값(value)이 항상 존재한다고 가정하기 때문에 할당해제를 해도 인스턴스가 메모리에서 해제되지 않습니다. unowned는 값에 바로 접근할 수 있습니다. 대신 unowned 참조는 할당해제가 된 상태일 때 nil로 설정되지 않기 때문에 (즉, 객체가 ARC에 의해 메모리가 해제되어도 .. 2023. 11. 14.
[Swift] Enum with Reusable VC ⚙️ Setting - iOS 16 ↑ - Swift vesrion 5.9 - Xcode version 15 🔖 Background Info - During the development of my first app, Zickwan, I encountered a challenge: the UI design and features of the writing and editing view controllers were identical. Creating two separate view controllers wasn't ideal for efficient memory management. ✏️ Steps - To achieve reusable views, enums proved to be a valuable t.. 2023. 10. 10.