swift 180

iOS 최적화된 디스크 쓰기 관리

iOS 최적화된 디스크 쓰기 관리 데이터 저장을 위해 디스크에 쓰는 행위는 배터리 수명 및 저장 장치의 수명에 영향을 미침.디스크 쓰기를 줄이는 방법을 이해하면 앱 성능을 최적화하고 사용자 경험을 개선할 수 있음.  일반적으로 모든 iOS기기와 일부 macOS는 영구 저장소로 SSD를 사용함. SSD나 저장 매체에 있는 데이터에 엑세스 하는 속도는 RAM에 비해서 느림. Xcode와 Instruments를 사용하여 앱의 디스크 쓰기 성능을 파악할 수 있음. SSD 접근 최적화하기시스템이 SSD의 블록에 쓰기 작업을 수행할 때 해당 블록에 대한 새로운 읽기 요청은 기존 수행하는 쓰기 작업이 완료할 때 까지 대기함.SSD에 쓰는 것은 읽기 보다 느린 작업.읽기 및 쓰기 요청을 인터리빙하면 앱의 성능이 느..

iOS 캐싱 로직 구현 전 디스크 분석

iOS 캐싱 로직 구현 전 디스크 분석 앱에서 서버를 통해 값을 받아온 후 이 값을 캐싱하고 있다가 사용자가 앱을 종료 후에 다시 접속한 경우 캐싱된 값을 먼저 보여준 후 네트워크 응답이 도착하면 갱신하는 형태로 구현하고자 함. UserDefaults, SwiftData, CoreData, Realm, Filemanager 중에서 어떤걸 선택하는 것이 좋은지 궁금해서 비교해보기로 함.UserDefaults: 간단한 데이터 저장에 유용해 적합하지 않을 것으로 보임.SwiftData: iOS 17이상이라서 현재 현실적으로 사용하기가 어려움.CoreData: Realm이 있어서 굳이 써야하는지 의문이긴 함.Filemanager: 자주 변경되는 데이터라서 성능적으로 적합하지 않을 것 같음.Realm: 12.2..

[HLS] Creating a Multivariant Playlist

Creating a Multivariant Playlisthttps://developer.apple.com/documentation/http-live-streaming/creating-a-multivariant-playlist동일 컨텐츠의 다른 인코딩을 제공하기 위한 여러 플레이리스트.목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multivariant Playlist..

apple/HLS 2024.12.05

[HLS] HTTP Live Streaming Overview

HTTP Live Streaming Overviewhttps://developer.apple.com/documentation/http-live-streaming목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multivariant PlaylistOverviewHLS(HTTP Live Straming)은 애플 디바이스에서 멀티미디어를 재생하기 위해 웹서버에서 HTTP 오디..

apple/HLS 2024.12.05

[HLS] Live Playlist (sliding window) construction

Live Playlist (sliding window) constructionhttps://developer.apple.com/documentation/http-live-streaming/live-playlist-sliding-window-construction라이브 세션 플레이리스트를 위한 기본 구성에 대한 이해목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multi..

apple/HLS 2024.12.05

[HLS] Event playlist construction

Event playlist constructionhttps://developer.apple.com/documentation/http-live-streaming/event-playlist-construction이벤트 세션 플레이리스트의 기본 구조에 대해 학습목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multivariant PlaylistOverview이벤트 플레이리스..

apple/HLS 2024.12.05

[HLS] Incorporating Ads into a Playlist

Incorporating Ads into a Playlisthttps://developer.apple.com/documentation/http-live-streaming/incorporating-ads-into-a-playlist플레이리스트에 브랜딩 또는 광고 추가.목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multivariant PlaylistOverview자신의..

apple/HLS 2024.12.05

[HLS] Adding alternate media to a playlist

Adding alternate media to a playlisthttps://developer.apple.com/documentation/http-live-streaming/adding-alternate-media-to-a-playlist기본 프레젠테이션에 대체가능한 플레이리스트를 지정.목차Adding alternate media to a playlistIncorporating Ads into a PlaylistVideo on Demand playlist constructionEvent playlist constructionLive Playlist (sliding window) constructionHTTP Live Streaming OverviewCreating a Multivariant Playli..

apple/HLS 2024.12.03

iOS VIPER 아키텍처 정리

iOS VIPER 아키텍처 정리 VIPER Architecture는 Jeff Gilbert와 Conrad Stoll이 클린 아키텍처를 iOS 앱 개발에 특별하게 적용하기 위해서 개발하고 대중화해당 포스팅에서는 Protocol 기반으로 작성 - 개인적으로는 enum으로 이벤트 전달하는게 익숙한데, 프로토콜 기반도 연습하고자 함. 예제 파일VIRER란?ViewViewController로 xib/storyboardInteractor:데이터, 네트워킹 및 비즈니스 로직을 담당.PresenterView와 Interactor 사이에 데이터를 전달하고, 사용자 이벤트를 처리하여 라우터를 호출.VIPER의 다른 모든 객체들과 통신하는 유일한 객체Entity데이터 객체이며 데이터 접근은 Interactor에서 가능VI..