RxSwift - Introduction

Seoyoung Lee·2023년 10월 22일
1

RxSwift

목록 보기
1/5


(Udemy의 Mastering RxSwift in iOS 강의를 듣고 정리한 글입니다.)

회사에서 개발하려면 MVVM이랑 RxSwift는 모르면 안 될 것 같아서 RxSwift 공부 시작..!! ^-ㅠ

함수형 프로그래밍이란?

함수형 프로그래밍에서 모든 변수는 상수이기 때문에 값을 변경할 수 없다.

mutable state

mutable state는 누구나 값을 마음대로 변경할 수 있다는 것

⇒ concurrency (동시성) 관련 작업을 할 때 데드락과 같은 문제가 일어날 수 있다.

Immutable state

함수형 프로그래밍에서는 모든 것이 immutable state이기 때문에 값을 변경할 수 없다.

⇒ 데드락 등의 문제도 일어나지 않고, 다른 것들에 대한 의존 관계도 가지지 않는다!

First-class and higher-order function

고차함수(Higher-Order Function, HOF)는 아래 조건 중 하나 이상을 만족하는 함수를 말한다.

  • 하나 이상의 함수를 인자로 받는다.
  • 함수를 결과로 반환한다.

즉, 함수를 다루는 함수라고 할 수 있음!

Pure Function

  • 같은 Input 값을 넣으면 항상 같은 Output 값이 나오는 함수
  • 주어진 Input을 가지고 계산하는 것 이외에 프로그램에 다른 영향(side effect)를 미치면 안 된다.

함수형 프로그래밍에서 모든 것은 HOF이고 Pure Function임!

RxSwift란?

테이블 뷰, 탭 바, 정렬/필터 버튼이 있는 앱을 생각해보자

이 앱에는 이미지 다운로드, 탭 등등 다양한 action들이 있을 거고, 이런 액션들은 모두 비동기적으로 접근할 수 있어야 한다. 이때 Notification Center, 델리게이트 패턴, GCD, 클로저를 사용해야 하는데 얘네는 사실 비동기를 위해 완전히 설계된 것이 아님!! 그래서 async 같은 코드들을 더 추가해줘야 한다는 문제가 있다.

RxSwift를 사용하면 비동기 코드를 더욱 간결하고 유지하기 쉽게 작성할 수 있다 😎

profile
나의 내일은 파래 🐳

0개의 댓글