Async/Await (8)
Concurrent Tasks 이번엔 동시에 작업을 생성하는 방법에 대해 다뤄본다. Async let 이 작업은 여러 하위 작업(Child Tasks)을 가질 수 있다. 하위 작업은 async let 구문을 사용하여 생성되며, 결국 async let은 변수와 같은 역할을 한다. 이를 통해 이러한 작업이...
Concurrent Tasks 이번엔 동시에 작업을 생성하는 방법에 대해 다뤄본다. Async let 이 작업은 여러 하위 작업(Child Tasks)을 가질 수 있다. 하위 작업은 async let 구문을 사용하여 생성되며, 결국 async let은 변수와 같은 역할을 한다. 이를 통해 이러한 작업이...
Structured Concurrency ? WWDC21에 해당 관련 설명이 있다. 한번 봐두는것도 좋을듯 아래는 WWDC에 나온 리소스 링크 Structured Concurrency Docs async let 우선 Structured Concurrency는 아래와 같이 있다. Async let Task Group Unstruc...
이제 공부한 내용을 새로운 프로젝트를 통해 적용해보도록 한다. 여기선 News App을 만들것이고 URLSessoin Async/Await Continuation DispatchQueue to MainActor 이렇게 3가지를 적용해본다. 현재 프로젝트에서 func fetchSources(url: URL?, completion: ...
Async/Await Apple이 제공하는 Async/Await 지원 API Apple은 여러 API에서 이미 async/await을 지원한다: URLSession HealthKit Notification Core Data MusicKit 기존 작성된 코드들의 문제점 기존에 작성한 코드가 completion handlers나...
MVVM 디자인 패턴 적용하기 Async_Await (2)에서 했던 프로젝트를 이어서 진행한다. 구현할 매커니즘에 대해 간략하게 표현하면 다음과 같다 Webservice 구현 Webservice 클래스 파일을 하나 만들어 준다. 그리고 기존에 구현했었던 getDate 함수를 옮겨준다. class Webservice { p...
이번 섹션은 MVVM에 대한 내용을 다루는듯 하다. 시작하기전 Design Pattern에 대해 먼저 다루고 시작한다. Design Pattern ? 참고글이 너무 잘되어있어서 이걸 보면 좋을듯. 일반적으로 디자인 패턴이라고 하면 디자인 패턴은 소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위한 모범 사례이다. 주로 클래스와 객체 간...
Async/Await를 사용하여 날짜 가져오기 강의 흐름에 따라 정리를 해본다. 먼저, Async/Await 패턴은 Swift의 비동기 프로그래밍을 더욱 효율적이고 직관적으로 만드는 패턴이다. 이 패턴의 주요 장점은 다음과 같다. 코드의 가독성 향상: 비동기 코드를 동기 코드와 유사하게 작성할 수 있어 로직의 흐름을 쉽게 이해할 수 있다. ...
1. Concurrency ? Swift를 하다보면 중간에 배우게 되는게 Concurrency 이다. 그렇다면 Concurrency란 도대체 무엇일까? 사전적 의미로는 동시성이다. Swift에서는 간단하게 정의하면 여러가지 일을 같은 시간에 수행한다. Docs에도 있으니 한번 읽어 보는것을 추천. WWDC도 같이 봐두면 좋을듯하다. ...
1. CoreData 1. Modeling 그냥 Document의 내용 그대로 하면 될것같다. 최근 본내역도 클릭했을때 DetailView로 연동할지말지는 고민을 해봐야할것같다. 이렇게 만들어준다. 여기서도 주의할 점이라면 authors가 배열이 아닌 String 이라는 것에 초점을 둬야한다. CoreData의 경우 이전에도 언급했지만 ...
1. DetailView List에 뜨는 내용을 클릭했을때 상세페이지가 보여지는 화면이다. ScrollView가 핵심이다. 여기엔 제목, 저자, 내용, 이미지, 버튼(닫기, 담기) 이렇게 구성을 하면 될것같다. @State var title: String = "" @State var author: String = "" @State...