티스토리 뷰

스위프트/SwiftUI

[SwiftUI] - Combine이란?

강철곰탱이 2024. 3. 11. 03:40

 

 

SwiftUI를 좀 더 깊게 이해하고 사용하기 위해서는 Combine에 대한 이해는 필수적이라고 한다.

Combine 많이 들어는 봤지만 이번 기회에 제대로 정리해보자.

 

✏️ Combine 

 

 

애플 공식 문서에서 Combine에 대해서 자세하게 설명해주고 있다.

 

 

Combine | Apple Developer Documentation

Customize handling of asynchronous events by combining event-processing operators.

developer.apple.com

 

Combine은 애플에서 제공하는 프레임워크로, 시간의 흐름에 따라 데이터를 처리하고 변환하는 데 사용된다.

이를 통해 application의 상태 변화를 추적하고, 데이터의 비동기적인 처리를 관리할 수 있다. 

 

정리하자면 "비동기 일 처리를 비교적 간편하게 처리할 수 있도록 해주는 프레임워크"라고 할 수 있다.

또 "RxSwift의 apple 버전같은 느낌"이라고 한다. (사실 RxSwift 아직 공부안해서 무슨 느낌인지 모르겠다.....)

 

Combine에서 중요한 3가지 요소는 Publisher, Subscriber, Operator이다.

흐름은 Publisher가 데이터 생성 -> Subscriber가 처리 -> Operator가 데이터 조작하여 필요에 맞게 변환하는 형태이다.

 

 

1️⃣ Publisher

 

  • 데이터를 생성하는데 사용 (일련의 값 생성, 외부 이벤트 수신 등)
  • 값 또는 완료 및 오류와 같은 종료 이벤트를 Subscriber에게 전달할 수 있다.
  • ex) Timer, NotificationCenter 등

 

2️⃣ Subscriber

 

  • Publisher로부터 생성된 데이터의 각 이벤트(값, 완료, 오류)를 처리하는 역할
  • Publisher에게 구독을 요청하고, 이를 통해 해당 이벤트에 응답할 수 있다.
  • ex) 데이터 수신하여 UI 업데이트, 데이터 저장하거나 처리 등

 

3️⃣ Operator

 

  • Publisher가 생성한 데이터를 변환하거나 조작하는 역할
  • ex) Map, Filter 등

 

 

✏️ Combine 동작 방식

 

 

 

 

  1. Publisher 생성
  2. Subscriber 구독: 생성된 Publisher에 Subscriber가 구독을 요청한다.
  3. 데이터 흐름 전달: Publisher는 생성한 값 또는 외부 이벤트를 Subscriber에 전달한다.
  4. Operator 적용: Subscriber에 데이터가 전달되기 전에 Operator가 적용될 수 있다.
  5. Subscriber 처리: Publisher로부터 받은 데이터 처리

 

 

✏️ Combine 특징

 

 

  • 비동기 프로그래밍: 비동기 작업 처리하는데 적합
  • 데이터 흐름의 표현: Publisher 및 Subscriber를 사용하여 데이터 흐름을 정의하고, Operator를 사용해 데이터 변환하고 조작할 수 있다.
  • 선언적 프로그래밍: 데이터 흐름의 정의와 조작을 간단하고 명확하게 표현
  • 자동 구현: IBAction이나 delegate와 같은 옛 방식을 사용하는 것보다 자동으로 생성되는 코드가 많다.
  • 코드의 퀄리티: 코드가 간결해져 가독성을 향상시키고, 유지보수를 용이하게 할 수 있다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함