ReactiveX

  • Aโ†’B๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฆฌํ„ด๋ฐ›๋Š” ํƒ€์ž…์ด Tํƒ€์ž…์ด๋ผ๊ณ  ํ•  ๋•Œ, getData() โ†’ T๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Œ
    • ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ sync๋ฐฉ์‹์œผ๋กœ ๋ฆฌํ„ด ํƒ€์ž…์ด ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ ํ‘œ์‹œ ๊ฐ€๋Šฅ
  • ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ Aโ†’B๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”๋ฐ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด, ์ด๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์ด๋ผ๋ฉด getDate() โ†’ Iterable[T] ์ฒ˜๋Ÿผ ๋ฆฌํ„ด๋ฐ›๋Š” ํƒ€์ž…์„ ์„ ์–ธํ•ด์ค„ ์ˆ˜ ์žˆ์Œ
  • ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด, Aโ†’ B๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”๋ฐ, ๋น„๋™๊ธฐ์ ์œผ๋กœ ์–ธ์  ๊ฐ€ ๋‚˜์ค‘์— T๋ผ๋Š” ํƒ€์ž…์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด, getData() โ†’ Future[T] ์ฒ˜๋Ÿผ ์–ธ์  ๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ์„ Future, Promise ๋“ฑ์œผ๋กœ ์„ ์–ธํ•ด๋†“์„ ์ˆ˜ ์žˆ์Œ
  • ReactiveX๋Š” ๋น„๋™๊ธฐ๋กœ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๋ฒˆ ๋น„๋™๊ธฐ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๊ตฌ์กฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ปจ์…‰์œผ๋กœ, ๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ๋“ค์— ๋Œ€ํ•ด ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ํ™•์žฅํ•œ ๊ฐœ๋…
    • ์ด๋ฅผ getData() โ†’ Obeserable[T] ์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•จ

๋น„๋™๊ธฐ๋กœ ํ•œ๋ฒˆ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-31 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 1.13.48.png

ํ•œ๋ฒˆ๋งŒ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— Push single๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ

๋น„๋™๊ธฐ๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-31 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 1.14.20.png

  • context1์ด context2์— ๋น„๋™๊ธฐํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ”๋กœ ๋ฆฌํ„ด๋จ
  • ์ด ๊ณผ์ •์—์„œ ๋ฐ”์ธ๋”ฉ(binding) ์„ ํ•ด๋†“์œผ๋ฉด, ํ•ด๋‹น ๋น„๋™๊ธฐ ํ˜ธ์ถœ์— ๋Œ€ํ•ด n๋ฒˆ, ์ฆ‰ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•จ
  • ๋„คํŠธ์›Œํฌ๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜, ์ด๋ฒคํŠธ๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ๋‹ค์šด๋กœ๋“œ ๋“ฑ์˜ ํ–‰์œ„
  • ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์•ž์œผ๋กœ๋Š” ์ด๋Ÿฌํ•œ API๋“ค์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ์ •ํ•˜๋Š” ๊ฒƒ์ด ReactiveX์˜ ์‚ฌ์ƒ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-31 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 1.16.44.png

  • Observable[T]๋Š”T๋ผ๋Š” ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค Observableํ•˜๋Š” ์• ๋“ค์ด subscribeํ•ด์„œ ํ˜ธ์ถœํ•˜๋„๋ก ๋งŒ๋“ฆ
  • RX๋Š” ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด์„œ ๊ณ„์†ํ•ด์„œ ๋‹ค์Œ ์ด๋ฒคํŠธ๊ฐ€ ์˜ฌ ๋•Œ๋งˆ๋‹ค subscribe๋ฅผ ํ†ตํ•ด์„œ ํด๋กœ์ €๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ํ˜•ํƒœ
  • ์ฆ‰ ํด๋กœ์ €๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ํ˜•ํƒœ