์ ์ฒด ๊ธ
-
๊ณ ์ฐจํจ์์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ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..
-
์ ๋ค๋ฆญSwift 2020. 12. 13. 16:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ค๋ฆญ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ ๋ค๋ฆญ์ ์ค์ํํธ ์ธ์ด๋ก ์ฌ์ฉ ํ ์ ์๋ ์์ฃผ ์ค์ํ ๊ธฐ๋ฅ์ ๋๋ค..!! ์ ๋ค๋ฆญ์ ์ด์ฉํ๋ฉด ์ฝ๋์ ์ค๋ณต์ ์ค์ฌ์ฃผ๊ณ ๊ตฌํํ ๊ธฐ๋ฅ/ํ์ ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค (ํ๋ฒ๋ง ๊ตฌํํ๋ฉด ๋ฉ๋๋ค~!!) 1. ์ ๋ค๋ฆญ ์ ์ธ ๋ฐ ์ฌ์ฉ -. ๋ฉ์๋ ์ด๋ฆ ๋ค () ๊ธฐํธ๋ฅผ ๋ถ์ฌ ํ์ -> func generic (value: T) -> T { } func ++ (frontNumber: T, backNumber: T) -> T { return frontNumber + backNumber } * BinaryInteger ํ๋กํ ์ฝ๋ก ํ์ ์ ์ข ๋ ๋ช ํํ ์ฃผ์ด ์ ์ ํ์ ๋ชจ๋ ํด๋น ๋ ์ ์๋๋ก ์ค์ 2. ์ ๋ค๋ฆญ ํจ์ -. ํจ์ ๋ฉ์๋๋ฅผ ์ ๋ค๋ฆญ์ผ๋ก ์ ์ธํ๋ฉด ์์์..
-
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆCS(ComputerScience) 2020. 12. 8. 16:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๊ฐ๋ ์ ๋ํด ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค. ์ปดํจํฐ ๊ธฐ๋ณธ์ง์์ด์ ์ข ์ด๋ ค์ฐ๋ฉด์ ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ๋ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ! ๋งํ์๋ฉด ํ๋ ๋๋ ์์๊ฒ์ด๊ณ ๋ง์ ๋ถ๋ถ์ด ์์ง๋ง ์ด๋ฒ ํฌ์คํ ์์๋ ์กฐ๊ธ ๊ฐ๋จํ๊ฒ ๊ฐ๋ ๋ง ์ง๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค^^ [์ฉ์ด ์ ๋ฆฌ] -. ์๊ณ ๋ฆฌ์ฆ: ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ ์ฐจ/๋ฐฉ๋ฒ์ ๋ชจ์ (์์ฐจ์ ์ธ ๋ฐฉ๋ฒ) -. ์๋ฃ๊ตฌ์กฐ: ์๋ฃ๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ ์ ์๋ ๋ฐฉ๋ฒ๋ก (๋ฐ์ดํฐ๋ฅผ ์ต์ ํํ์ฌ ์ฌ์กฐ๋ฆฝํ๋ ๋๋, ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํํ, data structer) [์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ] -. ์์๊ตฌ์กฐ / ์ ํ๊ตฌ์กฐ / ๋น์ ํ๊ตฌ์กฐ / ๋ฌผ๋ฆฌ๊ตฌ์กฐ / ์ถ์์ ๊ตฌ์กฐ :์์๊ตฌ์กฐ๋, ์๋ฃ(์ ์,์ค์ ๋ฑ..)๋ฅผ ์ชผ๊ฐ๊ฑฐ๋ ์กฐํฉํ์ฌ ๋ง๋ค์ด๋์ [์๋ฃ๊ตฌ์กฐ์ ํ์ฉ] 1. ๋ฐฐ..
-
AppDelegate & SceneDelegateiOS 2020. 12. 7. 09:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ค๋ ํฌ์คํ ์์๋ Xcode๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋ ์ข์ธก Project Navigator์์ AppDelegate.swift์ SceneDelegate.swift ํ์ผ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค. ๋ ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง๋ค์ด์ง๊ณ ๊ตฌ๋๋ ๋ ๊ผญ ํ์์ ์ธ ํ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํ ์ด ๋์ด์์ด ํฌ๊ฒ ๊ฑด๋์๋์ผ์ด ์์์๊ฒ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ณด๋ iOS ๋ฒ์ ์ด ์ฌ์ฉ์ ๋ง๋ค ๋ค๋ฅผ๊ฒฝ์ฐ ๋ง์ฝ iOS ๋ฒ์ ์ ๋ฐ๋ผ ์ฌ์ฉํ์ง ๋ชปํ๋ ํ๋กํ ์ฝ์ด๋ ์ด๋ ํ ๊ธฐ๋ฅ์ด ์๋ค๋ผ๊ณ ํ๋ค๋ฉด ์กฐ์ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ดํ๊ฒ ์ต๋๋ค. iOS 13 ๋ฒ์ ์ด์ ์๋ AppDelegate ํ์ผ ์์์ ๋ทฐ ์ธ์ดํด์ ๊ตฌ๋ํด์ฃผ๊ณ ๋ํ๋ด์ฃผ๋ ๊ทธ๋ฌํ ๋ฉ์๋๋ค์ ๊ตฌํ์ด ๋ค ์ด๋ค์ ธ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ iOS 13 ์ดํ ๋ถํฐ๋ ๋ฐ๋ก Scene..
-
SOLIDCS(ComputerScience) 2020. 12. 3. 17:05
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ค๋์ SOLID์ ๋ํด ํ์ตํ ๋ถ๋ถ์ ๊ณต์ ํด๋ณด๋ฉฐ ์๊ฐ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค..! SOLID๊ฐ ๋ญ๊น์ ๋๋์ฒด?? ์ค์ํํธ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด์ธ๊ฑด ๋ค๋ค ์์ค๊ฒ๋๋ค. SOLID๋ฅผ ๊ฐ๊ด์ ์ผ๋ก ์ ๋ฆฌํ์๋ฉด ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ ์ํ 5๊ฐ์ง ์์น!! ์ด๋ผ๊ณ ํํํ ์ ์์ต๋๋ค. SOLID๋ ์ด๋ป๊ฒ๋ณด๋ฉด ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ์ํ ๋์์ธ ํจํด๊ณผ ๊ฐ์ด ์ด๋ ํ ์ฝ์? ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. ๋๊ตฌ๋ ๋ณด๊ธฐ ํธํ๊ณ ๋จ์ํ๋ฉฐ ํ์ฅ์ฑ์ด ์๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๋๊ฒ์ด ์ค์ํ๋ค๊ณ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ๋ค์ ์๊ฐํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ์ํด์ ๋์์ธ ํจํด์ด๋ MVC ๋ชจ๋ธ์ด๋ ์๋ค๊ณ ์๊ฐ๋ค์ฃ ? ๊ทธ๋ฐ๊ฒ๊ณผ SOLID์ ๊ด๋ ์ ์ ์ฌํ๋ค๊ณ ์๊ฐ๋ญ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด์ SOLID๊ฐ 5๊ฐ์ง ์์น์ด๋ผ๋ฉด ์ด๋ค 5๊ฐ์ง๋ฅผ ๋ํ๋ด๋์ง ์ด์ ์์๋ณด๊ฒ ์ต๋๋ค~! 1. SRP (..
-
Gesture RecognizeriOS 2020. 12. 2. 18:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ Gesture Recognizer์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์ฌ์ฉ์์ ํฐ์น๋ ์ค์์ดํ/๋กฑ ํ๋ ์ค ๊ฐ์ ๋ฐ์์ ๋ํด ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ๊ฐ ์ด๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๋ฉฐ ๊ตฌํํด๋ณด๋ ๊ณผ์ ์์ ํ ์คํธ ํ๋์์ ํค๋ณด๋๊ฐ ์ฌ๋ผ์ค๊ณ ํด๋น ํค๋ณด๋๊ฐ ๋ค๋ฅธ ๋ถ๋ถ์ ํฐ์นํ ๋ ๋ด๋ ค๊ฐ๊ฒ ํ๊ณ ์ถ์ด ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ดค์ต๋๋ค. ๊ทธ๋ผ ํจ๊ป ๊ทธ๋ฐ๊ฒ๋ค์ ํ๋ ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ด ์๋์ง ๋ฌด์จ ์ฐจ์ด๊ฐ ์๋์ง ๋ณด๊ฒ ์ต๋๋ค !!! ํฌ๊ฒ ํฐ์น์ ๋ํด ๋ฐ์์ ๊ตฌํํ ๋๋ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. touch VS Gesture Recognizer 1. touchBegan/Ended/Moved/Cancelled -. touchBegan: ํฐ์น๊ฐ ์์๋๋ ์์ ์ ๋ฉ์๋๋ฅผ ํธ์ถ -. touchEnd..
-
UMLiOS 2020. 12. 2. 01:50
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ UML์ ๋ํด ์ ๊ฐ ํ์ตํ๋ฉฐ ๋๋๊ฒ์ ์ ๋ฆฌํด๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ฒ ์ต๋๋คใ ใ ์์ง ์ ๋ ๋ฏธ์ํ ๋ถ๋ถ์ด ๋ง์ผ๋ฉฐ ํฌ์คํ ์ ๋ด์ฉ์ด ์ ํํ์ง ์์ ์ ์์ต๋๋ค..! ๋ฐ์ ํด๋๊ฐ๋ ๊ณผ์ ์ด๋ผ์์..^^ ์์ ๋์ผํ ๊ฒ์ด๋ ์๊ฒฌ์ด ์์ผ์๋ฉด ์ธ์ ๋ ๋๊ธ ๋ถํ๋๋ ค์~~!! UML -. Unified Modeling Language์ ์ฝ์๋ก ํ์คํ ๋ชจ๋ธ๋ง ์ธ์ด -. ์์คํ ๊ตฌ์กฐ๋ฅผ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ํํํ ์ ์์ต๋๋ค. (์๋ฅผ๋ค์ด ์ด๋ฆ/์์ฑ/์ฐ์ฐ ๋ฑ๋ฑ..!) -. UML์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ์ฝ๋์ ๋ํ ์ค๋ช ์ ๋์ฑ ํธํ๊ฒ ํด์ค๋๋ค. ์ฝ๋๋ฅผ ์ค๋ช ํ ๋๋ 3๊ฐ์ง ์ ๋์ ๋ฐฉ๋ฒ์ด ์๋๋ฐ 1) ํด๋น ์ฝ๋๋ง์ผ๋ก ์ค๋ช ์ด ํ์์์ ๋งํผ ์ ์ง๊ฑฐ๋!! 2) ๊ธ์ด๋ ์ฃผ์์ผ๋ก ํํ์ ํ๊ฑฐ๋~ (๊ฐ์ฅ..