profile
๐Ÿง‘๐Ÿปโ€๐Ÿ’ป iOS Developer @TOSS

[RxSwift] 8.`MainScheduler.instance` vs `MainScheduler.asyncInstance`

DispatchQueue.main ์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์˜ ์ถ”์ƒํ™”์ด๋‹ค.schedule methods๋Š” DispatchQueue.main ์—์„œ ํ˜ธ์ถœ๋˜์–ด์ง€๋ฉฐ, ์Šค์ผ€์ฅด๋ง ์—†์ด ์ฆ‰๊ฐ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.Main Sehcudler๋Š” SerialDispatchQueueSchedul

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] (7) `subscribeOn` vs `observeOn`

Subscription Code ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” scheduler๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. (subscribeOn())Subscription Code๋Š” subscribe() ๊ฐ€ ์‹คํ–‰๋˜๋Š” thread์™€ ๋™์ผํ•œ thread์—์„œ ์ˆ˜ํ–‰๋œ๋‹ค.Opservation code๊ฐ€ ์ˆ˜ํ–‰๋˜

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 6.Operator-Combining

์ดˆ๊ธฐ ๊ฐ’์„ sequence์˜ ์•ž์— ๋ถ™์ธ๋‹ค.๋‘ ๊ฐœ ์ด์ƒ์˜ sequence๋ฅผ ์ง๋ ฌํ™” ํ•œ๋‹ค.ํ•˜๋‚˜์˜ Observable์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ event๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์™„๋ฃŒ ๋˜๋ฉด ๊ทธ ๋‹ค์Œ Observable์˜ ์ด๋ฒคํŠธ๋ฅผ ์—ฐ์ด์–ด ์ „๋‹ฌํ•œ๋‹ค.๋‹ค๋ฅธ Observable์ด ์™„๋ฃŒ๋˜๋ฉด ์ง๋ ฌํ™”๋œ Obse

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 5.Operator-Transforming

Sequence์˜ element๋ฅผ array์˜ element๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.๋ฐฉ์ถœ๋œ element์˜ index์™€ value๋ฅผ ํฌํ•จํ•˜๋Š” tuple์„ ๋ฐฉ์ถœํ•˜๋„๋ก ํ•œ๋‹ค.๐ŸŒŸ Upstream์—์„œ .error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ์ƒ์„ฑ๋œ Observable์€ dispose ๋œ๋‹ค.Observ

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 4.Operator-Filtering

Event ์ค‘, .next(value)์ธ element๋“ค์„ ๋ฌด์‹œํ•˜๊ณ , .error ํ˜น์€ .completed๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.input๋ฒˆ์งธ element๋“ค๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.input์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•œ element๋“ค๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.0..<n ๋ฒ”์œ„์˜ element๋ฅผ

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 3.Traits

Event๋ฅผ ๋ฐฉ์ถœํ•˜๋ฉด sequence๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค.element๊ฐ€ ๋ฐฉ์ถœ๋˜๋ฉด, .completed๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฉ์ถœ๋œ๋‹ค.์ฆ‰, dispose ๋œ๋‹ค..success(value) ํ˜น์€ .error ์ด๋ฒคํŠธ๋งŒ ๋ฐฉ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค..completed ํ˜น์€ .error๋งŒ ๋ฐฉ์ถœํ•˜๋ฉฐ, ๊ฐ’์„ ๋ฐฉ

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 2. Subject

Observable์ด์ž Observer์ด๋‹ค..next(value)๋ฅผ ๋ฐ›๊ณ , ์ˆ˜์‹ ํ•  ๋•Œ๋งˆ๋‹ค Subscriber์—๊ฒŒ ๋ฐฉ์ถœํ•œ๋‹ค.Sequence๊ฐ€ ์ข…๋ฃŒ๋œ Subject๋ฅผ subscriptionํ•  ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰ Event(.error ํ˜น์€ .completed) ๋ฅผ ๋ฐฉ์ถœํ•œ๋‹ค.Se

2022๋…„ 1์›” 9์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€

[RxSwift] 1. Observable

๋ชจ๋“  Observable sequence์€ ๋‹จ์ง€ sequence์ด๋‹คSequence๋Š” 0๊ฐœ ํ˜น์€ ๋” ๋งŽ์€ element๋ฅผ ๊ฐ–์„ ์ˆ˜ ์žˆ๋‹ค.error ํ˜น์€ completed ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ๋•Œ, sequence๋Š” ๋”์ด์ƒ element๋ฅผ ์ƒ์‚ฐํ•ด๋‚ผ ์ˆ˜ ์—†๋‹ค.Observable์€

2022๋…„ 1์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Clean Architecture] 3๋ถ€. ์„ค๊ณ„ ์›์น™

SOLID ์›์น™์ด๋ž€ ํ•จ์ˆ˜์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ž˜์Šค๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๋“ค ํด๋ž˜์Šค๋“ค์„ ์„œ๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

2021๋…„ 9์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Swift 5.4] Result Builder

@resultBuilder Swift 5.1์— ๋“ฑ์žฅํ•˜์˜€๋˜ ๋น„๊ณต์‹์˜ function builder๊ฐ€ Swift 5.4 ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ผ๋ จ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค๋กœ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๊ฐ’์„ ์•”์‹œ์ ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ํ‘œํ˜„์‹๋ฌธ์—์„œ ๋ถ€๋ถ„์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ ๊ฒฐ

2021๋…„ 4์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[WWDC] High Performance Auto Layout

Internals and intuition The Render Loop > TL;DR > - ์ดˆ๋‹น 120๋ฒˆ ์‹คํ–‰๋œ๋‹ค. > - Update Cosntraints, Layout, Display 3๊ฐ€์ง€์˜ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. > - ๋ถˆํ•„์š”ํ•œ ์ž‘์—…์„ ํ”ผํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜

2021๋…„ 3์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[WWDC] Mysteries of AutoLayout, Part 2

Layout Cycle, Legacy Layout ๋“ฑ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์ž.

2021๋…„ 3์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€