 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

concurrency 3

[Swift] 공식문서 씹어먹기: Concurrency

Overview 스위프트에는 비동기 및 병렬 코드를 구조화된 방식으로 코딩할 수 있는 기능이 있다. 한번에 프로그램의 오직 한 부분만 실행할 수 있음에도 비동기 코드는 중단(suspend) 되거나 재개(resume)될 수 있다. 비동기 코드가 중단되거나 재개될 수 있다는 부분은 네트워크 통신과 파일 탐색과 같은 시간이 오래 소요되는 연산을 지속하며 UI 업데이트와 같이 시간이 짧게 소요되는 연산을 지속할 수 있도록 한다. 병렬 코드는 여러 조각의 코드가 동시에 실행됨을 의미한다. 가령 4개 코어 프로세서를 갖고 있는 컴퓨터는 4부분의 코드를 동시에 실행시킬 수 있다. 이 과정에서 각 코어는 하나의 작업을 처리하게 된다. 중단된 연산은 외부 시스템에서 대기하며 이런 방식의 코드를 memory-safe 방식..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 10부 - 이미지 로딩

Overview 네트워크를 통해 받아온 이미지 데이터를 사용자 인터페이스에 보여주도록 구현해 본다. 화면 구성 이번 프로젝트에서 사용자 인터페이스를 통해 이미지를 띄워줘야 하는 화면은 총 3가지다. 음식 메뉴를 보여주는 MenuTableViewController, 주문서 명단을 보여주는 OrderTableViewController, 음식 메뉴의 세부 정보를 보여주는 MenuItemDetailViewController가 대표적인 예시이다. performance 네트워크를 통해 이미지 데이터를 불러오는 것은 다소 시간이 소요되는 작업일 수 있다. 사용자가 원하는 음식 메뉴 아이템을 찾기 위해 화면을 전환하며 탐색한다. 기본적으로 개발자가 별도의 최적화 작업을 진행해주지 않으면 동일한 이미지를 중복하여 다운로..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 7부 - 네트워킹 코드 모델링

Overview 음식점 서버 API와의 네트워크 통신 기능을 구현해 보고 공통 작업을 추상화시킨다. 들어가기 앞서 Swift Concurrency, Protocol, Generic 개념을 활용하고 있기에 이를 익히고 보면 포스팅을 재미있게 즐길 수 있다! Networking Common Process 서버 API를 활용해 클라이언트가 데이터를 요청하고 응답받을 수 있도록 도와주는 객체가 있다. Foundation 프레임워크의 URLSession 이 그 주인공이다. Fetching Website Data into Memory- Apple Developer 아티클을 통해 URLSession을 활용하여 통신 코드를 작성하는 예시를 확인할 수 있다. 쉽게 말하자면 통신 코드가 구현하는 작업은 크게 3가지로 구분..

반응형