일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 옵셔널
- collectionview
- 학과별커뮤니티
- async
- 프로토콜
- 네트워크
- mvc
- swift
- Kingfisher
- uikit
- 반응형
- 실습
- GCD
- 토이프로젝트
- 구름톤 유니브
- 앱개발
- struct
- 세종대학교
- CS
- 기초문법
- 대표
- MVVM
- 동시성
- RxSwift
- SwiftUI
- ios
- 이론
- WeatherKit
- 스트럭트
- Optional
- Today
- Total
목록ios (85)
스윞한 개발자

안녕하세요! 이번 시간에는 DiffableDatasource에 대해 공부해 보고 정리해 보겠습니다! # DiffableDatasource란?DiffableDatasource는 iOS 13부터 도입된 데이터를 관리하는 최신 방식입니다. UICollectionView, UITableView에서 사용될 수 있습니다. 일반적으로 사용하던 DataSource를 사용하는 방식보다 더 간단하고 효율적인 기능을 제공합니다. https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource-9tqpa UICollectionViewDiffableDataSource | Apple Developer DocumentationThe object ..

안녕하세요! 이번 포스팅에서는 ARC에 대해 정리해 보고 무작정 weak를 쓰던 그 시절... 에서 벗어나 언제 어떤 상황에 써야 하는지 그 예시도 함께 살펴보겠습니다. 오늘 정리할 내용은 ARC! Automatic Reference Counting, 자동 참조 계수입니다. 저도 프로젝트를 진행하면서 강한 참조 약한 참조 많이 사용도 해보았는데요! 언제 어떻게 왜 쓰는지는 정확하게 몰랐습니다! 이번 시간을 통해 더 자세히 제대로 알아보겠습니다! ARC에 대해 알아보기 전에 RC(Reference Count)에 대해서 한번 정리해 보겠습니다. #RC인스턴스를 참조하는가 안 하는가를 숫자로 표현한 것입니다. 컴파일 타임에 언제 참조되고 해제되는지 결정되며, 런타임 때 그대로 실행됩니다. * 장점 : 개..

안녕하세요. 동시성 프로그래밍과 관련해 지난 포스팅에서 GCD, swift Concurrency에 대해 정리해 보았습니다. GCD 내부 코드에서 경쟁 상태를 방지하기 위해 lock, queue 등을 사용해줘야 했는데! 이제는 actor를 통해 대응이 가능해졌습니다. 이번 포스팅에서는 Actor에 대해 톺아보겠습니다! 먼저, 기존의 lock 등을 사용해 경쟁 상태를 관리할 수 있었는데 Actor가 등장하게 된 배경에 대해 간략히 정리해 보겠습니다. NSLock을 사용할 경우에 모든 경우에 개발자가 직접 관리해야 하기 때문에 휴먼 에러가 발생할 가능성이 있습니다. 해제를 깜빡하거나 잘못된 순서로 사용하면 데드락이 발생할 수 있습니다. 아래와 같이 비교해 볼 수 있습니다.수동으로 lock을 관리해야 함act..

안녕하세요! 지난 렌더링 관련된 포스팅에서 이미지 리사이징에 대해 간단하게 정리해 보았는데,이번 포스팅에서는 이미지 다운샘플링까지 같이 정리해 보고 어떤 상황에 어떤 방법을 사용하면 좋을지에 대해 알아보겠습니다. 지난번에 정리했듯 이미지를 가져온다고 해서 바로 사용할 수 있는 것이 아닙니다. 이미지를 사용하기 위해서는 Load -> Decode -> Render의 과정을 거쳐야 하는데, 이 과정에서 디코딩과 렌더링 할 때 많은 메로리가 사용되게 됩니다. 만약 큰 이미지가 많은 서비스를 경우 메모리 부족으로 앱이 꺼져버리는 상황이 발생할 수 있습니다. 그렇기 때문에 개발자는 위의 두 과정을 통해 이미지의 크기를 줄일 수 있습니다. 우선 이미지 리사이징과 다운 샘플링의 개념과 차이에 대해 정리해 보겠..

