비동기

    동기/비동기와 블록킹/논블록킹에 대하여

    1. 동기와 비동기 동기와 비동기는 작업(프로세스)의 수행 순서에 관한 개념으로, 처리해야할 작업들의 순서를 보장하는지 아닌지에 대한 관심사이다. 작업의 순서를 보장하기 위해서는 작업의 완료 여부가 중요하다. 작업이 완료된 후 바로 다음 순서의 작업을 수행해야 하기 때문이다. 만약 작업의 순서가 보장되어야 한다면 선행 작업이 완료될 때 까지 그 결과를 기다릴 것이고, 그렇지 않다면 기다리지 않고 각자의 작업을 수행한다. 즉, 동기/비동기는 특정 작업이 다른 작업의 완료를 신경쓰는지 여부에 대한 관심사이다. 1) 동기 (Synchronous) 동기라는 단어의 뜻은 동시에 일어난다는 뜻으로, 요청과 동시에 결과가 주어진다는 약속이다. 즉, 요청을 하면 시간이 얼마가 걸리던지 결과가 바로 주어져야 한다. (결..

    [RxSwift] RxSwift 톺아보기 - 1

    RxSwift를 써보면서 공부했던 내용을 간략하게 정리한 글입니다. 1. 소개 1) 왜 RxSwift를 사용하는가? 우리가 앱을 만들기 위해 작성하는 대부분의 코드는 외부 이벤트(UI 컨트롤 등)에 대한 응답을 다룬다. 예를 들어 버튼 터치에 대한 액션 메서드를 작성하거나 기기의 방향 변경에 대한 옵저버를 추가해서 특정 작업을 수행하는 코드를 작성한다. 뿐만 아니라 네트워크 통신으로 받은 응답을 처리하기 위해 클로저 구문을 작성하기도 한다. RxSwift는 이러한 모든 비동기적인 응답 코드들을 처리하는 일관된 시스템이다. 2) 개념 모든 Observable 객체는 Sequence의 인스턴스로 간주된다. Sequence 순차적, 반복적으로 자신의 원소에 접근할 수 있는 타입을 의미하며, for-each 같..

    [Sesac IOS] 25일차 TIL

    25일차 수업에서 배운 내용을 정리한 글입니다. Learned 프로세스(Process) 1) 프로그램 특정 작업을 수행할 수 있고 컴퓨터가 실행시킬 수 있는 코드 프로그래밍 언어로 짜여진 코드는 컴파일러에 의해 컴퓨터가 이해할 수 있는 언어로 번역된다. 2) 프로세스 컴퓨터에 의해 실행되어 메모리에 올라간 프로그램 프로세스는 최소 한 개의 스레드(메인 스레드)를 갖는다. 프로세스마다 독립적인 메모리 공간을 가지기 때문에 다른 프로세스의 메모리에 접근할 수 없다. 멀티 스레드 1) 개념 스레드란 프로세스에서 수행되는 작업의 단위 멀티 스레드란 하나의 프로세스에 여러 스레드가 존재해서 각 스레드마다 여러 작업들이 동시에 수행되는 것을 의미함. 동시에 여러 작업을 수행하기 때문에 빠르게 처리할 수 있다는 장점..