Post

[Day 47] Reactive Programming

RxSwift를 사용하여 Reactive Rrogramming하기! Part.1

[Day 47] Reactive Programming

❓ RxSwift? Reactive Programming 그게뭐야?

사용자가 입력할 때마다 감지해야하고, 이벤트 별로 전부 addTarget, delegate, NotificationCenter등등…. 예를 들어서 로그인 버튼은 ID, Password, 둘 다 입력해야 활성화가 되고, 입력 중이면, 로딩표시.. 서버 응답이 오면 Alert띄우기…

이렇게 상태가 많아지면 버그가 생기고, 흐름이 꼬이고 콜백의 지옥에 빠지게 되죠?…

이런 흐름이 전부 비동기 & 이벤트 기반이에요!

그래서 등장한 해결책이 Reactive programming

“값이 바뀌면 거기에 자동으로 반응하게 하자!”

  • 사용자가 텍스트 입력 → 이벤트 스트림
  • 네트워크 응답 → 스트림
  • 뷰의 상태 변화 → 스트림

이모든걸 하나의 데이터 흐름으로 보고 → 그 흐름에 반응하는 코드만 쓰면 끝!

자 그러면 간단하게 Reactive Programming를 알아 보았으니 RxSwift에 대해서 알아볼까요?

📌 RxSwift란?

ReactiveXMicrosoft 에서 만든 비동기, 이벤트 기반 프로그램을 위한 라이브러리에요.

지원하는 여러가지 언어들이 있는데 그 중 ReactiveXSwift 에서 쓸 수 있게 만든 라이브러리가 RxSwift

Reactive Extension은 함수형 패러다임의 기반으로 모든 연산은 고차 함수로 표현한 답니다.

▶️ ReactiveX 핵심 구성 요소

개념역할
Observable데이터 스트림을 나타내는 객체 (ex: 텍스트 입력, 버튼 클릭, 서버 응답 등)
Operatorsmap, filter, flatMap 등의 스트림 변형 연산
subscribe()이 스트림(Observer)을 지켜보겠다
ObserverObservable을 구독하고, 그 이벤트를 처리하는 객체
disposeBag메모리 누수 방지

예를 들면

1
2
3
4
5
6
Observable.from([10, 20, 30, 40, 50]) // Observable: 배열을 스트림으로 변환
  .map { $0 * 2 } // Operator: 각 값을 2배로 변형
  .subscribe(onNext: { value in // subscribe: 구독하고
    print(value) // Observer: 값을 처리 (이벤트에 반응)
  })
  .disposed(by: disposeBag) // disposeBag: 메모리 누수 방지

맺으며: 춘식이와 함께하는 스마트한 개발

Part.2에 이어서~

오늘도 오류 내며 자란 춘식이였습니다. 🐾 더 열심히 노력 해서 좋은 iOS Developer가 되자!

혹시 이 글을 보시는 분들 중 더 유용한 팁이 있다면 댓글로 많이 알려주세요!

This post is licensed under CC BY 4.0 by the author.