์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- GCD
- BFS
- GroupBy
- ๊ธฐ์ด๋ฌธ๋ฒ
- IOS
- Swift
- ์ด์งํ์
- APPJAM
- SQL
- DynamicProgramming
- duno
- URLSession
- ํ๋ก๊ทธ๋๋จธ์ค
- algorithm
- concurrency
- algoritm
- SwiftUI Tutorials
- ๊ณ ๋์ kit
- binarySearch
- discardableResult
- ๋์ ๊ณํ๋ฒ
- SOPT
- 0์ด๋์ด์๋๊ธธ
- HAVIT
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- Til
- SwiftUI
- SwiftUI ํํ ๋ฆฌ์ผ
- dfs
- Today
- Total
๋ชฉ๋กiOS/Design Pattern (4)
suvera-dev ๐ฅฆ
๊ตฌ์กฐํจํด์ด๋ ? ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์กฐํฉํด ๋ ํฐ ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ํจํด ์๋ฅผ ๋ค์ด ์๋ก ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ฅผ ์ง๋ 2๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ฌถ์ด ๋จ์ผ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ๊ฐ์ฒด๋ค์ ์๋ก ๋ฌถ์ด ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํจํด ! ๊ตฌ์กฐํจํด ํน์ง ! - ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง์น ํ๋์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. - ์ฌ๋ฌ ์ธํฐํ์ด์ค๋ฅผ ํฉ์ฑํ์ฌ ์๋ก ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ค์ ํต์ผ๋ ์ถ์์ ์ ๊ณตํ๋ค. - ์ธํฐํ์ด์ค๋ ๊ตฌํ์ ๋ณตํฉํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ์ฒด๋ฅผ ํฉ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ๊ตฌ์กฐํจํด ์ข ๋ฅ Bridge Decorator Facade Flyweight Proxy Composite Adaptor ์ค๋์ ์์ 7๊ฐ์ง ์ค์์ Bridge ํจํด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ! Bridge Pattern ๋ธ๋ฆฟ์ง ํจํด์ ๊ตฌํ๋ถ์์ ์ถ์์ธต..
๋์์ธ ํจํด ๊ฐ์ 2ํธ์ ์ฐ๊ฒ ๋ ์ด์ ๋ ๋์์ธ ํจํด์ ๋ํ ํฌ์คํ ์ ๋ช ๊ฐ ๋ณด๋ค๊ฐ ์ ๋ฆฌํ๊ณ ์ถ์ ๋ด์ฉ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ ! ใ [Design-Pattern-In-Swift] 3. ๋์์ธ ํจํด์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ด๋ฒ 3์ฅ์ GoF์ ๋์์ธ ํจํด 1.6์ฅ ~ 1.8์ฅ์ ์ฌ๊ตฌ์ฑํ ๋ด์ฉ์ ๋๋ค! ์ด์ ์๋ก ์ 3์ฅ์์ ๋ง๋ฌด๋ฆฌํ๊ณ - ๋ค์์ฅ๋ถํฐ๋ ์ค์ง์ ์ผ๋ก ๋์์ธํจํด์ ์ด๋ป๊ฒ Swift์ ์ ์ฉ ํ ์ ์๋์ง์ ๋ํด ๋ค๋ค๋ณด๋ ค i-colours-u.tistory.com ์ด ๊ธ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ๋์์ธํจํด ์ค ์์ฑํจํด ๋จผ์ ๊ณต๋ถํ๊ธฐ ์ํด ์ฐพ์๋ณด๋ค๋ณด๋ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์์บก์ํํ๋ค. ์ด๋ฐ์์ผ๋ก ๋ง์ด ์๊ธฐ๋ฅผ ํ๋๋ผ๊ตฌ์ ๊ทธ๋์ ํด๋์ค, ๊ฐ์ฒด, ์บก์ํ ์ด๋ฐ ๊ฐ๋ ๋ค์ ์ง๊ณ ๋์ด๊ฐ์ข .. ๊ณ ๋ฐ ๋๋์ ..
๋์์ธํจํด ์ค ์์ฑํจํด์ด๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ์ ์ ์ฐธ์ฌํ๋ ๊ฒ. ๊ฐ์ฒด๊ฐ ์ธ์คํด์คํ ๋๋ ๊ณผ์ ์ ์ถ์ํํฉ๋๋ค. ๊ฐ์ฒด๊ฐ ๊ตฌ์ฑ, ์์ฑ๋๊ณ ํํ๋๋ ๋ฐฉ์์ ๊ด๊ณ์์ด ์์คํ ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ง๋๋๋ฐ ๋์์ด ๋ฉ๋๋ค ! ๋ฒ์๋ก ๋ถ๋ฅํด๋ณด์๋ฉด, ํจํด์ ์ฃผ๋ก ํด๋์ค์ ์ ์ฉํ๋์ง ๊ฐ์ฒด์ ์ ์ฉํ๋์ง ๊ตฌ๋ถํด๋ณผ ์ ์๋ค. ํด๋์ค : ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฑ ์์ ์ผ๋ถ๋ฅผ ์๋ธ ํด๋์ค๊ฐ ๋ด๋นํ๋๋ก ๋๊ธฐ๋ ๊ฒ => ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด ๊ฐ์ฒด : ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฑ ์์ ์ผ๋ถ๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์์ํ๋ ๊ฒ => ์ถ์ ํฉํ ๋ฆฌ, ๋น๋, ํ๋กํ ํ์ , ์ฑ๊ธํค ์ค๋์ ์ด ์ค์์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ ์ถ์ ํฉํ ๋ฆฌ ํจํด์ ๋ํด ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค ! ๐ญ ํฉํ ๋ฆฌ ํจํด์ด๋ ? ๊ฐ์ฒด ์์ฑ์ ์ ๋ดํ๋ struct/class๋ฅผ ๋ง๋ค์ด ๊ตฌ์ฒด์ ์ธ ์์ฑ๊ณผ์ ์ ๊ทธ ์์ ๊ตฌํํ๋ ํจํด ์ ์ฌ..
์๋ ํ์ธ์ ! ์ค๋์ ๋์์ธํจํด์ ๋ํด์ ๊ณต๋ถํ๋ ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ ์ ํฉ๋๋ค :) ๋์๋ฆฌ์์ ๋์์ธ ํจํด ์คํฐ๋๋ฅผ ์์ํ๊ธฐ๋ ํ๊ณ , ํ์์ ์ฑ ์ฌ์ ๊ณต๋ถํ๋ ๊ฒ์ ์ข์ํด์ ํค๋ํผ์คํธ ๋์์ธํจํด ์ด๋ผ๋ ์ฑ ์ ๊ตฌ๋งคํ๊ฒ ๋์์ต๋๋ค. ์ด ์ฑ ์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ ๋์์ธ ํจํด์ ์ ๋ฆฌํด๋ณด๊ณ , ์ฑ ์ ๋์์๋ ์์ ์ฝ๋๋ฅผ Swift๋ก ์ง์ ๋ฐ๊ฟ๋ณด๋ ค๊ณ ํฉ๋๋ค ! ์ค๋์ ๋์์ธ ํจํด์ด ๋ญ์ง, ๊ทธ๋ฆฌ๊ณ ์ ์ฌ์ฉํ๋์ง, ์ข ๋ฅ์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ๊ฐ๋จํ๊ฒ ์ฐพ์๋ณธ ๋ด์ฉ๋ค์ ๊ธฐ๋กํ์์ต๋๋ค. ๋์์ธ ํจํด์ด๋ ? ๋์์ธ ํจํด์ ์ํํธ์จ์ด ์ค๊ณ์์ ๊ณตํต์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํด ์์ฃผ ์ฐ์ด๋ ์ค๊ณ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ ํจํด ! ์ ๋๋ค. ๋ฌธ์ ์ํฉ์ ๋ํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํด๊ฒฐ๋ฐฉ๋ฒ์ผ๋ก์จ, ์ผ์ข ์ ์์ด๋์ด๋ผ๊ณ ์๊ฐํ ์ ์์ ๊ฑฐ ๊ฐ์ต๋๋ค ! ์ฆ, ์ ํฌ๊ฐ ์ํ..