https://store.raywenderlich.com/products/rxswift
해당 책을 토대로 공부하고 정리한 내용들입니다.
오역과 잘못된 정보가 포함되어있을 수 있습니다.
Rxswift의 정의
RX 라이브러리 옵저버블 시퀀스와 함수 스타일의 오퍼레이터를 이용하여 비동기적이고 이벤트 기반의 코드를 작성하기위한 라이브러리다.
이게 뭔말이래...?ㅋㅋㅋㅋ공부하다보면 이해가 되겠지~
RxSwift는 나의 코드가 새로운 데이터에 반응해서 순차적으로 격리된 방식?을 처리함으로 비동기 프로그램을 할 수 있다네요.
(옵저버블 맵을 보면 순차적으로 옵저브 마블들이 있죠 그걸 뜻하는 걸 같네요)
iOS는 다양한 작업들을 동시에 할 수 있는데요
예를 들자면 버튼을 탭 했을 시의 응답
키보드로 텍스트를 입력 시 자동입력?
큰 이미지의 파일들을 다운받고
데이터를 저장하고
오디오를 재생시키고 등등등...
여러가지 작업을 한번에 할 수 있어요.
모든 것들은 동시에 일어나는 것처럼 보이지만 음악을 재생하고 버튼을 탭하면 음악이 끊기지 않는 것.
뭐 그러니까 비동기적이라는 것을 설명해주고 있고
iOS는 모든 API 종류들이 서로 다른 스레스와 CPU를 제공해준다고합니다.
병렬 코드 처리는 조각조각되어있어 어려워서 동일한 작업 할 때 더욱 복잡해진다는 말인 것 같아요.
Cocoa 와 UIKit에서 비동기 프로그래밍을 할 수 있는 방법들은 아래와 같은 것들이 있어요.
(나중에 좀 더 공부해봐야지)
1. NotificationCenter : 흥미로운 이벤트가 발생 할 때 코드의 조각이 실행된다. 디바이스의 성향? 목표를 바꾸거나 소프트웨어 키보드가 보여졌다 숨겼다하는 것 같이.
2. The delegatePattern: 임의의 시간에 클래스와 API에서 실행될 메소드를 정의한다. 예시로 어플리케이션에 정의한 델리게이트가 새로운 노티피케이션 에 도착했을 때 이 코드가 언제 실행될 것 인지 또는 실행될 횟수를 알 수 없다.
3. Grand Central Dispatch: 작업의 조각들의 실행의 추상화를 돕는다. Serial queue에서 순차적으로 실행될 코드를 예약할 수 있거나 다른 큐와 다른 우선 순위 등 다수의 업무를 동시에 실행 할 수 있다.
4. Closures: 클래스 간에 전달 할 수 있는 분리된 코드 조각을 만들어 클래스가 몇번 실행하고 어떤 컨텍스트에서 실행할지 결정할 수 있다.
2020/10/04 - [iOS/RxSwift] - RxSwift: Chapter - 1[Hello RxSwift!]
'개발 > 개발' 카테고리의 다른 글
[iOS] - 함수형 프로그래밍 (0) | 2021.03.03 |
---|---|
[iOS] - Swift Style Guide 정리 (0) | 2021.02.26 |
RxSwift: Chapter - 2[Observables] (0) | 2020.10.03 |
iOS - SceneDelegate[레나님] (1) | 2020.10.01 |
iOS - 실제 디바이스가 있을 때와 없을 때 할 수 있는 것과 없는 것 (0) | 2020.10.01 |