Intro) 들어가기 앞서

Rx를 사용한지 4개월정도 된 거 같다. 사실 Rx가 러닝커브가 높다는 얘기는 많이 들었지만, 깊숙히 들어가지 않고 좋은 레포 찾아서 적용하는 과정에서는 사용하는데 크게 문제가 되지 않아서 야무지게 잘 사용하고 있었다. 하지만 드디어 근본적인 문제들에 맞딱뜨리게 되었다. 그렇기에 예전에 문법공부를 한 것처럼 Rx를 좀 쑤셔파는 공부를 시작해보려고 한다.

<aside> ⭐ 결론적으로 이번 아티클에선 “Rx 왜 써?” 라는 질문에 “비동기 처리하려고.” 라는 아는 척 하는 대답을 그만하고 싶은것이다. 그러면 아래 초록 글씨 두개부터 해결해야 한다.

</aside>

**RxSwift**는

  1. 함수형 프로그래밍의 스타일을 채택하고
  2. **반응형 프로그래밍(Reactive Programming)**의 아이디어를 구현하는 데

중점을 둔 라이브러리입니다.

1. 함수형 프로그래밍

프로그램이 상태의 변화 없이 데이터 처리를 수학적 함수 계산으로 취급하고 하는 프로그래밍

<aside> ⭐ 값이나 상태의 변화(How)보단 함수 자체의 응용을(what)을 중요하게 여긴다.

</aside>

이렇게 말로만 설명하면 아마 체감이 안 올겁니다.

그래서 함수형 프로그램과 반대되는 명령형 프로그래밍 코드와 비교해서 설명해보겠습니다.

1-1. 명령형 프로그래밍

코드를 통해 알아보자. 만약 내가 아래와 같이 솝트 회원의 파트 리스트를 가지고 있고,

무엇을 어떻게 할 것인지에 초점을 가지는 프로그래밍

let sopt = ["iOS", "iOS", "AOS", "SERVER", "PLAN", "iOS", "WEB", "DESIGN"]

아요 회원만 print를 하고 싶다면 기본적으로 아래와 같이 코드를 작성할 것이다.

var ios: [String] = []
for part in sopt {
		if part == "iOS" {
				ios.append(part)
		} else {
				print("아요 빼고 다 나가. 뒈지기 싫으면")
		}
}

print(ios)

이 코드를 설명하시오! 라고 말을 하면 우리는 말 그대로 코드를 읽으면서 설명할 수 있다.

  1. 일단 ios 친구들을 담을 리스트를 만들구요
  2. sopt 리스트를 돌면서 ios 파트를 만나면 append 해주고