๐ง๐ป๐ป iOS ๊ฐ๋ฐ(30)
-
[Design Pattern] MVC pattern (Model View Controller)
ํด๋น ๊ฒ์๊ธ์ ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ ๋ฆฌํ ๊ฒ์ผ๋ก ๋ถ์กฑํ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค. MVC design pattern MVC ๋์์ธ์ ๊ฐ์ฅ ๋๋ฆฌ ์๋ ค์ง ์ํํธ์จ์ด ๋์์ธ ํจํด ์ค ํ๋๋ก์ ์ ํ๋ฆฌ์ผ์ด์ ์ Model - View - Controller ์ธ ๊ฐ์ง์ ํํธ๋ก ๋๋์ด ๋ค๋ฃน๋๋ค. MVC ํจํด์ ํต์ฌ์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ณด์ฌ์ง๋ ๋ ์ด์ด(UI)๋ฅผ ๋ถ๋ฆฌํ์ฌ ์๊ฐ์ ์์์ ๊ทธ ์ด๋ฉด์์ ์คํ๋๋ ๋ก์ง์ ์๋ก์ ์ํฅ ์์ด ์ฝ๊ฒ ์์ ์ด ๊ฐ๋ฅํ๊ฒ๋ ํ๋ ๊ฒ์ ๋๋ค. Model (๋ชจ๋ธ) ๋ชจ๋ธ์ ์ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ฌด์จ ์ผ์ ํ๋์ง๋ฅผ ์ ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค, ์๊ณ ๋ฆฌ์ฆ, ๋ก์ง ๋ฑ์ด ๋ชจ๋ธ์ด ๋ฉ๋๋ค. ๋ชจ๋ธ ์์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ง์ ์ปจํธ๋กค๋ฌ์๊ฒ ๊ฐ์ ์ ๋ฌํ๋ ๊ฒ์ด ์๋ ๋ธ๋ก๋์บ์คํ (Noticication or..
2021.01.14 -
[Swift ๋ฌธ๋ฒ] 08. Swift ํจ์ ๊ธฐ์ด ํ๊ณ ๋ค๊ธฐ 2 : ์ค์ฒฉํจ์, ์ข ๋ฃ๋์ง ์๋ ํจ์
ํด๋น ๊ธ์ ์ผ๊ณฐ๋์ ์ค์ํํธ ๊ฐ์์ ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ ๋ฒ ํฌ์คํ ์ ์ด์ด์ ์ค์ฒฉํจ์์ ์ข ๋ฃ๋์ง ์๋ ํจ์, ๋ฐํ ๊ฐ ๋ฌด์ ํจ์์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. 1. ์ค์ฒฉ ํจ์ ๊ธฐ์กด์ C, C++์์๋ ํจ์์์์ ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ Swift์์๋ ํจ์ ์์ ํจ์๋ฅผ ๋ฃ์ด ๊ตฌํ์ ํ ์ ์์ต๋๋ค. Swift์์ ํน๋ณํ ์์น์ ์ํด ์์ง ์๋ ํ ๋ชจ๋ ์ ์ญ ํจ์์ธ๋ฐ ๋นํด ํจ์ ์์ ๊ตฌํ๋ ์ค์ฒฉํจ์๋ ํจ์ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค (๋ฐํํ๋ฉด ๋ฐ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ). ํนํ ์ ์ญํจ์๊ฐ ๋ง์ ํ๋ก๊ทธ๋จ์์๋ ์ค์ฒฉํจ์๋ฅผ ์ด์ฉํ๋ฉด ํจ์ ์ฌ์ฉ๋ฒ์๋ฅผ ์ข ๋ ๋ช ํํ๊ฒ ํํํด์ค ์ ์๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค. 1. 1. ์ค์ฒฉ ํจ์ ์์ // ์ค์ฒฉ ํจ์ typealias UpDownFunc = (..
2021.01.12 -
[DEV] Framework, Library , API :: ๊ฐ๋ ์ ๋ฆฌ
ํด๋น ๊ธ์ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. ๋ถ์กฑํ ๋ถ๋ถ์ด ์์ ์ ์์ผ๋ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค. Framework , Library , API ? ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃฐ Cocoa Framework์ ๋ํด์ ์์๋ณด๊ธฐ ์ ์ Framework, Library, API ๊ฐ๋ ๊ณผ ๊ทธ ์ฐจ์ด๋ค์ ์ง๊ณ ๋์ด๊ฐ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. Framework (ํ๋ ์ ์ํฌ) ํ๋ ์ ์ํฌ๋ ๊ฐ๋ฐ์์๊ฒ ์ผ์ ์์๋ค๊ณผ ํ(๊ท์น, ๊ท์ฝ)์ ์ ๊ณตํ์ฌ ํน์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ฒ๋ ํ๋ ๊ฒ์ ๋๋ค. ๋จ์ด ๋ป ๊ทธ๋๋ก (๋ผ๋๋ฅผ ๊ฐ์ง๊ณ ์ผํ๋ ๊ฒ)์ด์ฃ . ๊ฐ๋ฐ์๊ฐ ์ด ์ด๋ ์ ๋์ ๋ผ๋๋ฅผ ์ ๊ณต๋ฐ์ ๊ทธ ์์์ ์ผ๊ด์ฑ, ์์ฐ์ฑ, ํตํฉ์ฑ์ ๋๋ฆด ์ ์๊ฒ ๋๋ ๊ฒ์ ๋๋ค. ์ํค์์๋ ํ๋ ์ ์ํฌ๋ฅผ ํน์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํด์ ์ํธ ํ๋ ฅํ๋ ํด๋์ค์ ์ธํฐํ..
2021.01.12 -
[Swift ๋ฌธ๋ฒ] 07. Swift ํจ์ ๊ธฐ์ด ํ๊ณ ๋ค๊ธฐ 1 : ํจ์ ์ ์ธ, ์ผ๊ธ๊ฐ์ฒด?
ํด๋น ๊ธ์ ์ผ๊ณฐ๋์ ์ค์ํํธ ๊ฐ์์ ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ฒ์ ํฌ์คํ ์์ Swift๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ด๋ผ๊ณ ์ธ๊ธํ์๋ ๊ฒ ๊ธฐ์ต๋์๋์? ๊ทธ๋งํผ Swift์ ํจ์์ ๋ํด์ ์ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ ๊ธฐ์ด์ ์ธ ํจ์, ๊ทธ ํน์ง๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์์ ์์ฃผ ๋ฑ์ฅํ๋ ๊ฐ๋ ์ธ ์ผ๊ธ ๊ฐ์ฒด์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. 1. Swift์ ํจ์ Swift์ ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํจ์ ์ด๋ฆ, ๋งค๊ฐ ๋ณ์ (Prameter), ๋ฐํํ์ (Return Type)๋ฑ์ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๋ง์ ์ด ์ธ ๊ฐ์ง ์ค ํ๋๋ง ๋ฌ๋ผ๋ ๋ค๋ฅธ ํจ์๋ผ๋ ์๋ฏธ๊ฒ ์ฃ ? Swift์ ํจ์๋ ์ฌ์ ์ ( ์ค๋ฒ๋ผ์ด๋: Override ), ์ค๋ณต ์ ์ ( ์ค๋ฒ๋ก๋: Overloa..
2021.01.09 -
[Swift ๊ณต๋ถ] ๋ถ์คํธ ์ฝ์ค Swift ๊ธฐ์ด๊ฐ์ ์๋ฃ ํ๊ธฐ! & ์ก์ค
๋ถ์คํธ ์ฝ์ค ํ๊ธฐ ๊ฐ์ ๋๋ถ๋ถ์ด ํ์ํ ๋ถ๋ถ๋ง ํต์ฌ์ ์ผ๋ก ๋ค๋ค์ 30๊ฐ ์ ๋๋ฅผ ์ผ์ฃผ์ผ ๋์๋ค์ ์ ์์๋ค. ์ฝ๋ ๋๋ถ๋ถ์ ์ผ๊ณฐ๋์ ๊น์ ์์๊ฐ ์์ด์ ์ดํดํ๊ธฐ ์ฌ์ ๊ณ ๋ค๋ฅธ ์ธ์ด๋ฅผ ๋ฐฐ์๋ณธ ๊ฒฝํ์ด ์์ผ๋ ํ์์ฒ๋ผ iOS๋ฅผ ์ฒ์ ์ ํ๋ ์ฌ๋์๊ฒ ์ถ์ฒํ ๋งํ ๊ฐ๋ ์ค๋ช ๊ณผ ๊ฐ์ ์๋์๋ค. ๋งค ๋จ์๋ง๋ค ํด์ฆ๊ฐ ์๊ณ ๋ค ๋ง์ถ๋ฉด ์ด๋ ๊ฒ ์๋ฃ์ฆ์ ๋ฐ๊ธํด์ค๋ค. ๋์ ๋์ iOS ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๊ฒฐ์ฌํ์ง ์ผ์ฃผ์ผ์ด ์ง๋ฌ๋ค. 2020๋ ์ ์๋ฐ๊ธฐ, ํ๋ฐ๊ธฐ ์ทจ์ค์ ๊ณ์ ๋๋ฐฉํ๊ณ ์ค์ค๋ก ๋๋์๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. ์ฝ๋ก๋ ํ๊ณ๋ฅผ ๋๋ฉด ๋ง์์ ํธํด์ง์ง๋ ๋ชฐ๋ผ๋ ํ์ค์ ์ธ ๋์์ด ๋์ง ์๋๋ค๋ ๊ฒ์ ์๋ค. ๊ฒฐ๊ตญ, ๊ฒฐ๋ก ์ ๋ ์ค์ค๋ก๋ฅผ ์ดํํ๊ณ ๊พธ์คํ๊ฒ ์ญ๋์ ๊ธธ๋ฌ์จ ๋ถ์ผ์ ํฌํธํด๋ฆฌ์ค๊ฐ ์์๊ณ ๋ด๊ฐ ์ง์ถํ ๋ถ์ผ์ ์ธ์ ๋คํธ์ํฌ๋ฅผ ์๋ ๋ฐ ์ํํ..
2021.01.09 -
[Swift ๋ฌธ๋ฒ] 06. Swift ์ปฌ๋ ์ ํ์ ์ Set(์ )์ ๋ฐฐ์๋ณด์.
ํด๋น ๊ธ์ ์ผ๊ณฐ๋์ ์ค์ํํธ ๊ฐ์์ ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ค๋งํธํฐ์ผ๋ก 15๋ ๊ฐ ์ฐ์ ์ํ๊ณ๊ฐ ์์ง์๋ค๋ฉด ๋ค์์ ์ค๋งํธ ์๋์ฐจ๊ฐ ์๋๊น์? ์ฌ๋์ด ์ด์ ์ ํ๋ ์๋๋ ๊ณง ์ฌ๋ผ์ง ๊ฒ์ ๋๋ค. ์ฐจ์ ํ์ ์ด๋ํ๋ ๋์ ์ฌ๋๋ค์ด ์ ๋ง ์ ๊น์? ์ ํ์นด๊ฐ ๋ฑ์ฅํ๋ค๋ฉด ๊ทธ ์์์ ์๋น๋๋ ๋ชจ๋ ์ปจํ ์ธ ์ ํ๋ซํผ์ ์ ํ์ ๊ฐ๋ฐ ์ธ์ด์ธ Swift๋ก ์์ฑ๋ ํ๋ฅ ์ด ๊ต์ฅํ ๋์ต๋๋ค. ๊ทธ๋ผ ๊ฐ์ด ๊ณต๋ถํด๋ด ์๋ค! Swift์๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ปฌ๋ ์ ํ์ ์ ์ ๊ณตํฉ๋๋ค. ์ปฌ๋ ์ ํ์ ์๋ Array (๋ฐฐ์ด), Dictionary (๋์ ๋๋ฆฌ), Set (์ธํธ)๊ฐ ์กด์ฌํฉ๋๋ค. ์ ๋ฒ ํฌ์คํ ์์ ์ปฌ๋ ์ ํ์ ์ธ Dictionary๋ฅผ ๋ค๋ค๋ค๋ฉด ์ด๋ฒ์๋ Set ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. 1. Set ..
2021.01.08