안녕하세요! 피피아노입니다 🎵
이번 포스팅에서는 드디어 RxSwift에 대한 개념에 대해서 정리해보려고 합니다.
RxSwift에 대해서 처음 공부하는 거다 보니 잘못된 부분이 있을 수도 있는데
잘못된 내용 지적이나 피드백은 댓글로 부탁드립니다!
그럼 바로 시작해보겠습니다!
RxSwift가 뭔데?
우선 RxSwift가 어떤 것인지부터 이해하고 시작합니다.
RxSwift, 정말 많이 들으신 분들도 계실 거고 처음 들어보시는 분들도 계실텐데 한줄 요약을 해보면 반응형 프로그래밍(Functional Reactive Programming)을 Swift에서 구현할 수 있도록 도와주는 라이브러리입니다.
그렇다면 반응형 프로그래밍(리액티브 프로그래밍)이 도대체 뭐냐?
(여기서부터는 리액티브 프로그래밍이라고 표현하겠습니다)
리액티브 프로그래밍이란?
리액티브 프로그래밍은 데이터 스트림과 변경 사항에 따라 자동으로 반응하는 프로그래밍 패러다임입니다. 쉽게 말해서, 데이터의 상태가 변화하면 그에 따라 자동으로 UI나 다른 컴포넌트가 업데이트 되는 것이라고 이해하시면 됩니다.
예시를 들어서 설명하자면 우리가 문자나 카톡을 주고 받을 때 메세지가 도착하면 자동으로 화면에 보여지고 채팅방이 상단에 올라가고, 스크롤이 조정되는 현상들 많이 보셨을 텐데 그런 모습들이 리액티브 프로그래밍으로 만들어진 것이라고 생각하시면 됩니다.
물론 이거 말고도 정말 많은 것들이 있겠죠?
하지만 이건 사용자 입장에서의 간단한 예시고 개발자 입장에서 좀 더 깊숙하게 알아보자면,
일반적인 프로그래밍
var x = 15
var y = 25
var total = x + y // total은 40
// x의 값을 변경해도 total은 변하지 않음
x = 30
total // 여전히 40
일반적인 프로그래밍을 보면 x의 값을 바꿔도 total은 변하지 않습니다.
total은 x의 값을 복사했기 때문에, x가 바뀌어도 total에는 영향을 주지 않죠.
하지만!!
리액티브 프로그래밍에서는 x의 값이 달라지면 total도 자동으로 업데이트가 된다는 겁니다!
반응형 프로그래밍
var x = 15
var y = 25
var total = x + y // total은 40
// x의 값이 바뀌면
x = 30
// total도 자동으로 55로 업데이트됨
여기서 total은 x의 값 변화를 "관찰"하고 있기 때문에, x가 바뀌면 total이 자동으로 새로운 값을 계산하게 되는 것이죠!
어떻게 이것이 가능하냐?
리액티브 프로그래밍은 데이터의 흐름과 변경사항을 "전파"하는 방식으로 작동합니다.
- 관찰자 패턴: x가 바뀔 때, total은 이를 감지하고 자동으로 값을 갱신합니다.
- 이벤트 전파: 데이터가 변경되면 연결된 다른 데이터나 UI 요소에도 그 변경사항이 전달됩니다.
이게 리액티브 프로그래밍! 즉, 반응형 프로그래밍입니다.
자 이제 RxSwift가 뭐고, 리액티브 프로그래밍이 뭔지 알았는데 왜 꼭 이러한 처리를 해야 하냐?
비동기 처리의 필요성
모바일 앱 개발에서는 네트워크 요청, DB 접근 등 비동기 작업이 빈번하게 발생합니다. 전통적인 방법으로는 콜백(callback)이나 델리게이트(delegate)를 사용해서 이러한 작업을 처리하는데, 물론 이렇게 작업해도 되지만 이렇게 작업을 하게 되면 코드가 너무 복잡해지고 가독성도 안 좋아지게 됩니다.
반면에 RxSwift는 이러한 비동기 처리를 스트림(Stream)으로 처리해서 코드의 일관성을 높여주고 가독성 또한 높여주게 됩니다.
그럼 이러한 처리는 어떻게 되느냐?
바로 RxSwift의 Observable과 Observer, 그외에 다양한 Operator들을 통해서 가능해집니다.
이 내용은 다음 포스팅들에서 차근차근 정리하겠습니다!
정리!!!
정리해보자면 RxSwift는 반응형 프로그래밍이고, 반응형 프로그래밍이기 때문에 데이터 변화를 감지하고 여러 연산을 처리하고 업데이트할 수 있구나! 정도로 이해하시면 될 것 같습니다!!
오늘은 여기까지 :)
감사합니다.
잘못된 내용이 있거나 더 좋은 내용 피드백은 언제나 환영합니다!
궁금하신 부분은 댓글로 질문 부탁드립니다!
'Apple > RxSwift' 카테고리의 다른 글
[RxSwift] RxSwift 라이브러리 설치해보기 (10) | 2024.10.28 |
---|