본문 바로가기

전체 글119

Troubleshooting - DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead - 프로젝트 빌드 중 해당 에러가 발생 - 'LIBRARY_SEARCH_PATHS' 설정에 'DT_TOOLCHAIN_DIR' 환경 변수가 사용되었다는 내용. 원인 - 'LIBRARY_SEARCH_PATHS' 는 라이브러리 파일을 찾기 위한 경로를 정의. - 'DT_TOOLCHAIN_DIR'은 Xcode와 관련된 변수 중 하나로 ToolChain 디렉토리를 나타내는 경로를 포함. (Toolchain: 컴파일러, 링커, 등 프로그래밍 도구들의 모음으로 소스 코드를 컴파일하고 빌드하는 데 필요) - 'DT_TOOLCHAIN_DIR' 은 일반적으로 .. 2024. 2. 1.
Troubleshooting - Registering simulator runtime with CoreSimulator failed. Registering simulator runtime with CoreSimulator failed. -Xcode 15.2 로 업데이트 했는데, 시뮬레이터 다운로드 중 다음과 같은 에러가 등장했다. 시뮬레이터 런타임 등록에 실패했다는 내용이다. 추정 원인 1. 디스크 공간 부족: 이를 다운로드 받는데는 상당한 양의 디스크 공간이 필요하고, 부족할 경우 오류가 발생할 수 있음 2. 소프트웨어 결함: 관련 서비스의 소프트웨어 결함이나 일시적인 문제로 인해 오류가 발생할 수 있음 3. 네트워크 문제: 다운로드 중 네트워크 중단 등의 문제로 인해 오류가 발생할 수 있음 해결 - 저장공간을 확인 후, 몇몇 파일들을 정리해주니 다운로드를 성공적으로 마칠 수 있었다. 대부분의 원인은 디스크 공간 부족으로 인해 나타난.. 2024. 2. 1.
캐시정책에 관하여 왜 필요한가? - 이전 시간에 이미지 캐싱에 대해 학습했다. (2024.01.18 - [개린이 이야기] - 이미지 캐싱에 관하여) - 이미지 캐싱은 네트워크 요청을 최소화함으로써 사용자 경험을 크게 향상시킨다. 하지만 캐싱으로 인한 메모리 사용량 증가는 시스템 리소스에 부담을 줄 수 있다. 따라서 NSCache나 cachesDirectory의 자동 삭제(auto-eviction)기능에 의존하기보다는, 앱의 상황에 맞는 적절한 캐시 정책을 수립하여 적용하는 것이 중요하다. 캐시 만료 정책 - 각 데이터에 만료일을 설정하고, 정기적으로 만료된 데이터를 제거하는 방법 - KingFisher 라이브러리 코드를 참고하여, 캐시 관리 기능을 구현! 저장할 객체 선언 final class StorageObject {.. 2024. 1. 24.
Downsampling(다운샘플링)에 관하여 - 다운샘플링에 관해 알아 볼 예정으로 이 글을 읽기 전에 "https://developer.apple.com/videos/play/wwdc2018/416/" 를 보는 것을 추천합니다. Downsampling(다운샘플링) - 이미지의 해상도를 줄이는 과정 iOS에서 이미지와 메모리 사용량 - WWDC에 의하면, 이미지의 메모리 사용량은 파일 크기가 아닌 이미지의 dimensions(이미지 너비와 높이)에 있다. 즉, 이미지를 메모리에 로드할 때, 해당 이미지가 차지하는 픽셀의 총량이 메모리 사용량을 결정한다. iOS에서 이미지 처리 단계 1. 로드 단계 - 압축된 JPEG 파일을 메모리로 불러온다. 2. 디코드 단계 - 이미지 파일을 실제 픽셀 데이터로 변환하는 과정이다. ex) JPEG 파일을 GPU가.. 2024. 1. 20.
이미지 캐싱에 관하여 - 이미지 캐싱으로 유명한 라이브러리인 KingFisher가 있다. KingFisher 라이브러리의 코드를 분석해보면서, 이미지 캐싱을 직접 구현해보는 것이 좋을 것 같다고 판단하여 글을 정리해본다. 캐시 메모리와 디스크 메모리 1. 캐시 메모리 - 속도: 매우 빠름, RAM에 저장되어 바로 접근이 가능 - 수명: 앱 실행 중에만 유지되며, 앱이 종료되면 사라짐 - 크기 제한: 일반적으로 제한적, 메모리 부족 시 자동으로 데이터가 제거될 수 있음 2. 디스크 메모리 - 속도: 상대적(캐시 메모리)으로 느림. 파일 시스템에 저장되어 디스크 접근이 필요 - 수명: 앱이 종료되어도 데이터가 유지됨 - 크기 제한: 상대적으로 큰 저장 공간을 가지고 있음 전체 프로세스 1. 캐시 메모리에서 이미지 찾기 - 먼저,.. 2024. 1. 18.
WWDC 2019: Advances in UI Data Sources에 관하여 1. Current State-of-the-Art 우리가 UITableView나 UICollectionView에서 UIDatasource와 상호작용하는 방법은 무엇입니까? 아래 코드는 UICollectionViewDataSource 구현 예시입니다. func numberOfSections(in collectionView: UICollectionView) -> Int { return models.count } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return models[section].count } func collectionView(_ collectionVie.. 2023. 8. 25.