본문 바로가기

전체 글

(97)
[Swift/Objc] NSCache 클래스 분석하기(feat. objc 문법 이해해보기) 최근에 이미지 캐싱 기능을 라이브러리 없이 구현해보고자 여러 레퍼런스들을 분석중이었습니다. Swift에서 캐싱을 위해 제공하는 기본적인 API로 NSCache가 존재합니다. 공식 문서를 보면 NSCache는 count 및 cost를 통해 object를 관리하는 caching policy를 제공한다고 합니다. 이 클래스는 Foundation Framework에 속하기 때문에, apple이 2023년부터 github에 공개한 Foundation framework의 swift implemetation을 확인 가능합니다. 다른 방식의 구현을 확인하고 싶다면, GNUStep Base Libary를 확인할 수 있습니다. GNUstep is a mature Framework, suited both for advanc..
[iOS] InjectionIII로 UIKit에서 Hot Reload 사용하기 Hot Reloading Hot Reload란 어플리케이션 개발 시 코드를 변경하고, 런타임에서 변경 사항을 즉시 반영하는 것을 말합니다. 일반적인 UIKit의 개발 과정은 다음과 같습니다. 요구 사항 변경 or 오류 발생 -> 코드 수정 -> 빌드 및 어플리케이션 재실행 -> 어플리케이션 반영 확인 이처럼 개발 과정에 있어 코드를 수정하는 시간 외에도 빌드 및 어플리케이션을 실행하는 시간을 들여야 합니다. 만약 이러한 과정의 일부를 줄일 수 있다면 디버깅 시간이 줄어들고, 결국에는 생산성 향상을 도모할 수 있을 것입니다. SwiftUI의 preview 기능은 Hot Reload와 비슷한 부분이 있습니다. preview는 변경 사항을 작성하고, UI의 변동을 실시간으로 확인할 수 있게 합니다. 주요한 차..
[오브젝트] 오브젝트를 읽고, 3~4장 [오브젝트] 오브젝트를 읽고, 1~2장 3장 : 역할, 책임, 협력 2장까지는 객체지향 프로그래밍의 다양한 요소와 구현 기법을 설명했다. 추상화를 통한 유연성 확보라든지, 상속에서는 인터페이스를 상속 받는 것이 핵심이라든지의 내용을 살펴봤다. 지금까지는 객체지향을 구현하는 도구에 대해 살펴보았다면, 이제부터는 객체지향의 본질이 무엇인지 소개한다. 객체지향 패러다임의 핵심은 '역할', '책임', '협력'이다. 앞서 나온 개념들은 구현 측면에 치우친 것이기에, 패러다임의 본질이라고 할 수는 없다. 책을 읽기 전에는 다형성이나 캡슐화 같은 것이 객체지향의 핵심이라고 생각했는데, 그 저변을 관통하는 무엇인가가 있는 것이다. 저자는 객체지향의 본질이 '협력하는 객체들의 공동체를 창조'하는 것이라고 말한다. 협력,..