[CS - iOS] Coordinator Pattern
·
CS
다음주에 코디네이터 패턴을 활용할 일이 생길 예정인데 내가 너무 코디네이터 패턴에 대해 무지한 것 같아서 이렇게 정리해보는 글을 써보며 예습하는 시간을 가져보려한다.코디네이터 패턴의 시작코디네이터 패턴은 Soroush Khanlou 라는 분의 한 아티클에서 시작했다고 한다.Khanlou 선생님..ㅎㅎ해당 글을 읽어보면 알 수 있는데, 간단하게 요약해보자면 다음과 같다.UIViewController도 하나의 View 객체이다.이러한 View 객체가 사용자의 흐름(다음 화면으로 화면전환을 하는 일)을 처리하는 것은 View의 역할 범위를 넘어섰다 !따라서 ViewController 자체를 하나의 고수준 객체(coordinators or directors)로 보고 이를 총괄하는 하나의 객체를 가지면 역할 분리..
[CS - iOS] 동시성 프로그래밍 (feat. GCD, OperationQueue)
·
CS
Swift에서 동시성 프로그래밍하면 크게 GCD(Grand Central Dispatch)와 OperationQueue 두 가지로 나눌 수 있다.두 가지 모두 가볍게..(낱낱이 파헤쳐볼라 그랬는데 그건 양이 너무 많아서 각각 따로 정리해야할듯..ㅎ) 파헤쳐보자.GCD(Grand Central Dispatch)GCD는 스레드 프로그래밍을 위해 Apple에서 제공하는 하위 레벨 C-based API이다. iOS 프로그래밍을 하면서 동시성을 처리하기 위해 가장 널리 사용된다.GCD는 기본적으로 작업들(tasks)을 Queue에 배치하고 이를 비동기적으로 실행시킨다.GCD의 Queue 크게 Main Queue와 Global Queue, Custom Queue 세 개로 나뉜다.Main Queue메인 스레드에서 처..
[CS] 동시성 프로그래밍 vs 비동기 프로그래밍
·
CS
비동기 프로그래밍과 동시성 프로그래밍.. 말로만 들으면 말장난 마냥 두 개가 뭐가 다르지? 둘 다 여러 일을 한 번에 처리하는거 아닌가? 라는 생각이 들었다.. 이 애매모호한 개념을 확실히 하기 위해 정리를 해보겠다. 둘의 차이점을 제대로 이해하기 위해서 비동기, 동시 각각의 단어의 반대말을 찾아보았다. (보통 이렇게 비슷한 단어가 있으면 각각의 반대말을 찾아서 비교하는 것이 도움이 될 때가 많다.)먼저 비동기의 반대말을 알아보자. (찾아봤는데 크게 와닿는 설명이 잘 없어서 내가 이해한대로 작성해보고자 한다..)비동기(Asynchronous)의 반대말은 동기(Synchronous)이다.비동기(Asynchronous)적이라는 것은 하나의 작업을 실행시키고 해당 작업이 끝날때까지 기다리지 않고 바로 다음 작..
[CS - iOS] 프로세스와 스레드 관리
·
CS
iOS에서의 프로세스와 스레드 관리는 애플리케이션의 성능과 효율성을 크게 좌우한다.프로세스 관리iOS는 단일 프로세스 모델을 사용한다.따라서, 애플리케이션의 프로세스 관리는 기본적으로 앱의 생명주기와 관련이 깊다.앱이 시작되면, 시스템은 앱의 메인 스레드를 생성하고, 이 스레드는 앱의 주요 이벤트 루프를 실행하게 된다.앱이 종료되면, 시스템은 해당 프로세스를 종료한다.스레드 관리스레드는 애플리케이션 내에서 동시에 열 작업을 수행할 수 있게 해준다.iOS에서는 NSThread 클래스를 사용하여 스레드를 관리할 수 있다.스레드는 애플리케이션의 메인 스레드와 별개로 실행되며, 메인 스레드가 UI 업데이트를 처리하는 동안 백그라운드 작업을 수행할 수 있다.스레드 생성 및 관리메인 스레드: 앱의 시작점이며, UI..