SWIFT
-
KeyPathSwift 2021. 9. 4. 10:34
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ KeyPath์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป KeyPath? ์.. ๊ณ์ ์์ด๋ก ์น๊ธฐ ๊ท์ฐฎ์ ํ๊ตญ์ธ์ด๋ผ ์๊ธฐ์๋ถํฐ ๋ณธ๋ฌธ์ ํคํจ์ค๋ผ๊ณ ํ์ดํํ๊ฒ ์ต๋๋ค! ํคํจ์ค๋ฅผ ์ ํ์ตํ๊ฒ ๋์๋ํ๋ฉด Composable Architecture๋ฅผ ์ค๋ฌด์์ ์ฌ์ฉํ๋ฉด์ ํ์ ๋ฆฌ๋์๋ฅผ ์์ ๋ฆฌ๋์์์ ๊ฐ์ ธ์ ์ก์ ์ ๊ตฌํํ ๋๊ฐ ์์ต๋๋ค. ์.. ์๋ฅผ๋ค์ด ๋ชจ๋ ํ ๋ชจ๋์ ์ง๋๋ทฐ ๋ชจ๋๋ ์๊ณ ๋ฆฌ์คํธ ๋ชจ๋๋ ์๋ค๊ณ ์ณค์๋ ์ง๋๋ทฐ ๋ชจ๋์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ ๋ชจ๋์์ ์ผ๋ฟ์ ๋์์ค์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋๊น ๋ชจ๋๊ฐ ์ข ์์ ๋ณด๋ฉด ์ด๋ ๊ฒ ๋๊ฒ ๋ค์! ์ผ.. ๋ง๋ค๊ณ ๋ณด๋ ์ง๊ทธ๋ฝ์ง๋ง ๋ฌดํผ ์ด๋ ์ต๋๋ค. ๋ค์ํ ํ์ ๋ชจ๋์ด Home ๋ชจ๋์ ์ํด์์ฃ ? ์ด๋ด๋ ํ ๋ชจ๋์์ ํ์ ๋ชจ๋์ ์..
-
Dictionary.init(uniqueKeysWithValues:)Swift 2021. 8. 31. 19:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Dictionary.init(uniqueKeysWithValues:)์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋์ ๋๋ฆฌ๊ฐ ๋ญ์์?? ์ฐ์ ๋์ ๋๋ฆฌ๋ key์ value๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์ปจํ ์ด๋์ ๋๋ค. ํน์ง์ด๋ผํ๋ฉด ๊ฐ value๋ ๊ณ ์ ์ ์ ์ผํ key์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋์ ๋๋ฆฌ๋ array์ฒ๋ผ ์์๊ฐ ์์ง ์๊ธฐ์ ๊ฐ ๋ฌผ๋ ค์๋ key๊ฐ์ผ๋ก value๊ฐ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ฆ ๋์ ๋๋ฆฌ๋ฅผ ํํํ๋ค๋ฉด Dictionary๋ก ํํํ ์ ์์ต๋๋ค๐ ๊ทธ๋ ๋ค๋ฉด ๋์ ๋๋ฆฌ์ ํค๊ฐ์ ๊ณ ์ ์ ๊ฐ์ด๋ Hashable ํด์ผ๊ฒ ์ฌฌ!? ๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ๋์ ๋๋ฆฌ์ ํค๊ฐ์ ๋๋ถ๋ถ swift์์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ Int, String, enum ๋ฑ๋ฑ์ผ๊ฒ๋๋ค! ํด๋น ๊ธฐ๋ณธ์ ๊ณต๋๋ ์๋ฃํ ํ์ ๋ค์ ์ด๋ฏธ H..
-
ํฉ์ ์ด์ฉํ ์๊ณ ๋ฆฌ์ฆAlgorithm 2021. 8. 29. 11:55
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ Passing Cars์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ A non-empty array A consisting of N integers is given. The consecutive elements of array A represent consecutive cars on a road. Array A contains only 0s and/or 1s: - 0 represents a car traveling east - 1 represents a car traveling west. The goal is to count passing cars. We say that a pair of cars (P, Q), where 0 ≤ P < Q < N, is passing when P is..
-
ํ๋ฉด ์บก์ณ ๋ฐ ๋ นํ ๋ฐฉ์งiOS 2021. 8. 28. 09:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ํ๋ฉด ์บก์ณ ๋ฐ ๋ นํ ๋ฐฉ์ง์ ๋ํด ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ๊ณตํ๋ ์ฑ์์ ํ๋ฉด ์บก์ณ์ ๋ นํ๋ฅผ ์์ฒ์ ์ผ๋ก ์ฐจ๋จํ ์ ์์๊น์? ์ฐ์ , ๊ฐ๋ฅ์ ํฉ๋๋ค. ๋จ ์ฐ๋ฆฌ์ ์ฝ๋๋ง์ผ๋ก ํ ์ ์์ต๋๋ค. ๋ฌด์จ ์๋ฆฌ์ธ์ง ๊ฐ์ด ์์ค์์ฃ ? ๊ฐ๋ตํ ๋งํด๋ณด์๋ฉด, iOS์์ ํ๋ฉด ์บก์ณ๋ฅผ ํ๋๊ฒ์ OS์ ์์ญ์ ๋๋ค. ์ด์, ๋ฐฉ์ง ๊ธฐ๋ฅ์ด ๊ตฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ ํ ์๋ฃจ์ ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ฝ๋๋ง์ผ๋ก ๋ฐฉ์ง๋ฅผ ํ ์ ์์ต๋๋ค. ๊ทธ๋ผ ์ด๋ค์์ผ๋ก ์บก์ณ์ ๋ นํ๋ฅผ ๋ฐฉ์งํ ์ ์์๊น์? ์์ฒ์ ์ผ๋ก ๊ธฐ๋ฅ์ด ๋์ง ์๊ฒ๋ ํ ์ ์์ผ๋ ์ฌ์ฉ์์๊ฒ ์บก์ณ์ ๋ นํ๊ฐ ์์ ๋ ๋ ์ผ๋ฟ์ ๋ ธ์ถ์์ผ์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ์ฉ์๋ ์๋๋ฅผ ์ธ์งํ ๊ฒ์ ๋๋ค. ๋ง์ฝ ๋ ๋์๊ฐ ์ผ๋ฟ๋ง์ผ๋ก๋ ์๋๊ณ ์บก์ณ๋ ๋ นํ๋ฅผ ์ดํ์ ๋ฌด์จ ์ผ์ด ์..
-
์์ํจ์์ ์ฌ์ด๋์ดํํธSwift 2021. 8. 22. 13:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ง ์ ๋ง ๊ฐ๋ตํ๊ฒ ์์ํจ์์ ์ฌ์ด๋์ดํํธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง ๋ค๋ค ์์ํจ์์ ์ฌ์ด๋์ดํํธ๋ ๋ค์ด๋ณด์ จ์๊ฑฐ๋ผ ์๊ฐํด์! ์ ๋ ๋ง์ฐํ๊ฒ ์ด๋ค๊ฑฐ๋ค~~ ํ๋๊ฒ๋ง ์๊ณ ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ๋๊ฒ ๊ฐ์์. ์.. ์ฑ์ ๊ฐ๋ฐํ๋ฉด์ ๊ฐ์ฒด์งํฅ ์ค์ฌ์ ์ผ๋ก ์ฌ๊ณ ๊ฐ ๋ฐํ์์ด์์ธ์ง ์์ํจ์๋ฅผ ์ฐ๋ ค๋ ๋ถ๋ถ์ ๊ณ ์ํด์ผ ํด๋ก์ ๋ก ์ฒ๋ฆฌํ๊ฑฐ๋ ํต์ ํ ๋ ๋ฑ ํ์ ๋ฐํ์๊ฒ ์๊ฐํ์ด์. ๊ทธ๋ฌ๋์ค ReactiveX๋ฅผ ๊ณต๋ถํ๊ณ Composable Architecutre๋ก ๊ตฌ์กฐ๋ฅผ ์ก์๊ฐ๋ฉด์ ์์ํจ์์ ์ฌ์ด๋์ดํํธ์ ๋ํด ๋ง์ด ์ ํ๋ค์๐ฑ ์ฐ์ ๊ฐ๋ตํ๊ฒ ์์ํจ์์ ์ฌ์ด๋์ดํํธ์ ๋ํด ๋งํด๋ณด๊ฒ ์ต๋๋ค. ์์ํจ์ ์์ํจ์๋ ๋ง๊ทธ๋๋ก ์์ํ ํจ์์ ๋๋ค! ์ฆ, ์์ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ ํญ์ ๋์ผํด์ผํฉ๋๋ค. ์ธ๋ถ ์์ธ(์ฌ..
-
Multiple Firebase EnvironmentsiOS 2021. 8. 21. 00:06
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋ค์ค ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํฌ์คํ ํ๊ฒ ์ต๋๋ค. ๋ค์ค ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ ๊ตฌ์ถ์ด ์ ํ์ํ ๊น์? ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด Prod ํ๊ฒฝ๊ณผ Dev ํ๊ฒฝ์์ ๋ค๋ฅธ DB๋ฅผ ๋ฐ๋ผ๋ณผ๋๊ฐ ์์ต๋๋ค. ๋ง์ฝ ์ค์ ํ๋ก๋์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ํ ์คํธ๋ฅผ ์งํํ๋ฉด DB ๊ฐ์ด ๋ฐ๋๊ฒ ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๊น Dev ํ์ด์ด๋ฒ ์ด์ค DB ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋๊น ๊ทธ๋ฐ Dev ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ์ Xcode์์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ค ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ ๊ตฌ์ถ์ด ํ์ํฉ๋๋ค! ์ ๊ทธ๋ผ ์ ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ ๊ตฌ์ถ์ด ํ์ํ์ง ์์๋ณด์๋๋ฐ์! ๊ทธ๋ผ ์ด๋ป๊ฒํ๋ฉด ๊ตฌ์ถํ ์ ์์๊น ์์๋ด ์๋ค. ๋ค์ค ํ์ด์ด๋ฒ ์ด์ค ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ ์๊ฐ๋ณด๋ค ๋๊ฒ๋๊ฒ ๊ฐ๋จํฉ๋๋ค! 1. Firebase์์ ๊ฐ๊ฐ์ SD..
-
concat & mergeRxSwift 2021. 8. 16. 14:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ concat๊ณผ merge์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ผ๋จ ๋ ๋จ์ด์ ์ฌ์ ์ ์ธ ์๋ฏธ๋ถํฐ ์ดํด๋ณด๋ฉด, concat์ concatenate์ ์ฝ์๋ก ์ฐ์ค์, ์ฌ์ฌ์ ์๋ค ๋ผ๋ ๊ทธ๋ฐ ๋์์ค์ ๋ป์ ๊ฐ์ง๊ณ ์์ต๋๋ค. merge๋ ํฉ๋ณ, ํฉ์น๋ค, ์ตํฉํ๋ค, ์ด์ฐ์ด๋ฆฌ์ง๋ค ๋ฑ๋ฑ์ ๋์์ค์ ๋ป์ด ์๋ค์! ๋ค๋ค merge๋ ๊น์ ์ฌ์ฉํ๋ ๋ญํ๋ ๋ค์ํ๊ฒ ๋ค์ด๋ณด์ จ์ํ ๋ฐ concat๋ ์ฌ์ ์ ์๋ฏธ๋ฅผ ๋ณด๋ฉด ๋์ผํ ๊ธฐ๋ฅ์ ํด์ค๊ฑฐ๋ผ๋ ๋๋์ด ์ต๋๋ค. ์ concat๊ณผ merge์ ๋ํด ์์๋ณด๊ธฐ ์์ํ๋์ง ํ์ด๋ณด์๋ฉด, ํ์ฌ RxSwift๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ฌ๋ฌ ํผ๋ธ๋ฆฌ์ ๋ค์ ํ ๋์ ์ฆ, ํ ์คํธ๋ฆผ์์ ๋์ํ๊ฒ ํ๊ณ ์ถ์๋ concat๊ณผ merge๋ผ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉํ๊ณค ํฉ๋๋ค. ๋ ๊ธฐ๋ฅ..
-
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 ๋ผ๋ ํด๋์ค๋ฅผ ์ง์ ํ์ฌ ์์ฑ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ฐธ๊ณ ๋ก ๋ณธ ํฌ์คํ ์์๋ ๊ฒฝ๋ก์ ๊ณผ ํ์ดํ์ ๋ํด ๊ธฐ์ฌํ์๊ธฐ์ ์ง๋ ๋ฐ ์ขํ ๊ฐ์ฒด์ ์ต์ , ์นด๋ฉ๋ผ, ๋ง์ปค ๊ธฐํ ์ธํฐํ์ด์ค์ ๋ํ๊ฒ์ ํด๋น ํฌ์ค..