SWIFT
-
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..
-
View LifeCycle (์๋ช ์ฃผ๊ธฐ)iOS 2020. 11. 24. 14:01
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ค๋์ ์ค์ํํธ๋ก ๋ทฐ๊ฐ ๋ํ๋๋ ์๋ช ์ฃผ๊ธฐ์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค. View LifeCycle, ์๋ช ์ฃผ๊ธฐ ๊ฐ๋จํ ์ฃผ์ ์ด์ง๋ง ํ๋ฉด ์ ํ์ ์์ด์ ๊ฐ์ฅ ์ค์ํ์ฃ ~!? ๋ทฐ๊ฐ ํ๋ฉด์ ๋ํ๋๊ณ ์ฌ๋ผ์ง๋ ๊ทธ ์ํ ์ธ์ดํด์ ๋ํ๋ด๋๊ฒ์ผ๋ก ๋ทฐ ์ปจํธ๋กค๋ฌ์๋ ์๋์ ๊ฐ์ด ์ฌ๋ฌ ๋จ๊ณ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. [์๋ช ์ฃผ๊ธฐ] 1. init (์ด๊ธฐํ) 2. loadView -. ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ค. 3. viewDidLoad -. ๋ทฐ๊ฐ ์ค์ง์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ค. ์ด ๋ฉ์๋์์ ์ค๋ฒ๋ผ์ด๋ํ์ฌ ํ๋ฉด์ด ๋ณด์ฌ์ง๊ธฐ ์ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ์ ์๋ค. ๊ฐ๋จํ ์ด๊ธฐํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋ฉ์๋๋ก ๋ณผ ์ ์๋ค. ์ค์ํ์ ์ ํด๋น ๋ฉ์๋๋ ์คํ ํ ์ค์ง ํ๋ฒ๋ง ํธ์ถ์ด ๋๋ค. 4. viewWillAppear -. ๋ง ๊ทธ..
-
ํ๋กํ ์ฝ/๊ตฌ์กฐ์ฒด/ํด๋์ค์ ๊ดํ์ฌSwift 2020. 11. 23. 17:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๊ฐ ํ์ตํ๋ฉฐ ๋๋ฆ๋๋ก ๊ฐ๋จํ๊ฒ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ ์ ๋ฆฌํ๊ฒ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ํ๋กํ ์ฝ/๊ตฌ์กฐ์ฒด/ํด๋์ค์ ๊ดํ์ฌ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณผ๊น ํฉ๋๋ค..! ์ค์ํํธ๋ฅผ ์ฒ์ ์ ํ๋ฉฐ ๊ณต๋ถํ๋ค๋ณด๋ ์ ๋ค๋ฅธ ์ธ์ด์ ๋ฌ๋ฆฌ ํ๋กํ ์ฝ ์งํฅ์ด๋ฉฐ ๊ตฌ์กฐ์ฒด๊ฐ ์ค์ํ์ง ๊ถ๊ธํ์ต๋๋ค. ์์ง ๋ช ํํ๊ฒ ํด๋ต์ ์ฐพ์๊ฑด ์๋์ง๋ง ์ด๋์ ๋ ์ ๋ฆฌ๋ ๋ถ๋ถ์ ๊ธฐ์ฌํ์์ผ๋ ๋ง์ฝ ๋ค๋ฅธ ์ฌํญ์ด๊ฑฐ๋ ์๊ฒฌ์ด ์์ผ์๋ฉด ๋๊ธ ๋ฌ์์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :-) 1. ํ๋กํ ์ฝ : ์ด๋ค ๊ธฐ๋ฅ์ ์คํํ๊ธฐ ์ํด ํ๋กํผํฐ์ ๋ฉ์๋ ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ํ์ด๋ค. ์ฐ์ ์ค์ํํธ๋ ๊ฐ์ฒด ์งํฅ์ด๋ฉด์ ํ๋กํ ์ฝ ์งํฅ ์ธ์ด์ด๊ธฐ๋ ํ๋ค. ์ค์ํํธ์ ๋๋ถ๋ถ์ ๊ธฐ๋ณธ ํ์ ์ด ๊ตฌ์กฐ์ฒด๋ก ๊ตฌํ๋์ด์๋ค. ํด๋์ค๋ ์์์ ๋ฐ์ ๊ตฌํ๋์ง๋ง ๊ตฌ์กฐ์ฒด๋ ์์์ด ๋์ง ์๋๋ฐ..
-
KVO์ Notification ๊ฐ๋จ ์ ๋ฆฌiOS 2020. 11. 19. 15:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ๋จํ๊ฒ KVO์ Notification์ ๋ํด ์ ์๊ฐ์ ์ ๋ฆฌํ ๋ถ๋ถ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ์ฝ๋๊ฐ ์๋๊ฒ์ ์๋๊ณ ํ์ตํ ๋ด์ฉ์ผ๋ก ๊ฐ๋จํ ์ ๋ฆฌ์ ๋๋ค. -. KVO : Key-ValueObserving์ ์ฝ์๋ก, ์ฃผ์ฒด๊ฐ ๋ ธํฐํผ์ผ์ด์ ์ฒ๋ผ ์ผํฐ๊ฐ ์๋ ์๊ธฐ์์ ์ด๋ค. ๋ค๋ฅธ ์ธ์คํด์ค์ ์ง์ ๋งค์นญ์ ํ๋ฉฐ ๋ณํ๋ฅผ ์ฐพ๋๋ค. ์์ ๋ฐฉ์์ผ๋ก ์ง๊ธ์ ์ ์ฌ์ฉ๋์ง ์๋ ๋ฐฉ์ -. Notification : ์ธ์คํด์ค ๊ฐ ํต์ ์ผ๋ก ์ธ์คํด์ค ์ฌ์ด ์ ๋ณด๋ฅผ ์ ๋ฌํด์ ์๋ ค์ค ์ ์๋ ๋งค๊ฐ์ฒด๋ก ๋ณผ ์ ์๋ค. ๋งค๊ฐ์ฒด๋ฅผ ์๋ ค์ฃผ๋๊ฒ์ Notification์ด๋ผ๊ณ ํ๊ณ ๊ทธ ๋งค๊ฐ์ฒด์ ๋ณํ๋ฅผ ์ง์ผ๋ณด๊ณ ์ถ์๊ฒ์ Observing์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋งค๊ฐ์ฒด๋ฅผ ์๋ ค์ฃผ๋ ์ผํฐ๋ฅผ Notification center..
-
์ ๊ทผ๋ ๋ฒจ ๋ฐ ์ด๋์ ๋ผ์ด์ ๊ด๋ จSwift 2020. 11. 19. 15:36
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ํ์ฌ ํ์ตํ๋ค๊ฐ ์๊ฐ๋์ ์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ ์๊ฐ์ ์ ๋ฆฌํ ๋ถ๋ถ์ผ๋ก ๋ค์ ๋ค๋ฅด๊ฑฐ๋ ๋ง์ง ์์ ์ ์์ผ๋ ๊ทธ๋ฐ์ ์์ผ์๋ฉด ์๋ ค์ฃผ์ธ์~!! 1. ์ ๊ทผ๋ ๋ฒจ swift์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 5๊ฐ์ง์ ์ ๊ทผ๋ ๋ฒจ์ด ์์ต๋๋ค. 1) private : ๊ฐ์ฅ ์ ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ ํด๋น ์ ์๋ ๋ฉ์๋ ๋ด์์ ๊ฐ๋ฅํฉ๋๋ค. ์ฆ ํด๋น ์ค๊ดํธ ์์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค. 2) fileprivate : private ๋ค์์ผ๋ก ์ ํ์ ์ด์ง๋ง ํด๋น ์ค์ํํธ ํ์ผ์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. 3) internal : ๊ธฐ๋ณธ์ ์ธ ์ ๊ทผ๋ ๋ฒจ๋ก ์ ๊ทผ๋ ๋ฒจ์ ์์ ๋ถ์ฌ์ ์ค์ ํ์ง ์๊ณ ์๋ตํ๋ค๋ฉด ๋ค internal์ ๋๋ค. ๋ด๋ถ ์์คํ์ผ์์ ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค. 4) public : ์ธ๋ถ๋ชจ๋์์๋ ..
-
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์Swift 2020. 11. 8. 15:21
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ Swift ๋ฟ ์๋๋ผ ๋ค๋ฅธ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐ๋ฅด๋ ์ธ์ด์ ๊ณตํต๋ ํน์ฑ์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๋ คํฉ๋๋ค. ๋ฐ๋ก ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ธ๋ฐ์. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (Object Oriented Programming, OOP)๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ณต๋ถํ์ จ๋ ๋ถ๋ค์ด๋ผ๋ฉด ๋ค๋ค ๋ค์ด๋ดค๊ฒ ์ฃ ?? ๊ฐ๋จํ ์ค๋ช ํ๋ฉด ํ๋ก๊ทธ๋จ์ ๋จ์ํ ๋ช ๋ น๋ค์ ์คํํ๋๊ฒ์์ ๋์๊ฐ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ค๋ก ๋ณด๊ณ , ๊ทธ ๊ฐ์ฒด๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ์ฌ ์ํธ์์ฉ์ ํ๋ฉฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๊ฒ์ ๋งํฉ๋๋ค. ์ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ด๊ธฐ ํ๋ก๊ทธ๋จ์ ํตํด ๊ณ์ฐ ๊ฐ์ ๊ฐ๋จํ๊ฒ์์ ๋ฐ์ ํ์ฌ ๋ง์๊ฒ ์ฆ, ์ถ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ก ๋ณด๊ณ ํด๊ฒฐํ๊ณ ์ํ๋ ์๊ฐ์์ ๋ฐ์ ๋์จ๊ฒ์ ๋๋ค. ํจ๋ฌ๋ค์์ด ๋ญ๊น์? ํจ๋ฌ๋ค์์ ์ง์ญ ๊ทธ๋๋ก ์๊ฐ,๊ด..
-
๋๋คํจ์Swift 2020. 11. 4. 15:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์งง๊ฒ๋๋ง ๋๋คํจ์์ ๋ํด ํฌ์คํ ์ ํ๊ฒ ์ต๋๋ค. ์ ๊ฐ ๋๋คํจ์๋ฅผ ์ฐพ์๋ณด๊ณ ํ์ตํ๊ฒ๋ ๊ณ๊ธฐ๋ ์ ๋ธ๋ก๊ทธ์ Swift > ๊ฐ๋ฐ ๋ฉ๋ด์์ ํ์ธํ ์ ์๋ฏ์ด ๋ฌต์ฐ๋น ๊ฒ์์ ํ๋ก๊ทธ๋๋ฐํ๋ ๋์ค ์ปดํจํฐ์ ๋ฌต์ฐ๋น ๋ฅผ ๋๋คํ๊ฒ ๋ฐ์์์ผํ๋ ์ผ์ด ์๊ฒผ์ต๋๋ค. ์ด์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค์ํํธ ๋ฌธ๋ฒ์ ํ์ตํ๋ ์ ๋ ์ฐ์ ๊ตฌ๊ธ๋ง์ ํตํด ์ค์ํํธ์์ ๋๋คํจ์ ์ฌ์ฉ์ ๋ํด ํ์ต์ ํด๋ดค์ต๋๋ค. ์ ๊ทธ๋ผ ์ค์ํํธ์์ ๋๋คํจ์๋ฅผ ์ ์ํ๊ณ ์ํ๋ ์กฐ๊ฑด์ ๋ง๊ฒ ๋๋ค๊ฐ์ ๋์ถํด๋ด๋ ๊ณผ์ ์ ๊ฐ์ด ์งํํด๋ณด์์ฃ ~! ์ค์ํํธ 4.2 ๋ฒ์ ์ดํ ๋ถํฐ ๋ชจ๋ ์ ์์ ์ค์ ํ์ ์ ์์ฒด์ ์ธ ๋๋คํจ์๋ฅผ ์ ๊ณตํด์ฃผ๋๋ก ์ ๋ฐ์ดํธ ๋์์ต๋๋ค! ๊ทธ๋์ ์ด ํฌ์คํ ์์๋ 4.2๋ฒ์ ์ดํ์ ์ด์ ์ผ๋ก ๋ ๋ค ์์๋ณด๊ฒ ์ต๋๋ค~!! [Swift 4..