SWIFT
-
Swift 5.5 - async & awaitConcurrency 2021. 9. 25. 11:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift 5.5์์ ์๋กญ๊ฒ ๋์จ async & await์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฌ์ค ๋์จ์ง๋ Swift 5.5๊ฐ ๋์จ 3์? ์ ๋์ง๋ง ์ด๋ฒ์ Xcode13์ผ๋ก ์ ๋ฐ์ดํธํ๋ฉด์ ๊ฐ์ด ํ์ตํด๋ณด๊ฒ ๋์์ต๋๋ค๐ async์ await๊ฐ ์ด๋ฒ Swift 5.5์์ ์ธ๊ธฐ๋ผ๊ณ ํ๋๋ฐ ์ ๊ทธ๋ฐ์ง ์์๋ณด๊ฒ ์ต๋๋ค! async & await๊ฐ ๊ฐ๋ตํ ๋ญํด์ฃผ๋์? ๋ค๋ฅธ ์ ํ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์์ ์ ํด์ฃผ๋ ์ฝ๋๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ๋๊ธฐ ์ฒ๋ฆฌ์ฒ๋ผ ๋ณด์ผ ์ ์๋๋ก ์ง์ ์ด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋ฌธ์ 1. ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ ํด๋ก์ ๋ฐ ์ฝ๋ฐฑ์ ํตํด ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ ๋ณต์ก๋ ์ฆ๊ฐ 2. ํ๋์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ผ๋๋ ํฌ๊ฒ ๋ฌธ์ ์์ง๋ง ์ฌ๋ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ์์ด๋ฉด์ ๋ง์ ์ค์ฒฉ..
-
Codility - CountDivAlgorithm 2021. 9. 12. 14:30
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ CountDiv์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ Write a function: public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by ..
-
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..