일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 실습
- 네트워크
- 세종대학교
- WeatherKit
- 학과별커뮤니티
- SwiftUI
- collectionview
- swift
- RxSwift
- CS
- 옵셔널
- 대표
- 이론
- 스트럭트
- 캐시
- Kingfisher
- 동시성
- observable
- 반응형
- async
- uikit
- 토이프로젝트
- snkit
- 프로토콜
- 라이브러리
- ios
- mvc
- 구름톤 유니브
- 기초문법
- struct
- Today
- Total
목록Swift 이론 (70)
스윞한 개발자

안녕하세요! 또 새로운 주제로 포스팅을 해보려고 합니다! 오늘의 주제는 "@Observable 매크로의 내부 동작과 ObservableObject와의 비교"입니다! 오늘 포스팅에서는 WWDC23에서 소개되고 iOS17부터 본격적으로 사용할 수 있게 된 @Observable 매크로에 대해 파해쳐보겠습니다! # ObservableObject의 한계 SwiftUI가 처음 등장했을 때, 상태 관리를 위해 ObservableObject 프로토콜과 @Published 속성 래퍼를 사용했습니다.저 또한 아직까지 뷰모델에서 ObservableObject와 @Published를 자주 사용하는 거 같습니다. ObservableObject의 특징을 보면1. ObservableObject는 참조 타입인 클래스에서만 사용이 ..

안녕하세요! 오늘은 제가 iOS 앱 개발을 하면서 정말 중요하다고 느낀 SwiftUI 뷰 렌더링 최적화 기법에 대해 이야기해보려고 합니다. 최근에 불투명 타입과 Type Erasure에 대한 글을 썼었는데요, 이번엔 조금 더 실용적인 내용을 가져왔습니다! SwiftUI로 앱을 개발하다 보면 처음엔 모든 게 신기하고 간단해 보이지만... 앱이 복잡해질수록 성능 문제가 눈에 띄기 시작하죠. 특히 화면이 버벅거리거나 스크롤할 때 프레임이 떨어지는 현상은 사용자 경험에 치명적이라고 생각합니다. 제가 처음에 SwiftUI에 대해 공부했을 때는, 렌더링? 뷰가 언제 다시 그려지고 언제 안 그려지는지는 전혀. 생각해보지 못했습니다. 아~~ 그냥 그려지는구나! 어? 돌아가네.. 라고만 생각하고 프로젝트를 만들기 급..

안녕하세요! SNKit 개발 일지 이후에 오랜만에 다른 주제로 돌아온 거 같습니다 ㅎㅎ 요즘에 SwiftUI에 대해 다시 공부를 시작했는데요! 보면 볼수록 늘 새롭고 짜릿한... SwiftUI.. 제가 처음에 SwiftUI를 시작했을 때는 강의만 듣고 구현하기에 급급했는데요,,, some,, AnyView... 등등그냥 구현하기 위해 왜 쓰는지도 모르고 사용했었죠.그래서 오늘은! Swift Opaque Type vs Swift Type Erasure에 대해 비교해 보고 정리해 보겠습니다!두 가지 중요한 개념인 Opaque Type과 Type Erasure은 정보를 추상화하는 방법이지만, 사용 목적과 동작 방식에는 중요한 차이가 있습니다. 우선 타입의 정보를 추상화한다... 결국 타입의 정보를 숨기는 과..

안녕하세요! 이번 포스팅에서는 DB Transaction / ACID 에 대해 정리해 보겠습니다! DB 트랜잭션(Transaction)과 ACID란?1. DB 트랜잭션이란?우선 정의를 살펴보면,, 데이터베이스(DB)에서 트랜잭션(Transaction)은 여러 데이터베이스 연산이 하나의 논리적 단위로 묶여서 실행되는 일련의 작업들을 말합니다. 트랜잭션은 여러 데이터베이스 작업을 하나의 단위로 처리하여, 데이터의 일관성 및 무결성을 보장합니다.... 이렇게 말하면 감이 잘 안 오실 텐데요! 은행 계좌 간 이체 작업을 예를 들겠습니다. "계좌 A에서 돈을 빼고, 계좌 B에 돈을 넣는" 작업은 둘 다 하나의 트랜잭션(연산단위)으로 묶여야 하며, 한쪽만 실행되고 다른 쪽은 실행되지 않는 경우는 허용되지 않습니다..

안녕하세요! 이번 포스팅에서는 Hot/Cold Observable과 Multi/UniCast에 대해 정리해보겠습니다. 제가 RxSwift를 공부해보며,,, 하면 할수록 늘 새로운거 같아요! 몰랐던 개념들이 참 많은것 같습니다. 반응형 프로그래밍을 공부하다 보면 꼭 나오는 개념들이 있습니다. 바로 Hot / Cold 그리고 Multicast / Unicast입니다. 오늘은 이 네 가지를 한 번 정리해보려고 합니다! Hot Observable정의구독과 상관없이 이벤트를 방출할 수 있다.생성되자마자 데이터를 흘려보낼 수 있다.새로운 구독자는 이미 지난 이벤트는 보지 못한다. 특징생성 순간부터 시작 (구독 여부 상관없음)Subject가 대표적인 예시let subject = PublishSubject()let ..

안녕하세요! 이번 포스팅에서는 DAO, DTO, Entity + Repository Pattern에 대해서 정의해 보고! 왜? 써야하는지, 어떻게 써야 하는지에 대해 알아보겠습니다. 우선, 1. DAO (Data Access Object)- 데이터베이스나 API같은 데이터 소스를 직접 다루는 객체- 데이터를 읽고 쓰는 구체적인 작업을 담당- 데이터 저장소에 대한 CRUD 작업을 추상화 정리하자면, DAO는 데이터 저장소와 직접적으로 소통하는 레이어입니다. 비즈니스 로직과 저장소의 로직을 분리하여 유지보수에 용이하게 할 수 있습니다. 예를 들어, 자주 사용하는 로컬 저장소인 UserDefaults를 보여드리겠습니다.protocol UserDefaultsDAO { func saveUser(_ us..

안녕하세요! 이번 시간에는 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인스턴스를 참조하는가 안 하는가를 숫자로 표현한 것입니다. 컴파일 타임에 언제 참조되고 해제되는지 결정되며, 런타임 때 그대로 실행됩니다. * 장점 : 개..