์ ์ฒด ๊ธ
-
Application Life CycleiOS 2021. 1. 14. 19:24
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ iOS์์์ ์ฑ ์๋ช ์ฃผ๊ธฐ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์๋์ด AppDelegate์ SceneDelegate์ ๋ํด์๋ ์์๋ณด๋๋ก ํ์ฃ ! 1. Application Life Cycle : iOS์์์ ์ฑ ์๋ช ์ฃผ๊ธฐ๋ ์๋์ ๊ฐ์ ์์๋ก ๋ณผ ์ ์์ต๋๋ค. 1) ์ฌ์ฉ์ ์ฑ ์์ด์ฝ ํฐ์น ์คํ 2) main() ๋ฉ์๋ ์คํ (AppDelegate ํ์ผ) 3) UIApplicationMain ๋ฉ์๋ ํธ์ถ ์คํ (์ฑ ์๋ช ์ฃผ๊ธฐ ๋จ๊ณ ์์ ๋ฉ์๋) 4) UIApplication ๊ฐ์ฒด ์ธ์คํด์ค ์์ฑ (์ฑ ๋ก๋ฉ ํ๋ก์ธ์ค) 5) nib / Info.plist ํ์ผ์์ ๋ถ๊ฐ ๋ฐ์ดํฐ๋ค์ Read & Load 6) AppDelegate ๊ฐ์ฒด ์ธ์คํด์ค ์์ฑ > App ๊ฐ์ฒด ์ธ์คํด์ค ์ฐ๊ฒฐ..
-
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ & 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..
-
OS์ ProcessCS(ComputerScience) 2021. 1. 5. 12:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ OS์ ํ๋ก์ธ์ค ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ตํ๊ฒ DB ๋ฐ ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค..! 1. ์ด์์ฒด์ (OS) -. ์ด์์ฒด์ ์ ์ญํ 1) ์์คํ ํ๋์จ์ด ๊ด๋ฆฌ 2) ์์คํ ์๋น์ค ์ ๊ณต 3) ์์๊ด๋ฆฌ 4) ์ฃผ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ (๋จ์๊ด๋ฆฌ / ๊ฐ์๋ฉ๋ชจ๋ฆฌ) 5) ํ์ผ๊ด๋ฆฌ (์์ฉํ๋ก๊ทธ๋จ OS ๋ณด์กฐ๊ธฐ์ต์ฅ์น) -> ํ์ผ์์คํ ์ ํตํด ๊ด๋ฆฌ 2. ํ๋ก์ธ์ค : ์ปดํจํฐ์์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ๋ปํ๋ค. -. ํ๋ก์ธ์ค์ ์ํ 1) ์์ฑ: ํ๋ก์ธ์ค ์์ฑ 2) ์คํ: CPU๋ฅผ ์ฐจ์งํ์ฌ ๋ช ๋ น์ด๋ค์ด ์คํ 3) ์ค๋น: CPU ์ฌ์ฉํ์ง ์์ง๋ง ์ธ์ ๋ ์ฌ์ฉํ ์ ์๋ ์ํ๋ก CPU ํ ๋น ๋๊ธฐ 4) ๋๊ธฐ: ์ ์ถ๋ ฅ ๋ฐ ์ ํธ ์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ (๋ณด๋ฅ ์ํ๋ก๋ ๋ถ๋ฆ) 5) ์ข ๋ฃ: ํ๋ก์ธ์ค ์ข ๋ฃ -> ..
-
์ธ์คํด์ค ์์ฑ ๋ฐ ์๋ฉธ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}) //ํ๋ผ๋ฏธํฐ,..
-
๋จ์ํ ์คํธ์ TDDiOS 2020. 12. 15. 10:47
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์ฝ๋์ ๋ํ ๋จ์ํ ์คํธ์ TDD์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ ๋จ์ํ ์คํธ์ TDD์ ๊ฐ๋ ์ ๋ชจ๋ ์ธ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์ ์งํํ๋ฉฐ ๋์ฌ ์ ์๋ ๊ฐ๋ ์ ๋๋ค. ๊ทธ๋ ์ง๋ง ์ ํฌ๋ iOS๋ฅผ ํ์ตํ๊ณ ์๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ํ ์คํธ์ TDD๊ฐ ์ด๋ค๊ฒ์ธ์ง ๋จผ์ ํ์ ํ๋ค์ Xcode์์ ์ด๋ป๊ฒ ์์ฑํ๊ณ ์ด๋ค ์ฝ๋๋ฅผ ์จ์ ํ ์คํธ๋ฅผ ์งํํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค~! [๋จ์ํ ์คํธ] ๋จ์ํ ์คํธ๋ ๋ง ๊ทธ๋๋ก ์ฝ๋์ ํ ์คํธ๋ฅผ ๋จ์๋ณ๋ก ์ชผ๊ฐ ํ ์คํธ๋ฅผ ์๊ฒ ์งํํ๋ ๋ฐฉ๋ฒ๋ก ์ค ํ๋์ ๋๋ค. ํจ์จ์ ์ธ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด์๋ 5๊ฐ์ง์ ์กฐ๊ฑด์ด ์์ต๋๋ค. ์๊ธ์๋ฅผ ๋ฐ์ FIRST๋ผ๊ณ ํฉ๋๋ค. 1) Fast: ๋น ๋ฆ, ํ ์คํธ๋ ๋นจ๋ผ์ผํ๋ค. 2) Independent: ๋ ๋ฆฝ์ , ํ ์คํธ ์ฝ๋๋ ๋ ๋ฆฝ์ ์ด์ฌ์ผํ๋ค. 3) R..