Notice
Recent Posts
Recent Comments
Link
ยซ   2024/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
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

lgvv98

iOSInterviewquestions - Rx ๋ณธ๋ฌธ

โš ๏ธ deprecated โš ๏ธ/๐Ÿง‘๐Ÿป‍๐Ÿ’ป iOSInterviewquestions

iOSInterviewquestions - Rx

๐Ÿฅ• ์บ๋Ÿฟ๋งจ 2022. 4. 2. 03:02

iOSInterviewquestions - Rx

 

๋ชฉ์  : ๋ฐฐ์šธ๋•Œ๋Š” ์ž˜ํ–ˆ๋Š”๋ฐ, ๋‚˜์ด๊ฐ€ ๋จน์œผ๋‹ˆ๊นŒ ์ž๊พธ ๊นŒ๋จน์–ด์„œ ์•„๋ž˜ ๊นƒํ—ˆ๋ธŒ ๊ธ€์„ ๋ฐ”ํƒ•์œผ๋กœ ๊พธ์ค€ํžˆ ์ด๋ก  ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ ์ž ํ•จ. ๋ฌผ๋ก  ์„ค๋ช…์€ ๋‚ด๊ฐ€ ์ž˜ ์•„๋Š”๊ฒŒ ๋ชฉ์ ์ด๋ผ ์ฒ ์ €ํžˆ ๋‚˜๋ฅผ ์ดํ•ด์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋‚˜์˜ ์–ธ์–ด๋กœ ์ž‘์„ฑ.

 

์ž‘์„ฑ์ผ : 2022๋…„ 4์›” 2์ผ 

 - README: ์ถ”ํ›„์— ์ˆ˜์ •์ด ์žˆ์„ ๊ฒฝ์šฐ ์•„๋ž˜์— ๋‚ ์งœ์™€ ์‹œ๊ฐ์„ ์ž‘์„ฑํ•˜๊ณ , ์ˆ˜์ • ๋‚ด์šฉ์„ ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด์ฃผ์„ธ์š”.

 

์˜ˆ์‹œ)

(์ˆ˜์ •) oooo๋…„ oo์›” oo์ผ oo์‹œ oo๋ถ„ 

 - ๋ณ€๊ฒฝ๋‚ด์šฉ : xxx์— ๋Œ€ํ•œ ์ž๋ฃŒ๋ฅผ ๋ณด๊ฐ•

 

โœ… ๊ณต๋ถ€์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ๊นƒํ—ˆ๋ธŒ ๊ธ€

https://github.com/JeaSungLEE/iOSInterviewquestions

 

GitHub - JeaSungLEE/iOSInterviewquestions: ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปiOS ๋ฉด์ ‘์— ๋‚˜์˜ฌ ์งˆ๋ฌธ๋“ค ์ด ์ •๋ฆฌ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปiOS ๋ฉด์ ‘์— ๋‚˜์˜ฌ ์งˆ๋ฌธ๋“ค ์ด ์ •๋ฆฌ . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.

github.com

 

 