안녕하세요. 이번 포스팅은..! 동기, 비동기, 동시, 직렬에 대해 정리해 보고 GCD에 대한 간단한 톺아보기와 늘 헷갈리던 Swift Concurrency의 개념과 둘의 차이점에 대해 정리해 보겠습니다. 이번에 GCD에 대해 공부해 보다, WWDC 2021에 나온 swift concurrency가 GCD가 있는데 왜 나왔을까 하는 생각이 들었습니다. 우선 GCD에 대해 간단히 정리해 보면, #GCD기존의 Swift는 동시성 프로그래밍을 구현하기 위해서 GCD를 사용해 왔습니다. 비동기의 코드 블록을 DispatchQueue라는 매니저(Queue)에 넣어서 블록을 스레드에 작업을 할당하는 방식입니다. GCD는 주로 @escaping 클로저를 활용해 작업 객체에 대한 콜백을 받습니다. 그렇다면 잘 사용하..

안녕하세요! 이번 포스팅에서는 AutoLayout의 우선순위! Content Hugging Priority, Content Compression Resistance Priority에 대해 공부하고 정리해 보려고 합니다. Content Hugging Priority, Content Compression Resistance Priority에 대해 접근하기 전에 알아야 할 개념들에 대해 정리해 보겠습니다.#AutoLayout PriorityContent Hugging Priority, Content Compression Resistance Priority은 iOS의 AutoLayout의 우선순위입니다. 오토레이아웃에서 뷰의 크기를 어떻게 결정할지에 영향을 주는 제약 조건 우선순위입니다! 요즘, 처음으로 돌아..

안녕하세요! 요즘, 캐싱에 대해 많은 글을 쓰고 있는 것 같습니다..! 캐싱의 한 부분을 공부하다 보니 관련된 여러 주제로 뻗어나가는 것 같아요. 그래서 이번 포스팅은..! 이미지 캐시와 이미지 로더를 통합해 개선하는 과정과 개념에 대해 정리해 보려고 합니다. 어플이 이미지를 다운로드하는 경우, 일반적으로 이미지를 로딩하는데 시간이 걸립니다. 앱이 동일한 이미지를 여러 번 다시 로드할 때 불필요한 작업이 될 수 있고 사용자는 불편함을 느낄 수 있습니다. 테이블뷰나 컬렉션뷰를 가지고 있는 어플이 대부분일 것입니다. 앱을 실행하고 스크롤할 때 거의 대부분의 사용자가 버벅거리는 환경을 경험해 보았을 것입니다.-> 이러한 이슈는 이미지 렌더링이 한 번에 이루어지지 않아서 생긴다고 합니다. LazyStac..

안녕하세요! 지난 포스팅에서 Kingfisher의 이미지 캐싱과 커스텀 이미지 캐싱에 대해 정리해 보았는데, 문제점을 발견해 그에 관해 분석해 보고 파생될 수 있는 다른 문제점들에 대해 해결책을 생각해 보려고 합니다. 오늘 포스팅에서는 쟁점이 되는 목차들을 생각해 보았습니다. 1. 캐시에 저장된 이미지를 보여줄때 -> 서버 상의 이미지가 달라졌을 때저번 포스팅에서 Kingfisher에 캐싱 기능에 대해 정리를 하고 커스텀 캐시 코드를 작성해 보았습니다. 제가 가져오는 getImage 메서드는 싱글톤으로 구현했고 이미지 URL이 캐시에 존재하면 서버와의 통신을 하지 않았습니다. 구현을 마치고 캐싱 과정이 잘 되는지 확인했고 멋지게,, 포스팅을 했다고 생각하고 있었습니다. 근데,,, 곰곰이 생각해 보니,,..