SWIFT
-
NaverMap SDK - ๊ฒฝ๋ก์ & ํ์ดํLibrary 2021. 8. 13. 09:24
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ NaverMap SDK๋ฅผ ์ด์ฉํด์ ๊ฒฝ๋ก์ ๊ณผ ํ์ดํ๋ฅผ ์ง๋์ ํ์ํ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฌ์ ์ ํด์ผํ ๊ฒ! https://navermaps.github.io/ios-map-sdk/guide-ko/1.html ์๊ธฐ ์ฌ์ดํธ๋ฅผ ์ ์ํด์ ์์ํ๊ธฐ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ ํ์๋ฉด๋์! ๊ฐ๋จํ ์์ฝํ๋ฉด 1. ํด๋ผ์ด์ธํธ ID ๋ฐ๊ธ 2. ์์กด์ฑ ์ถ๊ฐ (์ฝ์ฝ์ํ๋ง ๋ฉ๋๋ค!) 3. ํด๋ผ์ด์ธํธ ID ์ง์ 4. API ํธ์ถ 5. ์ง๋ ํ์ - ์ด ์ง๋ ํ์๋ ์์ ๊ณผ์ ๋ค์ ๋ง์ณค๋ค๋ฉด NMFMapView ๋ผ๋ ํด๋์ค๋ฅผ ์ง์ ํ์ฌ ์์ฑ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ฐธ๊ณ ๋ก ๋ณธ ํฌ์คํ ์์๋ ๊ฒฝ๋ก์ ๊ณผ ํ์ดํ์ ๋ํด ๊ธฐ์ฌํ์๊ธฐ์ ์ง๋ ๋ฐ ์ขํ ๊ฐ์ฒด์ ์ต์ , ์นด๋ฉ๋ผ, ๋ง์ปค ๊ธฐํ ์ธํฐํ์ด์ค์ ๋ํ๊ฒ์ ํด๋น ํฌ์ค..
-
RxSwift - CombineLatest & withLatestFromRxSwift 2021. 8. 9. 21:25
์๋ ํ์ธ์ ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ CombineLatest์ withLatestFrom์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป CombineLatest - ๋๊ฐ์ Observable์ ํด๋นํ๋ ๊ฐ๊ฐ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์ต์ ์ผ๋ก ์์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฌถ์ด ์ ๋ฌ ์ฝ๊ฒ ์ฝ๋๋ฅผ ํตํด์ ์ดํดํ์๋ฉด ์๋์ ๊ฐ์ด ์ ์ํด๋ณผ ์ ์๋ค. let owner = Observable.from(["์ฒ ์", "์ํฌ", "์ค์", "์ ์ธ"]) let pet = Observable.from(["cat", "dog", "bird", "pig"]) Observable.combineLatest(owner, pet, resultSelector: { (owner: String, pet: String) return (owner, pet) } ) .subsc..
-
DI & SwinjectiOS 2021. 8. 3. 22:07
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swinject์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Swinject? Swinject๋ ์์กด์ฑ ์ฃผ์ ํ๋ ์์ํฌ์ ๋๋ค. ํ๋ง๋๋ก ์ ์ํ๊ธฐ๊ฐ ์ฐธ ์ด๋ ค์ด๋ฐ ๊ทธ๋ผ ๋จผ์ ์์กด์ฑ ์ฃผ์ ์ด ์ด๋ค๊ฒ์ธ์ง ์์๋ด์ผ๊ฒ ์ฃ ? ์์กด์ฑ ์ฃผ์ ? Dependency Injection์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ๊ฐ์ฒด์งํฅ์ ์ค๊ณํ๊ณ ์ฝ๋ฉํ ๋ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ๋ณต์กํ ๊ฐ๋ฐ์ ํ๋ฉด ํ ์๋ก ์ฝ๋๊ฐ ์์กด์ฑ์ด ์๊ธธ์๊ฐ ์์ต๋๋ค. ์๋ฅผ๋ค์ด ๊ฐ๋จํ ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. class Person { var action = Action() func startWalk() { self.action.walk() } } ์ด๋ด๋ startWalk ํจ์ ํธ์ถ์ ํ๊ธฐ ์ํด์๋ Action ํด๋์ค๊ฐ ์ ์๋์ผํฉ๋๋ค. ์ด๋ด๊ฒฝ์ฐ A..
-
์ํ๋ฅผ ์ต์ํํ ์๊ณ ๋ฆฌ์ฆ (2)Algorithm 2021. 8. 1. 10:53
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ MissingInteger์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ This is a demo task. Write a function: public func solution(_ A : inout [Int]) -> Int that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A. For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5. Given A = [1, 2, 3], the function should return 4. Given A = [−1, −3]..
-
์ํ๋ฅผ ์ต์ํํ ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 7. 24. 11:29
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ MaxCounters์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ You are given N counters, initially set to 0, and you have two possible operations on them: increase(X) − counter X is increased by 1, max counter − all counters are set to the maximum value of any counter. A non-empty array A of M integers is given. This array represents consecutive operations: if A[K] = X, such that 1 ≤ X ≤ N, then operation K is..
-
Safe ArraySwift 2021. 7. 24. 09:19
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋ฐฐ์ด์ ๋ํด ์์ ํ๊ฒ ์กฐํํ๊ณ ์ธ๋ฑ์ค๋ฅผ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋ตํ ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋ฐฐ์ด์ ๋ํด ์์ ํ๊ฒ ์ ๊ทผํ์ง ๋ชปํ ๋ ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ฐํ์์์ ๋ง์ด ๊ฒช์ด๋ณด์ จ์๊ฒ๋๋ค. fatal error: Array index out of range ๋ฐ๋ก ์ ๊ทผํ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ๋ฒ์ ๋ฐ, ์ฆ ์๋ค๋ ์๋ฌ ๋ฉ์์ง์ ๋๋ค. if let๋ฑ ์๋์ ๊ฐ์ด ์ต์ ๋๋ฐ์ธ๋ฉ์ ์์ ํ๊ฒ ํด์คฌ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ํ๋๊ฑธ๊น์? struct Person { let name = "bob" let age = 10 ... } let onePerson = Person() let twoPerson = Person() let people: [Person] = [onePerson, twoPe..
-
Test Doubles - fake, stub, mockiOS 2021. 7. 22. 08:19
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Test Double์ 3๊ฐ์ง ์ข ๋ฅ์ ๋ํด ์์๋ณด๊ณ ๊ตฌ๋ถํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ ํ ์คํธ ๋๋ธ?? ํ ์คํธ ๋๋ธ์ ์๋ํ ํ ์คํธ์์ ์ค์ ์ ์ ์ฌํ๊ฒ ๋์ํ๋ฉด์ ๋จ์ํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋์์์ผ๋ณด๊ฑฐ๋ ํ๋ ํ ์คํธ ๊ณผ์ ์์ ๋ณต์ก์ฑ์ ๋ฎ์ถ๊ณ ๋ ๋ฆฝ๋ ์ฝ๋๋ฅผ ํ ์คํธ ๊ฒ์ฆํ ์ ์๋ ํ ์คํธ ํ๊ฒฝ์์ ์ด๋ฌํ ํ ์คํธ ๊ฐ์ฒด๊ฐ ์ฌ์ฉ๋๋๊ฒ ์ ๋๋ค. ํ ์คํธ ๋๋ธ์ ์ข ๋ฅ 1) fake - ์์ฉ๋๋ ์ฑ ๋ก์ง ๊ตฌํ๊ณผ ๋์ผํ๊ฒ ๊ฐ์ง๋ก ์ฑ ๋ก์ง ๊ตฌํ์ ๋ง๋ค๊ณ ์๋ฒ DB๋์ ์ธ๋ฉ๋ชจ๋ฆฌ DB๋ฅผ ์ ์ํ์ฌ ํด๋น ์ ๋ณด๋ก ํ ์คํธ (ํ๋ก๋์ ๊ตฌํ๋ณด๋ค ์ข ๋ ๋จ์ํ๊ฒ ๋ง๋ค ์ ์์) - ์๋ฅผ๋ค์ด ๋คํธ์ํฌ ํต์ ์ ํ์ฌ ์๋ฒ DB๋ฅผ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ฃผ๋ ๋ก์ง์ fake๋ก๋ ๋คํธ์ํฌ ํต์ ์ ํ์ง ์๊ณ ํ ์คํธ ๊ฐ์ฒด๋ฅผ ..
-
๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑCS(ComputerScience) 2021. 7. 21. 19:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ ๊ทธ๋ฅ ์์๋ณด๊ธฐ์ ๋ปํ์ด๋ถํฐ ๋๋ฆ๋๋ก ์ถ์ธกํด๋ณผ๊น์? ๋์ผ์ฑ์ A์ B๊ฐ ์ ๋ถ ๊ฐ์ ์ฆ ๋์ผํ ๋ ์ฐ์ธ๋ค๊ณ ๋ณด์ด๊ณ , ๋๋ฑ์ฑ์ A์ B๊ฐ ์์ ํ ๊ฐ์ง ์์ง๋ง ๊ฐ์ ๋ถ๋ถ๋ค์ด ์์ด ๋๋ฑํ๊ฒ ๋ณผ ์ ์๋ค? ๋ผ๊ณ ๋๊ปด์ง๋๋ค. ๊ทธ๋ผ ์กฐ๊ธ ๋ ์์ธํ ๊ฐ์ฒด์งํฅ์ ์๊ฐํ๋ฉฐ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฒด์งํฅ์์๋ ๋๊ฐ์ A์ B ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ์๋ค! ๊ทธ๋ผ A์ B์ ๊ฐ์ฒด๋ ์๋ก ๋ค๋ฅธ ์ฃผ์๊ฐ์ ๊ฐ์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ A์ B๊ฐ ๊ฐ์ ์ฃผ์๊ฐ์ ๊ฐ๋ฅดํค๊ธฐ ์๊ธฐ์ ์์ ํ ๊ฐ๋ค๊ณ ํ ์ ์์ต๋๋ค. ์ฆ ์์ ๊ฐ๋ ์ผ๋ก ๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ์ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. - ๋์ผ์ฑ: A์ B์ ๊ฐ์ฒด๊ฐ ์์ ํ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธ - ๋๋ฑ์ฑ: A์ B์ ๊ฐ์ฒด๊ฐ ..