1. ๋ณต์กํ ์ธ์คํด์ค๋ฅผ ์กฐ๋ฆฝํ์ฌ ๋ง๋๋ ๊ตฌ์กฐ๋ก, ๋ณตํฉ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ(๊ณผ์ )๊ณผ ๊ฐ์ฒด๋ฅผ ๊ตฌํ(ํํ)ํ๋ ๋ฐฉ๋ฒ์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋์ผํ ์์ฑ ์ ์ฐจ์์ ์๋ก ๋ค๋ฅธ ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋ ๋์์ธ ํจํด
(์์ฑํจํด) Builder
2. ์์ ํด๋์ค์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ , ํ์ ํด๋์ค์์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก, ์์ ํด๋์ค์์๋ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ง ๊ฒฐ์ ํ๊ณ , ํ์ ํด๋์ค์์ ๊ทธ ๋ฐ์ดํฐ์ ์์ฑ์ ์ฑ ์์ง๊ณ ์กฐ์ํ๋ ํจ์๋ค์ ์ค๋ฒ๋ก๋ฉํ์ฌ ์ธํฐํ์ด์ค์ ์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ ํน์ฑ์ ๊ฐ๋ ๋์์ธ ํจํด
(์์ฑํจํด) Factory Method
3. ๊ธฐ๋ฅ์ ํด๋์ค ๊ณ์ธต๊ณผ ๊ตฌํ์ ํด๋์ค ๊ณ์ธต์ ์ฐ๊ฒฐํ๊ณ , ๊ตฌํ๋ถ์์ ์ถ์ ๊ณ์ธต์ ๋ถ๋ฆฌํ์ฌ ์ถ์ํ๋ ๋ถ๋ถ๊ณผ ์ค์ ๊ตฌํ ๋ถ๋ถ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์๋ ๋์์ธ ํจํด
(๊ตฌ์กฐํจํด) Bridge
4. ๊ตฌ์ฒด์ ์ธ ํด๋์ค์ ์์กดํ์ง ์๊ณ ์๋ก ์ฐ๊ด๋๊ฑฐ๋ ์์กด์ ์ธ ๊ฐ์ฒด๋ค์ ์กฐํฉ์ ๋ง๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ํจํด์ผ๋ก ์ด ํจํด์ ํตํด ์์ฑ๋ ํด๋์ค์์๋ ์ฌ์ฉ์์๊ฒ ์ธํฐํ์ด์ค(API)๋ฅผ ์ ๊ณตํ๊ณ , ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ Concrete Product ํด๋์ค์์ ์ด๋ฃจ์ด์ง๋ ํน์ง์ ๊ฐ๋ ๋์์ธ ํจํด
(์์ฑํจํด) Abstract Factory
5. ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ฐ์ฒด๋ฅผ ํ๋๋ง ์์ฑํ๋๋ก ํ๋ฉฐ, ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ด๋์์๋ ์ง ์ฐธ์กฐํ ์ ์๋๋ก ํ๋ ๋์์ธ ํจํด
(์์ฑํจํด) Singleton
6. ๊ธฐ์กด ์์ฑ๋ ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ฐ์์ ๋ง์ถฐ์ฃผ๋ ์ญํ ์ ํ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ํจํด์ผ๋ก, ์์์ ์ด์ฉํ๋ ํด๋์ค ํจํด๊ณผ ์์์ ์ด์ฉํ๋ ์ธ์คํด์ค ํจํด์ ๋ ๊ฐ์ง ํํ๋ก ์ฌ์ฉ๋๋ ๋์์ธ ํจํด
(๊ตฌ์กฐํจํด) Adapter
7. ๊ฐ์ฒด๋ค์ ๊ด๊ณ๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ์ฌ ๋ถ๋ถ-์ ์ฒด ๊ณ์ธต์ ํํํ๋ ํจํด์ผ๋ก, ์ฌ์ฉ์๊ฐ ๋จ์ผ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด ๋ชจ๋ ๋์ผํ๊ฒ ๋ค๋ฃจ๋๋ก ํ๋ ๋์์ธ ํจํด
(๊ตฌ์กฐํจํด) Composite
8. ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฐ๋๋ฉด ๊ทธ ๊ฐ์ฒด์ ์์กดํ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋คํํ ์ฐ๋ฝ์ด ๊ฐ๊ณ ์๋์ผ๋ก ๋ด์ฉ์ด ๊ฐฑ์ ๋๋ ๋ฐฉ๋ฒ์ผ๋ก ์ผ๋๋ค ์์กด์ฑ์ ๊ฐ์ง๋ ๋์์ธ ํจํด๊ณผ ์๋ก ์ํธ์์ฉ์ ํ๋ ๊ฐ์ฒด ์ฌ์ด์์๋ ๊ฐ๋ฅํ๋ฉด ๋์จํ๊ฒ ๊ฒฐํฉํ๋ ๋์์ธ ํจํด
(ํ์ํจํด) Observer
9. ์ฒ์๋ถ์ฒ ์ผ๋ฐ์ ์ธ ์ํ์ ๋ง๋ค์ด ๋๊ณ , ๊ทธ๊ฒ์ ๋ณต์ฌํ ํ ํ์ํ ๋ถ๋ถ๋ง ์์ ํ์ฌ ์ฌ์ฉํ๋ ํจํด์ผ๋ก, ์์ฑํ ๊ฐ์ฒด์ ์ํ์ ์ ๊ณตํ๋ ์ธ์คํด์ค์์ ์์ฑํ ๊ฐ์ฒด๋ค์ ํ์ ์ด ๊ฒฐ์ ๋๋๋ก ์ค์ ํ๋ฉฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ฐ์ถ์ด์ผ ํ ๊ธฐ๋ณธ ํํ๊ฐ ์์ ๋ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด
(์์ฑํจํด) Prototype
10. ๊ฐ์ฒด ์ํ๋ฅผ ์บก์ํํ์ฌ ํด๋์คํ ํจ์ผ๋ก์จ ๊ทธ๊ฒ์ ์ฐธ์กฐํ๊ฒ ํ๋ ๋ฐฉ์์ผ๋ก ์ํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ฌ, ๋ณ๊ฒฝ ์ ์์ ์ฝ๋์ ์์ ์ ์ต์ํํ ์ ์๊ณ , ์ ์ง ๋ณด์์ ํธ์์ฑ๋ ๊ฐ๋ ๋์์ธ ํจํด
(ํ์ํจํด) State
11. ๊ธฐ์กด์ ๊ตฌํ๋์ด ์๋ ํด๋์ค์ ๊ทธ๋๊ทธ๋ ํ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด ๋๊ฐ๋ ์ค๊ณ ํจํด์ผ๋ก ๊ธฐ๋ฅ ํ์ฅ์ด ํ์ํ ๋ ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ์ ํตํด ๊ธฐ๋ฅ์ ๋์ ์ผ๋ก ์ ์ฐํ๊ฒ ํ์ฅํ ์ ์๊ฒ ํด์ฃผ์ด ์์์ ๋์์ผ๋ก ์ฌ์ฉํ๋ ๋์์ธ ํจํด
(๊ตฌ์กฐํจํด) Decorator
12. ์ปฌ๋ ์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋ ธ์ถ์ํค์ง ์์ผ๋ฉด์๋ ๊ทธ ์งํฉ์ฒด ์์ ๋ค์ด์๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๋์์ธ ํจํด
(ํ์ํจํด) Iterator
13. ์๊ณ ๋ฆฌ์ฆ ๊ตฐ์ ์ ์ํ๊ณ (์ถ์ ํด๋์ค) ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๊ฐ ํ๋์ ํด๋์ค๋ก ์บก์ํํ๊ณ ๋ ๋ค, ํ์ํ ๋ ์๋ก ๊ตํํด์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ํจํด์ผ๋ก, ํ์๋ฅผ ํด๋์ค๋ก ์บก์ํํด ๋์ ์ผ๋ก ํ์๋ฅผ ์์ ๋กญ๊ฒ ๋ฐ๊ฟ ์ ์๊ฒ ํด์ฃผ๋ ํจํด
(ํ์ํจํด) Strategy
14. ์ด๋ค ์์ ์ ์ฒ๋ฆฌํ๋ ์ผ๋ถ๋ถ์ ์๋ธ ํด๋์ค๋ก ์บก์ํํด ์ ์ฒด ์ผ์ ์ํํ๋ ๊ตฌ์กฐ๋ ๋ฐ๊พธ์ง ์์ผ๋ฉด์ ํน์ ๋จ๊ณ์์ ์ํํ๋ ๋ด์ญ์ ๋ฐ๊พธ๋ ํจํด์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์์ ํด๋์ค(์ถ์ ํด๋์ค)์๋ ์ถ์ ๋ฉ์๋๋ฅผ ํตํด ๊ธฐ๋ฅ์ ๊ณจ๊ฒฉ์ ์ ๊ณตํ๊ณ , ํ์ ํด๋์ค(๊ตฌ์ฒด ํด๋์ค)์ ๋ฉ์๋์๋ ์ธ๋ถ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฒดํํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ฝ๋์์ ์ค์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ๋ง๋๋ ํน์ง์ ๊ฐ๋ ํจํด
(ํ์ํจํด) Template Method
15. ํด๋์ค ์ค๊ณ ๊ด์ ์์ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์ ๋ ์ ์ฉํ๋ ๋์์ธ ํจํด์ผ๋ก undo ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ํจํด
(ํ์ํจํด) Memento
16. ๋ณต์กํ ์์คํ ์ ๋ํ์ฌ ๋จ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์์คํ ๊ฐ, ๋๋ ์ฌํ ์์คํ ๊ณผ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ์ด ์์คํ ๊ตฌ์กฐ์ ๋ํ ํ์ ์ ์ฝ๊ฒ ํ๋ ํจํด์ด๋ค. ์ค๋ฅ์ ๋ํด์ ๋จ์๋ณ๋ก ํ์ธํ ์ ์๊ฒ ํ๋ฉฐ, ์ฌ์ฉ์์ ์ธก๋ฉด์์ ๋จ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ ๊ทผ์ฑ์ ๋์ผ ์ ์๋ ๋์์ธ ํจํด
(๊ตฌ์กฐํจํด) Facade
17. ๊ฐ ํด๋์ค ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก๋ถํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๋ณ๋์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋๊ณ ํด๋น ํด๋์ค์ ๋ฉ์๋๊ฐ ๊ฐ ํด๋์ค๋ฅผ ๋์๋ค๋๋ฉฐ ํน์ ์์ ์ ์ํํ๋๋ก ๋ง๋๋ ํจํด์ผ๋ก, ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ๊ธฐ๋ฅ๋ง ๋ฐ๋ก ์ถ๊ฐํ๊ฑฐ๋ ํ์ฅํ ๋ ์ฌ์ฉํ๋ ๋์์ธ ํจํด
(ํ์ํจํด) Visitor
18. ๊ฐ์ฒด์งํฅ ์ค๊ณ์์ ๊ฐ์ฒด์ ์๊ฐ ๋๋ฌด ๋ง์์ง๋ฉด ์๋ก ํต์ ํ๋๋ผ ๋ณต์กํด์ ธ ๊ฐ์ฒด์งํฅ์์ ๊ฐ์ฅ ์ค์ํ ๋์จํ ๊ฒฐํฉ์ ํน์ฑ์ ํด์น ์ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ค๊ฐ์ ์ด๋ฅผ ํต์ ํ๊ณ ์ง์ํ ์ ์๋ ์ญํ ์ ํ๋ ์ค์ฌ์๋ฅผ ๋๊ณ , ์ค์ฌ์์๊ฒ ๋ชจ๋ ๊ฒ์ ์๊ตฌํ์ฌ ํต์ ์ ๋น๋์๋ฅผ ์ค์ฌ ๊ฐ์ฒด์งํฅ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ฒ ํด์ฃผ๋ ๋์์ธ ํจํด
(ํ์ํจํด) Mediator
19. '์ค์ ๊ฐ์ฒด์ ๋ํ ๋๋ฆฌ ๊ฐ์ฒด'๋ก ์ค์ ๊ฐ์ฒด์ ๋ํ ์ ๊ทผ ์ด์ ์ ํ์ํ ํ๋์ ์ทจํ ์ ์๊ฒ ๋ง๋ค๋ฉฐ, ์ด ์ ์ ์ด์ฉํด ๋ฏธ๋ฆฌ ํ ๋นํ์ง ์์๋ ์๊ด์๋ ๊ฒ๋ค์ ์ค์ ์ด์ฉํ ๋ ํ ๋นํ๊ฒ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ์๋ ์ ์์ผ๋ฉฐ, ์ค์ ๊ฐ์ฒด๋ฅผ ๋ค์ด๋์ง ์๊ฒ ํ์ฌ ์ ๋ณด์๋์ ์ญํ ๋ ์ํํ๋ ํจํด
(๊ตฌ์กฐํจํด) Proxy
20. ์คํ๋ ๊ธฐ๋ฅ์ ์บก์ํํจ์ผ๋ก์จ ์ฃผ์ด์ง ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์คํํ ์ ์๋ ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ํด๋์ค๋ฅผ ์ค๊ณํ๋ ํจํด์ผ๋ก ํ๋์ ์ถ์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ๊ฐ ๋ช ๋ น์ด ๋ค์ด์ค๋ฉด ๊ทธ์ ๋ง๋ ์๋ธํด๋์ค๊ฐ ์ ํ๋์ด ์คํ๋๋ ํน์ง์ ๊ฐ๋ ๋์์ธ ํจํด
(ํ์ํจํด) Command
21. ์ธ์ด์ ๋ค์ํ ํด์, ๊ตฌ์ฒด์ ์ผ๋ก ๊ตฌ๋ฌธ์ ๋๋๊ณ ๊ทธ ๋ถ๋ฆฌ๋ ๊ตฌ๋ฌธ์ ํด์์ ๋งก๋ ํด๋์ค๋ฅผ ๊ฐ๊ฐ ์์ฑํ์ฌ ์ฌ๋ฌ ํํ์ ์ธ์ด ๊ตฌ๋ฌธ์ ํด์ํ ์ ์๊ฒ ๋ง๋๋ ํจํด
(ํ์ํจํด) Interpreter
22. ์ ์ ์ผ๋ก ์ด๋ค ๊ธฐ๋ฅ์ ๋ํ ์ฒ๋ฆฌ์ ์ฐ๊ฒฐ์ด ํ๋์ฝ๋ฉ ๋์ด ์์ ์, ๊ธฐ๋ฅ ์ฒ๋ฆฌ์ ์ฐ๊ฒฐ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ฐ ์ด๋ฅผ ๋์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ์ ์๋๋ก ์ฐ๊ฒฐํ ํจํด
(ํ์ํจํด) Chain of Responsibility
23. ๋ค์์ ๊ฐ์ฒด๋ก ์์ฑ๋ ๊ฒฝ์ฐ ๋ชจ๋๊ฐ ๊ฐ๋ ๋ณธ์ง์ ์ธ ์์๋ฅผ ํด๋์คํํด ๊ณต์ ํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๊ณ ,'ํด๋์ค์ ๊ฒฝํฅํ'๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ ํจํด
(๊ตฌ์กฐํจํด) Flyweight
'Computer Science ๐ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ์ฒ๊ธฐ] ์ํ์ฅ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ณผ ๊ฒ ๐ซต (1) | 2024.07.23 |
---|---|
[์ ์ฒ๊ธฐ] ์ ์ฒ๊ธฐ ์ค๊ธฐ ํต์ฌ ํค์๋ (0) | 2024.07.22 |