์ค์ํํธ20 [RxSwift] Observable Observable ์ด๋?Observable์ RxSwift์์ ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ ๋ํ๋ ๋๋ค. ๋จ์ํ ๋งํ์๋ฉด, Observable์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ฐฉ์ถํ ์ ์๋ ๊ฐ์ฒด์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ค์ ์ฌ์ฉ์ ์ ๋ ฅ, ๋คํธ์ํฌ ์์ฒญ ์๋ต, ํ์ผ ์ ์ถ๋ ฅ ๋ฑ ๋ค์ํ ์์ค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. Observable์ ์ธ ๊ฐ์ง ์ ํ์ ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ถํ ์ ์๋๋ฐ, ์ด๋ next, error, completed์ ๋๋ค.nextObservable์ด ์๋ก์ด ๋ฐ์ดํฐ ์์๋ฅผ ๋ฐฉ์ถํ ๋ ๋ฐ์ํฉ๋๋ค.Observable์ ์ฌ๋ฌ ๊ฐ์ next ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค.error์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ ๋ฐฉ์ถ๋๋ฉฐ, ์ดํ์๋ ๋ ์ด์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.completedObservable์ด ๋ชจ๋ ๋ฐ์ดํฐ ์์์ ๋ฐฉ์ถ์ ์๋ฃ.. 2024. 6. 7. [RxSwift] RxSwift๋? iOS ๊ฐ๋ฐ์๋ผ๋ฉด RxSwift์ ๋ํด ๋ค์ด๋ณธ ์ ์ด ์์ ๊ฒ์ ๋๋ค. RxSwift๋ Swift ์ธ์ด์ ๋ฐ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋์ ํ๋ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ์ ๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ RxSwift์ ํต์ฌ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ , iOS ๊ฐ๋ฐ์์ RxSwift๊ฐ ์ด๋ป๊ฒ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.RxSwift๋?RxSwift๋ ๋น๋๊ธฐ์ ์ด๊ณ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ์ฝ๋๋ฅผ ๊ด์ฐฐ ๊ฐ๋ฅํ ์ํ์ค์ ํจ์ํ ์คํ์ผ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. RxSwift๋ ReactiveX (Reactive Extensions) ํจ๋ฐ๋ฆฌ์ ์ผ๋ถ๋ก, ๋น๋๊ธฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ๊ธฐ ์๋ ํจ๋ฌ๋ค์์ ๋๋ค. ์ฃผ์ ๊ฐ๋ ObservableRxSwift์ ํต์ฌ ๋จ์์ ๋๋ค.Observable์ ์๊ฐ์ ๋ฐ๋ผ ์ด.. 2024. 6. 3. [Swift] ์๋ ์ฐธ์กฐ ์นด์ดํธ ์๋ ์ฐธ์กฐ ์นด์ดํธ(ARC, Automatic Reference Counting)์ฑ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ์๋์ผ๋ก ์ฐธ์กฐ ํ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ ๊ฒฝ์ธ ํ์๊ฐ ์๊ณ ARC๊ฐ ์๋์ผ๋ก ์ฌ์ฉํ์ง ์๋ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์งํน์ ๊ฒฝ์ฐ์ ARC์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฝ๋์ ํน์ ๊ด๊ณ์ ๋ํ ์ ๋ณด๋ฅผ ํ์๋ก ํจ์ฐธ์กฐ ํ์๋ ํด๋์ค ํ์ ์ ์ธ์คํด์ค์๋ง ์ ์ฉ๋๊ณ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ ๊ฐ ํ์ ์๋ ์ ์ฉ๋์ง ์์ ARC ๋์์๋ก์ด ํด๋์ค ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ๋ง๋ค ARC๋ ์ธ์คํด์ค ์ ๋ณด๋ฅผ ๋ด๋๋ฐ ํ์ํ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฉ๋ชจ๋ฆฌ๋ ์ธ์คํด์ค์ ๋ํ ์ ๋ณด์ ๊ด๋ จ๋ ์ ์ฅ ํ๋กํผํฐ ๊ฐ์ ๊ฐ๊ณ ์์์ธ์คํด์ค๊ฐ ๋์ด์ ์ฌ์ฉ๋์ง ์์ ๋ ARC๋ ๊ทธ ์ธ์คํด์ค๊ฐ ์ฐจ์งํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์งํด ๊ณต๊ฐ์ ํ๋ณดAR.. 2024. 4. 2. [Swift] ์ ๋ค๋ฆญ ์ ๋ค๋ฆญ(Generics)์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์์ ํ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํจ์ธ์๊ฐ์ ํ์ ๋ง ๋ค๋ฅด๊ณ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ ํจ์๋ฅผ ํ๋๋ก ๋ง๋ค ์ ์์ ์ ๋ค๋ฆญ ํจ์(Generic Functions)ํจ์๋ช ๋ค์ ํ์ ์ด๋ฆ placeholder์ธ T๋ฅผ ์ ์ธํ๊ณ a,b ํ๋ผ๋ฏธํฐ๋ฅผ T๋ก ์ ์ธfunc swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, &anotherInt)// someInt is now 107, and anotherInt is now 3var someString .. 2024. 4. 2. [Swift] ํ๋กํ ์ฝ ํ๋กํ ์ฝ(Protocols)์ด๋ค ๊ธฐ๋ฅ์ ํ์ํ ์๊ตฌ์ฌํญ์ ์ ์ธํด๋๋ ๊ฒํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ์ ์ํด ์ฑํํ๋กํ ์ฝ ๋ฌธ๋ฒprotocol SomeProtocol {// protocol definition}ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ํ์ ์ ์ ์ํ๊ธฐ ์ํด์๋ ํ์ ์ด๋ฆ ๋ค์ ์ฝ๋ก (:)์ ๋ถ์ด๊ณ ํ๋กํ ์ฝ ์ด๋ฆ์ ์ ์ํ๋กํ ์ฝ์ ์ฑํํ ๋๋ ํ๋กํ ์ฝ์ ์ ์๋ ์๊ตฌ์ฌํญ์ ๋ฐ๋์ ๊ตฌํ ํด์ผ๋ง ํจ struct SomeStructure: FirstProtocol, AnotherProtocol { // structure definition goes here}class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definition goes her.. 2024. 3. 29. [Swift] ์๋ฌ ์ฒ๋ฆฌ ์๋ฌ์ ํ์์ ๋ฐ์enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock}throw VendingMachineError.insufficientFunds(coinsNeeded: 5) ์๋ฌ ์ฒ๋ฆฌ์๋ฌ๊ฐ ๋ฐ์ํ ํจ์์์ ๋ฆฌํด๊ฐ์ผ๋ก ์๋ฌ๋ฅผ ๋ฐํํด ํด๋น ํจ์๋ฅผ ํธ์ถํ ์ฝ๋์์ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๋ฐฉ๋ฒdo-catch ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ต์ ๋ ๊ฐ์ ๋ฐํํ๋ ๋ฐฉ๋ฒassert๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๋ก ํฌ๋์ฌ๋ฅผ ๋ฐ์์ํค๋ ๋ฐฉ๋ฒ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ํจ์ ์ฌ์ฉํ๊ธฐ์ด๋ค ํจ์, ๋ฉ์๋ ํน์ ์์ฑ์๊ฐ ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค๋ ๊ฒ์ ์๋ฆฌ๊ธฐ ์ํด throw ํค์๋๋ฅผ ํจ์ ์ ์ธ.. 2024. 3. 28. ์ด์ 1 2 3 4 ๋ค์ ๋ฐ์ํ