SWIFT
-
์จ๋ ํํ๋จ์์ ๋ณํ ๋ฐฉ๋ฒSwift 2021. 1. 19. 19:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์จ๋ ํํ๋จ์์ ํด๋น ๋จ์๋ค๋ผ๋ฆฌ Swift์์ ๋ณํํด๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ 1. ์จ๋์ ํํ๋จ์ : ์ผ๋จ ์จ๋๋ฅผ ๋ํ๋ด๋ ํํ์ผ๋ก๋ ์ญ์จ/ํ์จ/์ผ๋น ์ธ๊ฐ์ง๋ก ๋ค ์ ์๋ค. ์ญ์จ์ ํ์จ์จ๋๋ 1๊ธฐ์์์ ๋ฌผ์ ๋๋/์ด๋ ์จ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ์ฌ ์ฌ์ด๋ฅผ ๋ฑ๋ถํ ์จ๋ ์ฒด๊ณ์ด๋ค. 1) ์ญ์จ: °C๋ก ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ์จ๋ ์ฒด๊ณ๋ก ์ฒ์ ์ ์ํ ์ฒ๋ฌธํ์์ธ ์๋ฐ๋ฅด์ค ์ ์์ฐ์ค์ ์ด๋ฆ์ ์ค๊ตญ์ด ๋ฐ์์ผ๋ก ‘์ญ์ด์ฌ’๋ผ๊ณ ํ๋๋ฐ ์๊ธ์์ธ ‘์ญ’๊ณผ ์กด์นญ์ธ ‘์จ’๋ฅผ ๋ถ์ฌ ‘์ญ์จ์จ๋’๋ผ ๋ถ๋ฆฌ๊ฒ ๋์๋ค. 2) ํ์จ: °F๋ก ๋ฌผ๋ฆฌํ์์ธ ๋ค๋์ ๊ฐ๋ธ๋ฆฌ์ ํ๋ ํ์ดํธ๊ฐ ์ ์์ ํ์ผ๋ฉฐ ์ด๋ ์จ๋๋ฅผ 32°F, ๋๋ ์จ๋๋ฅผ 212°F๋ก ์ ํ์๊ณ ๊ทธ ์ฌ์ด๋ฅผ 180๋ฑ๋ถํ๋ค. ์ญ์จ์ฒ๋ผ ๋ช ์นญ์ ๋์ผ..
-
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ & ARCSwift 2021. 1. 11. 17:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ARC์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค..! 1. ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ [๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ํ๋ฉด] 1) ์ฝ๋ ์์ญ: ์์ค์ฝ๋ ๊ธฐ๊ณ์ด ํํ ์ ์ฅ(0๊ณผ 1), ์ปดํ์ผ ํ์ ๊ฒฐ์ , Read-Only ํํ๋ก ์ ์ฅ 2) ๋ฐ์ดํฐ ์์ญ: ํ๋ก๊ทธ๋จ ์์ ์ ํ ๋น, ์ข ๋ฃ ์ ๋ฉ๋ชจ๋ฆฌ ํด์ , Read-Write๋ก ์ง์ (์คํ ๋์ค ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์) 3) ํ ์์ญ (1) ํ๋ก๊ทธ๋๋จธ๊ฐ ํ ๋น/ํด์ ํด์ฃผ๋ ์์ญ (2) ๋ฉ๋ชจ๋ฆฌ ํด์ ํด์ฃผ์ง ์์ผ๋ฉด memory leak ๋ฐ์ (๋์ผ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก ์ค๋ณต ํ ๋น ๋ฐฉ์ง ํ์) - malloc, calloc ๋ฑ ํด์ ๊ธฐ๋ฅ ํ์ (3) ๋ฐํ์ ์ ๊ฒฐ์ ๋๊ธฐ์ ๋ฐ์ดํฐ ํฌ๊ธฐ ํ์ค์น ์์๋ ์ฌ์ฉ (4) ํด๋์ค ์ธ์คํด์ค, ํด๋ก์ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ ๊ฐ์ ๋ชจ๋ heap ์์ญ์..
-
Concurrent ProgrammingSwift 2021. 1. 7. 19:13
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ Concurrent Programming(๋์์ฑ ํ๋ก๊ทธ๋๋ฐ)์ด ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด ์์๋ณด๋ คํฉ๋๋ค. ์ฐ์ , ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์๊ธฐ์ ์ ๋ฐ์ ์ผ๋ก ์์๋ด์ผ๋ ๊ฐ๋ ์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๊ฒ ์ต๋๋ค. 1. Concurrent VS Parallelism -. Concurrent Programming(๋์์ฑ ํ๋ก๊ทธ๋๋ฐ) : ์ฌ๋ฌ ์์ ์ ๋์์ ์ฑ๊ธ ํน์ ์ฌ๋ฌ ์ฝ์ด(CPU)์์ ๋๋ ์ ์ฒ๋ฆฌํ๋๊ฒ์ด๋ค. ์ฑ๊ธ์ฝ์ด๋ผ๋ฉด ์๊ฐ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ์ฌ ์ค๋ ๋๋ฅผ ์๋ก ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์ ๊ณตํ์ฌ ์ค์ ๋ก ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๋๊ฒ์ด ์๋๋ผ ๋ ผ๋ฆฌ์ ์ธ ๊ด์ ์์ ์ฌ๋ฌ ์์ ๋ค์ด ๋์์ ์ด๋ค์ง๋๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ํ๋ก๊ทธ๋๋ฐ (์ฑ๊ธ์ฝ์ด ๋ฉํฐ์ค๋ ๋ฉ ๋ฑ..) -. Paralleism Programmi..
-
์ธ์คํด์ค ์์ฑ ๋ฐ ์๋ฉธSwift 2020. 12. 28. 18:21
์๋ ํ์ญ๋๊น. ๊ทธ๋ฆฐ์ ๋๋ค! ์ค๋ ํฌ์คํ ์์๋ ์ธ์คํด์ค์ ์์ฑ ๋ฐ ์๋ฉธ์ ๊ดํด ๋๋ ๋ณด๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ํด๋์ค๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์์ฑ ์ ์ด๋์ ๋ผ์ด์ ๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ธ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ต๋๋ค. ์ด๊ธฐํ ๋๋ ๊ณผ์ ์ด์ฃ . ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ์ฃผ์ ์์๋ ์ด๊ธฐํ ๊ณผ์ ์์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๊ณ ์๋ฉธ์ํค๋๊ฑธ ์์๋ณด๊ฒ ์ต๋๋ค. 1. ์ธ์คํด์ค ์์ฑ -. ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ ์ํ์ฌ ์ด๊ธฐํ ๊ณผ์ ์ ํตํด ์ด๊ธฐ๊ฐ์ ์ง์ ํ ๋นํ ์ ์์ต๋๋ค. ์ฆ ์ด๋์ ๋ผ์ด์ ๊ฐ ์ด๊ธฐ๊ฐ์ ์ง์ ํ๋ ๋ฉ์๋์ ๋๋ค! -. init ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํด๋์ค/๊ตฌ์กฐ์ฒด/์ด๊ฑฐํ ํจ์ ์ ํน์ ์ต์คํ ์ ์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค. (ํด๋์ค์์ ์ต์คํ ์ ์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค.) class TestClass { init() { //์ด๊ธฐ๊ฐ ๊ตฌํ } } 1-1) ํ๋กํผํฐ ๊ธฐ๋ณธ๊ฐ -. ํด๋์ค.๊ตฌ์กฐ..
-
JSON ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐSwift 2020. 12. 23. 14:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ JSON ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ํ์ฑํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค~! ์ฐ์ ๊ฐ๋จํ JSON์ด๋ ๋ฌด์์ธ๊ฐ ์ดํด๋ณด๋๋ก ํ์ฃ ! [JSON] : JavaScript Object Notation์ ์ฝ์๋ก ํค์ ๊ฐ ์์ผ๋ก ์ด๋ค์ง ๋ฐ์ดํฐ ์ค๋ธ์ ํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฐฉํ ํ์ค ํฌ๋งท (key-value), value์๋ ๋ชจ๋ ํ์ ์ด ๋ค์ด๊ฐ ์ ์์ง๋ง ๋ณด์ฅ๋๋ ํํ๋ฐฉ์์๋ ๋ฌธ์์ด๊ณผ ์ซ์๋ง ๋ค์ด๊ฐ๋๋ค. ์ปดํจํฐ๋ ์ด๋ ํ ์ ํด์ง ๊ท์น์ ๊ฐ์ง๊ณ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ค. ๊ธฐ๊ณ์ด,XML,JSON ๋ฑ์ด ์ ๋ณด์ ๋ฌ ํฌ๋งท์ ๋๋ค. JSON์ ํํํ๋ ๋ฐฉ์์๋ {}: ๊ฐ์ฒด (๋์ ๋๋ฆฌ) []: ๋ฐฐ์ด “ “: ๋ฌธ์์ด ์ซ์ ๋ก ๊ฐ๋จํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค. JSON์ Swift์..
-
๊ณ ์ฐจํจ์์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐSwift 2020. 12. 18. 12:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ๊ณ ์ฐจํจ์์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค. ๊ณ ์ฐจํจ์.. ๋ง๋ง ๋ค์ด๋ ์ด๋ ต์ฃ ? ์ ๋ ์ฒ์ ์ํ์ ๊ดํ๊ฑด๊ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์์ด์ ^^; ์ ๊ทธ๋ผ ๊ณ ์ฐจํจ์๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! [๊ณ ์ฐจํจ์] ๊ณ ์ฐจํจ์๋ ํ๋ผ๋ฏธํฐ๋ ๋ฐํ๊ฐ์ ํจ์๋ก ์ฃผ๊ณ ๋ฐ๋ ํจ์์ ๋๋ค. ๊ณ ์ฐจํจ์๋ฅผ ํ์ฉํ ๋ํ์ ์ธ ๋ฉ์๋๋ map/filter/reduece๊ฐ ์์ต๋๋ค. ๊ณ ์ฐจํจ์๋ฅผ ์ ์ฌ์ฉํ๋ค๋ฉด ๊ธฐ์กด ๋ฐ๋ณต/์กฐ๊ฑด๋ฌธ๋ค์ ์ฅํฉํ๊ฒ ์ง๋๊ฒ๋ณด๋ค ๋ ํธํ๊ฒ ํจ์ ๋ด์์ ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค. 1) map: ์ปจํ ์ด๋ ๋ด๋ถ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณํํ์ฌ ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ์์ฑ data = numbers.map( { (number: Int) -> Int in return number * 2}) //ํ๋ผ๋ฏธํฐ,..
-
์ ๋ค๋ฆญSwift 2020. 12. 13. 16:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ค๋ฆญ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ ๋ค๋ฆญ์ ์ค์ํํธ ์ธ์ด๋ก ์ฌ์ฉ ํ ์ ์๋ ์์ฃผ ์ค์ํ ๊ธฐ๋ฅ์ ๋๋ค..!! ์ ๋ค๋ฆญ์ ์ด์ฉํ๋ฉด ์ฝ๋์ ์ค๋ณต์ ์ค์ฌ์ฃผ๊ณ ๊ตฌํํ ๊ธฐ๋ฅ/ํ์ ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค (ํ๋ฒ๋ง ๊ตฌํํ๋ฉด ๋ฉ๋๋ค~!!) 1. ์ ๋ค๋ฆญ ์ ์ธ ๋ฐ ์ฌ์ฉ -. ๋ฉ์๋ ์ด๋ฆ ๋ค () ๊ธฐํธ๋ฅผ ๋ถ์ฌ ํ์ -> func generic (value: T) -> T { } func ++ (frontNumber: T, backNumber: T) -> T { return frontNumber + backNumber } * BinaryInteger ํ๋กํ ์ฝ๋ก ํ์ ์ ์ข ๋ ๋ช ํํ ์ฃผ์ด ์ ์ ํ์ ๋ชจ๋ ํด๋น ๋ ์ ์๋๋ก ์ค์ 2. ์ ๋ค๋ฆญ ํจ์ -. ํจ์ ๋ฉ์๋๋ฅผ ์ ๋ค๋ฆญ์ผ๋ก ์ ์ธํ๋ฉด ์์์..
-
AppDelegate & SceneDelegateiOS 2020. 12. 7. 09:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ค๋ ํฌ์คํ ์์๋ Xcode๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋ ์ข์ธก Project Navigator์์ AppDelegate.swift์ SceneDelegate.swift ํ์ผ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค. ๋ ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง๋ค์ด์ง๊ณ ๊ตฌ๋๋ ๋ ๊ผญ ํ์์ ์ธ ํ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํ ์ด ๋์ด์์ด ํฌ๊ฒ ๊ฑด๋์๋์ผ์ด ์์์๊ฒ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ณด๋ iOS ๋ฒ์ ์ด ์ฌ์ฉ์ ๋ง๋ค ๋ค๋ฅผ๊ฒฝ์ฐ ๋ง์ฝ iOS ๋ฒ์ ์ ๋ฐ๋ผ ์ฌ์ฉํ์ง ๋ชปํ๋ ํ๋กํ ์ฝ์ด๋ ์ด๋ ํ ๊ธฐ๋ฅ์ด ์๋ค๋ผ๊ณ ํ๋ค๋ฉด ์กฐ์ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ดํ๊ฒ ์ต๋๋ค. iOS 13 ๋ฒ์ ์ด์ ์๋ AppDelegate ํ์ผ ์์์ ๋ทฐ ์ธ์ดํด์ ๊ตฌ๋ํด์ฃผ๊ณ ๋ํ๋ด์ฃผ๋ ๊ทธ๋ฌํ ๋ฉ์๋๋ค์ ๊ตฌํ์ด ๋ค ์ด๋ค์ ธ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ iOS 13 ์ดํ ๋ถํฐ๋ ๋ฐ๋ก Scene..