๐ŸŽ iOS

[RxSwift] RxSwift๋ž€?

hyebin (Helia) 2024. 6. 3. 17:48
๋ฐ˜์‘ํ˜•

iOS ๊ฐœ๋ฐœ์ž๋ผ๋ฉด RxSwift์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. RxSwift๋Š” Swift ์–ธ์–ด์— ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์ž…ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” RxSwift์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๊ณ , iOS ๊ฐœ๋ฐœ์—์„œ RxSwift๊ฐ€ ์–ด๋–ป๊ฒŒ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

RxSwift๋ž€?

RxSwift๋Š” ๋น„๋™๊ธฐ์ ์ด๊ณ  ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ๋ฅผ ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ์‹œํ€€์Šค์™€ ํ•จ์ˆ˜ํ˜• ์Šคํƒ€์ผ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. RxSwift๋Š” ReactiveX (Reactive Extensions) ํŒจ๋ฐ€๋ฆฌ์˜ ์ผ๋ถ€๋กœ, ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ธ๊ธฐ ์žˆ๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค.

 

์ฃผ์š” ๊ฐœ๋…

  1. Observable
    • RxSwift์˜ ํ•ต์‹ฌ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
    • Observable์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉ์ถœํ•˜๋ฉฐ, ์ด ์ด๋ฒคํŠธ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ์—์„œ ๋ณต์žกํ•œ ๋น„๋™๊ธฐ ์ž‘์—…์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Observer
    • RxSwift์˜ ํ•ต์‹ฌ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
    • Observable์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉ์ถœํ•˜๋ฉฐ, ์ด ์ด๋ฒคํŠธ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ์—์„œ ๋ณต์žกํ•œ ๋น„๋™๊ธฐ ์ž‘์—…์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Operators
    • Observable์ด ๋ฐฉ์ถœํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ฒฐํ•ฉํ•˜๋ฉฐ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋“ค์ž…๋‹ˆ๋‹ค.
    • ์„ ์–ธ์  ๋ฐฉ์‹์œผ๋กœ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  4. Schedulers
    • ์Šค๋ ˆ๋”ฉ ๋ฌธ์ œ๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•  ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ ๋“ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

RxSwift๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์„ ์–ธ์  ์ฝ”๋“œ

RxSwift๋Š” ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ์žฅ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋ฉฐ, ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋„คํŠธ์›Œํฌ ์š”์ฒญ, ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋“ฑ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด RxSwift๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค. RxSwift๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ†ต์ผ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์กฐํ•ฉ์„ฑ

RxSwift์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์‰ฝ๊ฒŒ ์กฐํ•ฉํ•˜๊ณ  ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ์ž‘์—…์„ ๋” ์ž‘์€, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•