νλ‘μ νΈμ MVVMν¨ν΄μ μ μ©νκ³ μμΌλ μ νν κ°λ μ΄ μμ§λμ§ μμ μ 리ν΄λ³΄λ € νλ€.
μ°μ λμμΈ ν¨ν΄ -> MVC -> MVP -> MVVM μμλ‘ κ³΅λΆνκ² λ€.
λμμΈ ν¨ν΄μ΄λ?
μ½κ² λ§νλ©΄ λμμΈ ν¨ν΄ = κ²μ¦λ μννΈμ¨μ΄ κ°λ° μ€κ³ λ°©λ²μΈ κ² κ°λ€.
μλλ‘μ΄λ μ±μ μ€κ³ν λ λμμΈ ν¨ν΄μ μ μ©
μ΄λ―Έ κ²μ¦λ ν¨ν΄μ΄λ―λ‘ λ¬Έμ κ° λ°μν μΌμ΄ μ λ€.
μ ννλ ν¨ν΄μ΄λ―λ‘ κ°λ°μ κ°μ μμ¬μν΅μ΄ μμν΄μ§λ€.
λ μ μ°νκ³ μ’μ μ½λλ₯Ό μ¬μ©ν μ μλ€.
λμμΈ ν¨ν΄μ ν¬κ² 3μ’ λ₯λ‘ λλλ€.
μμ± ν¨ν΄
ꡬ쑰 ν¨ν΄
νμ ν¨ν΄
μμ± ν¨ν΄
1. μΆμ ν©ν 리
μΈν°νμ΄μ€λ₯Ό νμ©νλ ν¨ν΄
https://sup2is.github.io/2020/06/22/abstract-factory-pattern.html
Sup2's blog-μΆμ ν©ν 리(Abstract Factory) ν¨ν΄ Feat.Java
sup2is.github.io
2. λΉλ ν¨ν΄
쑰립νλ©΄μ κ°μ²΄ μμ±
https://4z7l.github.io/2021/01/19/design_pattern_builder.html
[Design Pattern] GoF μμ± ν¨ν΄ - λΉλ ν¨ν΄(Builder Pattern) - HERSTORY
λΉλ ν¨ν΄(Builder Pattern) GoF λμμΈ ν¨ν΄ μ€ μμ± ν¨ν΄μ ν΄λΉνλ€. λΉλ ν¨ν΄μ 볡μ‘ν κ°μ²΄λ₯Ό μμ±νλ ν΄λμ€μ νννλ ν΄λμ€λ₯Ό λΆλ¦¬νμ¬, λμΌν μ μ°¨μμλ μλ‘ λ€λ₯Έ ννμ μμ±νλ λ°©
4z7l.github.io
3. μμ‘΄μ± μ£Όμ
μΈλΆλ‘λΆν° κ°μ²΄λ₯Ό λ°μμ μ¬μ©
https://velog.io/@wlsdud2194/what-is-di
[DI] Dependency Injectionμ΄λ 무μμΌκΉ?
Dependency Injection, μμ‘΄μ± μ£Όμ μ΄ λ¬΄μμ΄κ³ μ΄λ€ μ΄μ μ΄ μλμ§ μμλ₯Ό ν΅ν΄ μ 리ν κΈμ λλ€.
velog.io
4. ν©ν 리 λ©μλ ν¨ν΄
κ°μ²΄λ₯Ό μμ±νκΈ° μν μΈν°νμ΄μ€λ₯Ό λ§λ€κ³ κ°μ²΄ μμ±μ νμ ν΄λμ€μμ μν
ν©ν 리 λ©μλ ν¨ν΄ (Factory Method Pattern)
ν©ν 리 λ©μλ ν¨ν΄(Factory Method Pattern)μ κ°μ²΄λ₯Ό μμ±νκΈ° μν΄ μΈν°νμ΄μ€λ₯Ό λ§λλλ€. μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λ€μ§λ₯Ό μλΈν΄λμ€μμ κ²°μ νλλ‘ ν©λλ€. ν©ν 리 λ©μλλ₯Ό μ΄μ©νλ©΄ μΈ
velog.io
5. μ§μ°λ μ΄κΈ°ν
λΉμ©μ΄ λ§μ΄ λλ κ³Όμ μ μ²μ νμν μμ κΉμ§ μ§μ°μν€λ κΈ°λ²
6. νλ‘ν νμ
λ€μμ λμΌν κ°μ²΄ μ¬μ©
[λμμΈ ν¨ν΄μ μ μ] μμ±ν¨ν΄ - νλ‘ν νμ ν¨ν΄ (Prototype)
κ°λ°μ yeahμ Developer Story - λμμΈ ν¨ν΄ μ€λμ μ λ² ν¬μ€ν μ μ΄μ΄μ νλ‘ν νμ ν¨ν΄ μ μ΄μΌκΈ°ν΄λ³΄λ € ν©λλ€. λ¨Όμ νλ‘ν νμ ν¨ν΄ μ€λͺ μ μμ κ°μ²΄ μμ±μ λν΄ κ°λ¨ν μ€λͺ νλλ‘
yeah.tistory.com
7. μ±κΈν΄ ν¨ν΄
μμ±μκ° μ¬λ¬ μ°¨λ‘ νΈμΆλλλΌλ μ€μ λ‘ μμ±λλ κ°μ²΄λ νλμ΄κ³ μ΅μ΄ μμ± μ΄νμ νΈμΆλ μμ±μλ μ΅μ΄μ μμ±μκ° μμ±ν κ°μ²΄λ₯Ό 리ν΄
https://lktprogrammer.tistory.com/187
[Android Studio] μλλ‘μ΄λ μ€νλμ€ - μ±κΈν€ ν¨ν΄ (SingleTon Pattenr) ν΄λμ€ μλ μμ±
λμμΈ ν¨ν΄(Design Pattern) μ€ μ±κΈν€(Singleton) ν¨ν΄μ νΉμ ν΄λμ€μ λν μΈμ€ν΄μ€λ₯Ό λ¨ ν λ²λ§ Static λ©λͺ¨λ¦¬ μμμ ν λΉνκ³ ν΄λΉ ν΄λμ€μ λν μμ±μλ₯Ό μ¬λ¬ λ² νΈμΆνλλΌλ μ΅μ΄μ μμ±λ
lktprogrammer.tistory.com
ꡬ쑰 ν¨ν΄
1. μ΄λν°
ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ¬μ©μκ° κΈ°λνλ λ€λ₯Έ μΈν°νμ΄μ€λ‘ λ³ν
https://jusungpark.tistory.com/22
λμμΈν¨ν΄ - μ΄λν° ν¨ν΄ (adapter pattern)
μ΄λν° ν¨ν΄ (adapter pattern) ν ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό ν΄λΌμ΄μΈνΈμμ μ¬μ©νκ³ μνλ λ€λ₯Έ μΈν°νμ΄μ€λ‘ λ³ννλ€. μ΄λν°λ₯Ό μ΄μ©νλ©΄ μΈν°νμ΄μ€ νΈνμ± λ¬Έμ λλ¬Έμ κ°μ΄ μΈ μ μλ ν΄λμ€
jusungpark.tistory.com
2. λΈλ¦¬μ§
κΈ°λ₯κ³Ό ꡬνμ λν΄ λ κ°μ ν΄λμ€λ₯Ό λ§λ¦
https://lktprogrammer.tistory.com/35
07 λΈλ¦Ώμ§ ν¨ν΄ (Bridge Pattern)
λΈλ¦Ώμ§ ν¨ν΄ (Bridge Pattern) ꡬνλΆμμ μΆμμΈ΅μ λΆλ¦¬νμ¬ κ°μ λ 립μ μΌλ‘ λ³νμ΄ κ°λ₯νκ³ νμ₯μ΄ κ°λ₯νλλ‘ ν©λλ€. μ¦ κΈ°λ₯κ³Ό ꡬνμ λν΄μ λ κ°λ₯Ό λ³λμ ν΄λμ€λ‘ ꡬνμ ν©λλ€. β λΈ
lktprogrammer.tistory.com
3. μ»΄ν¬μ§νΈ ν¨ν΄
볡ν©μ μΈ κ°μ²΄μ λ¨μΌ κ°μ²΄λ₯Ό λμΌνκ² λ€λ£° μ μκ² ν¨
https://gmlwjd9405.github.io/2018/08/10/composite-pattern.html
[Design Pattern] μ»΄νΌμ§νΈ ν¨ν΄μ΄λ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
4. λ°μ½λ μ΄ν° ν¨ν΄
κ°μ²΄μ μ¬λ¬ κΈ°λ₯μ κ²°ν©νμ¬ μ¬μ©
https://gmlwjd9405.github.io/2018/07/09/decorator-pattern.html
[Design Pattern] λ°μ½λ μ΄ν° ν¨ν΄μ΄λ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
5. νΌμ¬λ ν¨ν΄
ν΅ν©λ μΈν°νμ΄μ€ μ 곡
https://jusungpark.tistory.com/23
λμμΈν¨ν΄ - νΌμ¬λ ν¨ν΄ (facade pattern)
νΌμ¬λν¨ν΄ (facade pattern) μ΄λ€ μλΈμμ€ν μ μΌλ ¨μ μΈν°νμ΄μ€μ λν ν΅ν©λ μΈν°νμ΄μ€λ₯Ό μ 곡νλ€. νΌμ¬λμμ κ³ μμ€ μΈν°νμ΄μ€λ₯Ό μ μνκΈ° λλ¬Έμ μλΈμμ€ν μ λ μ½κ² μ¬μ©ν μ μλ€.
jusungpark.tistory.com
6. νλΌμ΄μ¨μ΄νΈ ν¨ν΄
νλμ μΈμ€ν΄μ€λ‘ μ¬λ¬ κ°μ κ°μ μΈμ€ν΄μ€ μμ±
https://lee1535.tistory.com/106
[λμμΈν¨ν΄/Design Pattern] Flyweight Pattern / νλΌμ΄μ¨μ΄νΈ ν¨ν΄
κ΄λ ¨ λ΄μ©μ [μλ° μΈμ΄λ‘ λ°°μ°λ λμμΈ ν¨ν΄ μ λ¬Έ] , [Head First Design Pattern] μ λ΄μ©μ μ°Έκ³ ν΄μ μ 리ν κΈμ λλ€. μλͺ»λ λΆλΆμ λκΈλ‘ νΌλλ°± λΆνλ립λλ€. 1. Flyweight ν¨ν΄μ΄λ? μ΄λ€ ν΄λμ€
lee1535.tistory.com
7. νλ‘μ ν¨ν΄
ν΄λΉ κ°μ²΄λ₯Ό λμ (proxy)νλ κ°μ²΄λ₯Ό ν΅ν΄ λμ κ°μ²΄μ μ κ·Όνλ λ°©μ
https://coding-factory.tistory.com/711
[Design Pattern] νλ‘μ ν¨ν΄(Proxy Pattern)μ λνμ¬
νλ‘μ ν¨ν΄μ΄λ? νλ‘μλ λ리μΈμ΄λΌλ λ»μΌλ‘, 무μμΈκ°λ₯Ό λμ μ²λ¦¬νλ μλ―Έμ λλ€. μΌμ’ μ λΉμλΌκ³ μκ°νμλ©΄ λ©λλ€. μ¬μ₯λνν μ¬μν μ§λ¬Έμ ν기보λ€λ λΉμνν λ¨Όμ λ¬Όμ΄λ³΄λ
coding-factory.tistory.com
νλ ν¨ν΄
1. μ± μ μ°μ
κ°μ²΄λ₯Ό μ¬μ¬ λ°©μμΌλ‘ μ°κ²°, μμ²μ μννμ§ λͺ»νλ κ°μ²΄μΈ κ²½μ° λ€μ κ°μ²΄λ‘ λκΉ
https://k0102575.github.io/articles/2020-02/chain-of-responsibility-pattern
μ± μ μ°μ ν¨ν΄(chain-of-responsibility pattern)
μ°μμ± μν¨ν΄ (Chain-of-responsibility pattern)
k0102575.github.io
2. 컀맨λ ν¨ν΄
μ€νλ κΈ°λ₯μ μΊ‘μννμ¬ μ£Όμ΄μ§ μ¬λ¬ κΈ°λ₯μ μνν μ μλ μ¬μ¬μ©μ±μ΄ λμ ν΄λμ€λ‘ μ€κ³
https://gmlwjd9405.github.io/2018/07/07/command-pattern.html
[Design Pattern] 컀맨λ ν¨ν΄μ΄λ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
3. μΈν°νλ¦¬ν° ν¨ν΄
λ¬Έλ² κ·μΉμ ν΄λμ€νν ꡬ쑰
https://always-intern.tistory.com/11
[λμμΈ ν¨ν΄] μΈν°νλ¦¬ν° ν¨ν΄(Interpreter Pattern)
1) κ°μ λ¬Έλ² κ·μΉμ ν΄λμ€ν ν ꡬ쑰λ‘, μΌλ ¨μ κ·μΉμΌλ‘ μ μλ λ¬Έλ²μ μΈμ΄λ₯Ό ν΄μνλ ν¨ν΄μ λλ€.(SQL, SHELL...) μΈν°νλ¦¬ν° ν¨ν΄μ SQLκ³Ό κ°μ κ³μΈ΅μ μΈμ΄λ₯Ό ν΄μνκΈ° μν΄ κ³μΈ΅ ꡬ쑰λ₯Ό νν
always-intern.tistory.com
4. λ°λ³΅μ ν¨ν΄
μ κ·Ό κΈ°λ₯κ³Ό μλ£κ΅¬μ‘°λ₯Ό λΆλ¦¬μμΌμ κ°μ²΄ν
https://lktprogrammer.tistory.com/40
08 λ°λ³΅μ ν¨ν΄ (Iterator Pattern)
λ°λ³΅μ ν¨ν΄ (Iterator Pattern) μ κ·ΌκΈ°λ₯κ³Ό μλ£κ΅¬μ‘°λ₯Ό λΆλ¦¬μμΌμ κ°μ²΄νν©λλ€. μλ‘ λ€λ₯Έ ꡬ쑰λ₯Ό κ°μ§κ³ μλ μ μ₯ κ°μ²΄μ λν΄μ μ κ·ΌνκΈ° μν΄μ interfaceλ₯Ό ν΅μΌμν€κ³ μΆμ λ μ¬μ©νλ ν¨ν΄
lktprogrammer.tistory.com
5. μ€μ¬μ ν¨ν΄
λͺ¨λ ν΄λμ€ κ°μ 볡μ‘ν λ‘μ§(μνΈμμ©)μ μΊ‘μννμ¬ νλμ ν΄λμ€μ μμνμ¬ μ²λ¦¬νλ ν¨ν΄μ΄λ€.
μ€μ¬μ ν¨ν΄(Mediator Pattern)
μ€μ¬μ ν¨ν΄(Mediator Pattern) λͺ¨λ ν΄λμ€κ°μ 볡μ‘ν λ‘μ§(μνΈμμ©)μ μΊ‘μννμ¬ νλμ ν΄λμ€μ μμνμ¬ μ²λ¦¬νλ ν¨ν΄μ΄λ€. μ¦, M:Nμ κ΄κ³μμ M:1μ κ΄κ³λ‘ 볡μ‘λλ₯Ό λ¨μ΄λ¨λ € μ μ§ λ³΄μ
www.crocus.co.kr
6. λ©λ©ν ν¨ν΄
κ°μ²΄λ₯Ό μ΄μ μνλ‘ λλ릴 μ μλ κΈ°λ₯μ μ 곡νλ μννΈμ¨μ΄ λμμΈ ν¨ν΄μ΄λ€. (λ‘€λ°±μ ν΅ν μ€ν μ·¨μ)
https://lktprogrammer.tistory.com/65
14 λ©λ©ν ν¨ν΄ (Memento Pattern)
λ©λ©ν ν¨ν΄ (Memento Pattern) λ©λ©ν ν¨ν΄μ κ°μ²΄μ μν μ 보λ₯Ό μ μ₯νκ³ μ¬μ©μμ νμμ μνμ¬ μνλ μμ μ λ°μ΄ν°λ₯Ό 볡μ ν μ μλ ν¨ν΄μ μλ―Έν©λλ€. β λ©λ©ν ν¨ν΄ μμ ꡬ쑰 βΆ μ€μ
lktprogrammer.tistory.com
7. μ΅μλ² ν¨ν΄
μ΅μλ²λ€μ λͺ©λ‘μ κ°μ²΄μ λ±λ‘νμ¬ μν λ³νκ° μμ λλ§λ€ λ©μλ λ±μ ν΅ν΄ κ°μ²΄κ° μ§μ λͺ©λ‘μ κ° μ΅μλ²μκ² ν΅μ§νλλ‘ νλ λμμΈ ν¨ν΄
https://pjh3749.tistory.com/266
[λμμΈν¨ν΄] μ΅μ λ² ν¨ν΄ (Observer Pattern) μμ£Ό κ°λ¨νκ² μ 리ν΄λ³΄κΈ°
μ΅μ λ² ν¨ν΄μ΄λ? μ΅μ λ²λ μ€νν¬λννΈ νλ‘ν μ€μ μ λμΌλ‘ μ λ€μ κ΄μ°°νκΈ° μν΄ νμν μ λμ΄λ€. ν λμ μμ νμ μ λμ΄λ©° μ΅μ λ² ν¨ν΄(observer pattern)μ κ°μ²΄μ μν λ³νλ₯Ό κ΄μ°°νλ κ΄
pjh3749.tistory.com
8. μν ν¨ν΄
λμΌν λ©μλκ° μνμ λ°λΌ λ€λ₯΄κ² λμν λ μ¬μ©ν μ μλ ν¨ν΄
https://ko.wikipedia.org/wiki/%EC%83%81%ED%83%9C_%ED%8C%A8%ED%84%B4
μν ν¨ν΄ - μν€λ°±κ³Ό, μ°λ¦¬ λͺ¨λμ λ°±κ³Όμ¬μ
ko.wikipedia.org
9. μ λ΅ ν¨ν΄
κ°μ²΄λ€μ΄ ν μ μλ νμ κ°κ°μ λν΄ μ λ΅ ν΄λμ€λ₯Ό μμ±νκ³ , μ μ¬ν νμλ€μ μΊ‘μννλ μΈν°νμ΄μ€λ₯Ό μ μνμ¬,
κ°μ²΄μ νμλ₯Ό λμ μΌλ‘ λ°κΎΈκ³ μΆμ κ²½μ° μ§μ νμλ₯Ό μμ νμ§ μκ³ μ λ΅μ λ°κΏμ£ΌκΈ°λ§ ν¨μΌλ‘μ¨ νμλ₯Ό μ μ°νκ² νμ₯νλ λ°©λ²
https://victorydntmd.tistory.com/292
[λμμΈν¨ν΄] μ λ΅ ν¨ν΄ ( Strategy Pattern )
μ λ΅ ν¨ν΄ ( Strategy Pattern ) κ°μ²΄λ€μ΄ ν μ μλ νμ κ°κ°μ λν΄ μ λ΅ ν΄λμ€λ₯Ό μμ±νκ³ , μ μ¬ν νμλ€μ μΊ‘μν νλ μΈν°νμ΄μ€λ₯Ό μ μνμ¬, κ°μ²΄μ νμλ₯Ό λμ μΌλ‘ λ°κΎΈκ³ μΆμ κ²½μ°
victorydntmd.tistory.com
10. ν νλ¦Ώ λ©μλ ν¨ν΄
λμ μμ μκ³ λ¦¬μ¦μ νλ‘κ·Έλ¨ λΌλλ₯Ό μ μνλ νμ λμμΈ ν¨ν΄
https://gmlwjd9405.github.io/2018/07/13/template-method-pattern.html
[Design Pattern] ν νλ¦Ώ λ©μλ ν¨ν΄μ΄λ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
11. λΉμ§ν° ν¨ν΄
μκ³ λ¦¬μ¦μ κ°μ²΄ ꡬ쑰μμ λΆλ¦¬μν€λ λμμΈ ν¨ν΄
https://dailyheumsi.tistory.com/216
[αα ΅αα ‘αα ΅α« αα ’αα ₯α« 15αα §α«] νλ ν¨ν΄, λ°©λ¬Έμ (Visitor)
1. κ°λ λΉμ§ν° ν¨ν΄μ λ°©λ¬Έμμ λ°©λ¬Έ 곡κ°μ λΆλ¦¬νμ¬, λ°©λ¬Έ 곡κ°μ΄ λ°©λ¬Έμλ₯Ό λ§μ΄ν λ, μ΄νμ λν νλμ λ°©λ¬Έμμκ² μμνλ ν¨ν΄μ΄λ€. κ°λ¨νκ² μ€λͺ νκΈ° μ°Έ μ΄λ €μ΄ ν¨ν΄μ΄λ€. λ³΄ν΅ OOPμ
dailyheumsi.tistory.com
... λκ° μ΄λ κ² λ§μ κ±°μΌ...
νλνλ 곡λΆνλ©΄μ μ 볡ν μκ°μ λ무 λ€λ¬λ€..γ γ
MVC, MVP, MVVM κ°λ μ΅νκ³ μμ± ν¨ν΄, ꡬ쑰 ν¨ν΄, νμ ν¨ν΄ νμ΅ν΄μΌκ² λ€.