โœ… Rx

  • Reactive Programming์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค.
    • ๋น„๋™๊ธฐ์ ์ธ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€์ฐฐ(observe)ํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ๋ฌด์–ธ๊ฐ€ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ทธ์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ํ˜น์€ UI๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž์˜ ์ธํ’‹ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์„๋•Œ, ๊ทธ์— ๋”ฐ๋ฅธ ์•ก์…˜ 
  • RxSwift๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค.
    •  ์™œ Rx๋ฅผ ์‚ฌ์šฉํ•˜๋ƒ๋ฉด iOS SDK์—์„œ ํด๋กœ์ €, ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜, ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ ๋“ฑ์„ ์ด์šฉํ•ด์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ UI ์—…๋ฐ์ดํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์ฝœ๋ฐฑ ์ง€์˜ฅ์ด ์ƒ๊ธฐ๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด๋‚˜ ํŽธ๋ฆฌ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ์ด๋ ‡๊ฒŒ rx๋ฅผ ์ด์šฉํ•ด์„œ ์ผ๊ด€๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ํ™•์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์•„์ผ€ํ…์ณ ํŒจํ„ด์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • RxSwift์˜ ๋‹จ์ ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค.
    • ์šฐ์„  ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ๋งค์šฐ ๋†’๋‹ค. ๋‚˜๋„ ๋ฐฐ์šฐ๊ณ  ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ •๋ง ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋„ ์ข…์ข… ์ƒ๊ธฐ๋Š”๋ฐ, ์ฆ‰ ์ˆœํ™˜ ์ฐธ์กฐ ์‚ฌ์ดํด์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์ž‘์„ฑํ•˜์—ฌ ํ”ผํ•ด์•ผํ•œ๋‹ค. ๊ทธ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋Ÿฌ๋‹์ปค๋ธŒ๋กœ ์ธํ•˜์—ฌ ํ˜‘์—…์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ์ถฉ๋ถ„ํžˆ ์ด ์ˆ˜์ค€์— ์˜ฌ๋ผ์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. 
  • RxSwift์—์„œ Hot Observable๊ณผ Cold Observable์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•˜์‹œ์˜ค.
    • Hot์€ ๊ตฌ๋…ํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์‹œํ€€์Šค์˜ ์ค‘๊ฐ„์— ์•„์ดํ…œ์„ ๋ฐฉ์ถœํ•ด๋„ ๊ทธ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌ - UI์ด๋ฒคํŠธ
    • Cold๋Š” ๊ตฌ๋…ํ•˜๋Š” ์ˆœ๊ฐ„์— ์‹œํ€€์Šค์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ „๋ถ€ ์ „๋‹ฌ - HTTP
  • Subject์˜ ์ข…๋ฅ˜์™€ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค.
    • Publish : ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ–์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋ฐฉ์ถœ. ๊ตฌ๋… ํ›„์— ๋ฐฉ์ถœ๋œ ๊ฐ’๋งŒ ์ˆ˜์‹  ๊ฐ€๋Šฅ
    • Behavior : ํ•˜๋‚˜์˜ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ€์ง„ ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ดˆ๊ธฐ๊ฐ’ ํ˜น์€ ์ตœ์‹ ๊ฐ’์„ ๋ฐฉ์ถœ
    • Replay : ๋ฒ„ํผ๋ฅผ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ, ์ •ํ•ด์ง„ ๋ฒ„ํผ๋งŒํผ ์ด์ „ ๊ฐ’๋„ ๋ฐฉ์ถœํ•จ
  • Subject์™€ drive์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•˜์‹œ์˜ค.
    • Observable์ด์ž Observer๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ตฌ๋…๋„ ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉ์ถœํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    • Relay๋Š” Suject๋ฅผ ๋ž˜ํ•‘ํ•ด์„œ error๋‚˜ complete๊ฐ€ ์—†์–ด์„œ ๋Š๊ธฐ์ง€ ์•Š๋Š”๋‹ค.
    • Driver๋Š” UI์— ํŠนํ™”๋œ Observable์ด๋‹ค ์ด๋Ÿฌํ•œ ๊ฒƒ์„ Traits์ด๋ผ๊ณ  ํ•œ๋‹ค. ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ถœํ•  ์ˆ˜ ์—†๊ณ  ๋ฉ”์ธ ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ๊ด€์ฐฐ ๋ฐ ๊ตฌ๋…ํ•œ๋‹ค.
  • Single, Completable, Maybe์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ , ์–ธ์ œ ์ ์šฉํ•˜๋ฉด ์ข‹์„์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค
    • Single์€ ํŠน์ˆ˜ํ•œ Observable๋กœ .success, .error ์ค‘ ํ•œ๋ฒˆ๋งŒ ๋‚ด๋ณด๋‚ผ ์ˆ˜์ž‡๋Š” ์‹œํ€€์Šค ๋‚ด๋ถ€์ ์œผ๋กœ succes๋Š” next + completed๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํŒŒ์ผ ์ €์žฅ, ๋‹ค์šด๋กœ๋“œ, ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋“ฑ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋“  ๋น„๋™๊ธฐ ์ž‘์—…์—์„œ ์œ ์šฉํ•˜๋‹ค. ์„ฑ๊ณต ์‹œ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์š”์†Œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๋ž˜ํ•‘ ์ž‘์—…์— ์‚ฌ์šฉ๋œ๋‹ค. ์‹œํ€€์Šค์—์„œ ๋‹จ์ผ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์˜๋„๋ฅผ ๋” ์ž˜ ํ‘œํ˜„ํ•˜๊ณ  ์‹œํ€€์Šค๊ฐ€ ๋‘˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ๋ฐฉ์ถœํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ๋… ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค.
    • Maybe๋Š” Observable์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ๊ฐ’์„ ๋ฐฉ์ถœํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” Single๊ณผ ์œ ์‚ฌ
    • Completable์€ ๊ตฌ๋…์ด ์‚ญ์ œ๋˜๊ธฐ ์ „์— ๋‹จ์ผ completed ๋˜๋Š” error ์ด๋ฒคํŠธ๋งŒ ์ƒ์„ฑ๋˜๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ž‘์—…์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋งŒ ์•Œ๋ฉด ๋˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์•„์„œ ์ƒ๊ฒจ๋‚ฌ๋‹ค.
    • (์ฐธ๊ณ ) https://jwonylee.tistory.com/152

'โš ๏ธ deprecated โš ๏ธ > ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป iOSInterviewquestions' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

iOSInterviewquestions - iOS  (0) 2022.04.06
iOSInterviewquestions - ARC  (0) 2022.04.02
iOSInterviewquestions - Swift  (0) 2022.04.02
iOSInterviewquestions - Autolayout  (0) 2022.04.02
Comments