์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๋์์ธ ํจํด ๋จ๋ตํ ๋ฌธ์ ์ด์ ๋ฆฌ
- -
Q) ๋ณต์กํ ์ธ์คํด์ค๋ฅผ ์กฐ๋ฆฝํ์ฌ ๋ง๋๋ ๊ตฌ์กฐ๋ก, ๋ณตํฉ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ(๊ณผ์ )๊ณผ ๊ฐ์ฒด๋ฅผ ๊ตฌํ(ํํ) ํ๋ ๋ฐฉ๋ฒ์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋์ผํ ์์ฑ ์ ์ฐจ์์ ์๋ก ๋ค๋ฅธ ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋ ๋์์ธ ํจํด
Builder
Q) ์์ ํด๋์ค์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ , ํ์ ํด๋์ค์์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก, ์์ ํด๋์ค์์๋ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ง ๊ฒฐ์ ํ๊ณ , ํ์ ํด๋์ค์์ ๊ทธ ๋ฐ์ดํฐ์ ์์ฑ์ ์ฑ ์์ง๊ณ ์กฐ์ํ๋ ํจ์๋ค์ ์ค๋ฒ๋ก๋ฉํ์ฌ ์ธํฐํ์ด์ค์ ์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ ํน์ฑ์ ๊ฐ๋ ๋์์ธ ํจํด
Factory Method
Q) ๊ธฐ๋ฅ์ ํด๋์ค ๊ณ์ธต๊ณผ ๊ตฌํ์ ํด๋์ค ๊ณ์ธต์ ์ฐ๊ฒฐํ๊ณ , ๊ตฌํ๋ถ์์ ์ถ์ ๊ณ์ธต์ ๋ถ๋ฆฌํ์ฌ ์ถ์ํ๋ ๋ถ๋ถ๊ณผ ์ค์ ๊ตฌํ ๋ถ๋ถ์ ๋
๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์๋ ๋์์ธ ํจํด
Bridge
Q) ๊ตฌ์ ์ ์ธ ํด๋์ค์ ์์กดํ์ง ์๊ณ ์๋ก ์ฐ๊ด๋๊ฑฐ๋ ์์กด์ ์ธ ๊ฐ์ฒด๋ค์ ์กฐํฉ์ ๋ง๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ํจํด์ผ๋ก ์ด ํจํด์ ํตํด ์์ฑ๋ ํด๋์ค์์๋ ์ฌ์ฉ์์๊ฒ ์ธํฐํ์ด์ค(API)๋ฅผ ์ ๊ณตํ๊ณ , ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ concrete Product ํด๋์ค์์ ์ด๋ฃจ์ด์ง๋ ํน์ง์ ๊ฐ๋ ๋์์ธ ํจํด
Abstract Factory
Q) ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ฐ์ฒด๋ฅผ ํ๋๋ง ์์ฑํ๋๋ก ํ๋ฉฐ, ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ด๋์์๋ ์ง ์ฐธ์กฐํ ์ ์๋๋ก ํ๋ ๋์์ธ ํจํด
Singleton
Q) ๊ธฐ์กด ์์ฑ๋ ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ฐ์์ ๋ง์ถฐ์ฃผ๋ ์ญํ ์ ํ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ํจํด์ผ๋ก, ์์์ ์ด์ฉํ๋ ํด๋์ค ํจํด๊ณผ ์์์ ์ด์ฉํ๋ ์ธ์คํด์ค ํจํด์ ๋ ๊ฐ์ง ํํ๋ก ์ฌ์ฉ๋๋ ๋์์ธ ํจํด
Adapter
Q) ๊ฐ์ฒด๋ค์ ๊ด๊ณ๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ์ฌ ๋ถ๋ถ-์ ์ฒด ๊ณ์ธต์ ํํํ๋ ํจํด์ผ๋ก, ์ฌ์ฉ์๊ฐ ๋จ์ผ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด ๋ชจ๋ ๋์ผํ๊ฒ ๋ค๋ฃจ๋๋ก ํ๋ ๋์์ธ ํจํด
Composite
Q) ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฐ๋๋ฉด ๊ทธ ๊ฐ์ฒด์ ์์กดํ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋คํํ
์ฐ๋ฝ์ด ๊ฐ๊ณ ์๋์ผ๋ก ๋ด์ฉ์ด ๊ฐฑ์ ๋๋ ๋ฐฉ๋ฒ์ผ๋ก ์ผ๋๋ค ์์กด์ฑ์ ๊ฐ์ง๋ ๋์์ธ ํจํด๊ณผ ์๋ก ์ํธ์์ฉ์ ํ๋ ๊ฐ์ฒด ์ฌ์ด์์๋ ๊ฐ๋ฅํ๋ฉด ๋์จํ๊ฒ ๊ฒฐํฉํ๋ ๋์์ธํจํด
Observer
Q) ์ฒ์๋ถํฐ ์ผ๋ฐ์ ์ธ ์ํ์ ๋ง๋ค์ด ๋๊ณ , ๊ทธ๊ฒ์ ๋ณต์ฌํ ํ ํ์ํ ๋ถ๋ถ๋ง ์์ ํ์ฌ ์ฌ์ฉํ๋ ํจํด์ผ๋ก, ์์ฑํ ๊ฐ์ฒด์ ์ํ์ ์ ๊ณตํ๋ ์ธ์คํด์ค์์ ์์ฑํ ๊ฐ์ฒด๋ค์ ํ์
์ด ๊ฒฐ์ ๋๋๋ก ์ค์ ํ๋ฉฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ฐ์ถ์ด์ผ ํ ๊ธฐ๋ณธ ํํ๊ฐ ์์ ๋ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด
Prototype
Q) ๊ฐ์ฒด ์ํ๋ฅผ ์บก์ํํ์ฌ ํด๋์คํ ํจ์ผ๋ก์จ ๊ทธ๊ฒ์ ์ฐธ์กฐํ๊ฒ ํ๋ ๋ฐฉ์์ผ๋ก ์ํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ฌ, ๋ณ๊ฒฝ ์ ์์ ์ฝ๋์ ์์ ์ ์ต์ํํ ์ ์๊ณ , ์ ์ง ๋ณด์์ ํธ์์ฑ๋ ๊ฐ๋ ๋์์ธ ํจํด
State
Q) ๊ธฐ์กด์ ๊ตฌํ๋์ด ์๋ ํด๋์ค์ ๊ทธ๋๊ทธ๋ ํ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด ๋๊ฐ๋ ์ค๊ณ ํจํด์ผ๋ก ๊ธฐ๋ฅ ํ์ฅ์ด ํ์ํ ๋ ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ์ ํตํด ๊ธฐ๋ฅ์ ๋์ ์ผ๋ก ์ ์ฐํ๊ฒ ํ์ฅํ ์ ์๊ฒ ํด์ฃผ์ด ์์์ ๋์์ผ๋ก ์ฌ์ฉํ๋ ๋์์ธ ํจํด
Decorator
Q) ์ปฌ๋ ์
๊ตฌํ ๋ฐฉ๋ฒ์ ๋
ธ์ถ์ํค์ง ์์ผ๋ฉด์๋ ๊ทธ ์งํฉ์ฒด ์์ ๋ค์ด์๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๋์์ธ ํจํด
Iterator
Q) ์๊ณ ๋ฆฌ์ฆ ๊ตฐ์ ์ ์ํ๊ณ (์ถ์ ํด๋์ค) ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๊ฐ ํ๋์ ํด๋์ค๋ก ์บก์ํํ๊ณ ๋ ๋ค, ํ์ํ ๋ ์๋ก ๊ตํํด์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ํจํด์ผ๋ก, ํ์๋ฅผ ํด๋์ค๋ก ์บก์ํํด ๋์ ์ผ๋ก ํ์๋ฅผ ์์ ๋กญ๊ฒ ๋ฐ๊ฟ ์ ์๊ฒ ํด์ฃผ๋ ํจํด
Strategy
Q) ์ด๋ค ์์
์ ์ฒ๋ฆฌํ๋ ์ผ๋ถ๋ถ์ ์๋ธ ํด๋์ค๋ก ์บก์ํํด ์ ์ฒด ์ผ์ ์ํํ๋ ๊ตฌ์กฐ๋ ๋ฐ๊พธ์ง ์์ผ๋ฉด์ ํน์ ๋จ๊ณ์์ ์ํํ๋ ๋ด์ญ์ ๋ฐ๊พธ๋ ํจํด์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์์ ํด๋์ค(์ถ์ ํด๋์ค)์๋ ์ถ์ ๋ฉ์๋๋ฅผ ํตํด ๊ธฐ๋ฅ์ ๊ณจ๊ฒฉ์ ์ ๊ณตํ๊ณ , ํ์ ํด๋์ค(๊ตฌ์ฒด ํด๋์ค)์ ๋ฉ์๋์๋ ์ธ๋ถ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฒดํํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ฝ๋ ์์ ์ค์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ๋ง๋๋ ํน์ง์ ๊ฐ๋ ํจํด
Template Method
Q) ํด๋์ค ์ค๊ณ ๊ด์ ์์ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์ ๋ ์ ์ฉํ๋ ๋์์ธ ํจํด์ผ๋ก undo ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ํจํด
Memento
Q) ๋ณต์กํ ์์คํ
์ ๋ํ์ฌ ๋จ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์์คํ
๊ฐ, ๋๋ ์ฌํ ์์คํ
๊ณผ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ์ด ์์คํ
๊ตฌ์กฐ์ ๋ํ ํ์
์ ์ฝ๊ฒ ํ๋ ํจํด์ด๋ค. ์ค๋ฅ์ ๋ํด์ ๋จ์๋ณ๋ก ํ์ธํ ์ ์๊ฒ ํ๋ฉฐ, ์ฌ์ฉ์์ ์ธก๋ฉด์์ ๋จ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ ๊ทผ์ฑ์ ๋์ผ ์ ์๋ ๋์์ธ ํจํด
Facade
Q) ๊ฐ ํด๋์ค ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก๋ถํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๋ณ๋์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋๊ณ ํด๋น ํด๋์ค์ ๋ฉ์๋๊ฐ ๊ฐ ํด๋์ค๋ฅผ ๋์๋ค๋๋ฉฐ ํน์ ์์
์ ์ํํ๋๋ก ๋ง๋๋ ํจํด์ผ๋ก, ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ๊ธฐ๋ฅ๋ง ๋ฐ๋ก ์ถ๊ฐํ๊ฑฐ๋ ํ์ฅํ ๋ ์ฌ์ฉํ๋ ๋์์ธ ํจํด
Visitor
Q) ๊ฐ์ฒด์งํฅ ์ค๊ณ์์ ๊ฐ์ฒด์ ์๊ฐ ๋๋ฌด ๋ง์์ง๋ฉด ์๋ก ํต์ ํ๋๋ผ ๋ณต์กํด์ ธ ๊ฐ์ฒด์งํฅ์์ ๊ฐ์ฅ ์ค์ํ ๋์จํ ๊ฒฐํฉ์ ํน์ฑ์ ํด์น ์ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ค๊ฐ์ ์ด๋ฅผ ํต์ ํ๊ณ ์ง์ํ ์ ์๋ ์ญํ ์ ํ๋ ์ค์ฌ์๋ฅผ ๋๊ณ , ์ค์ฌ์์๊ฒ ๋ชจ๋ ๊ฒ์ ์๊ตฌํ์ฌ ํต์ ์ ๋น๋์๋ฅผ ์ค์ฌ ๊ฐ์ฒด์งํฅ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ฒ ํด์ฃผ๋ ๋์์ธ ํจํด
Mediator
Q) '์ค์ฒด ๊ฐ์ฒด์ ๋ํ ๋๋ฆฌ ๊ฐ์ฒด'๋ก ์ค์ฒด ๊ฐ์ฒด์ ๋ํ ์ ๊ทผ ์ด์ ์ ํ์ํ ํ๋์ ์ทจํ ์ ์๊ฒ ๋ง๋ค๋ฉฐ, ์ด ์ ์ ์ด์ฉํด ๋ฏธ๋ฆฌ ํ ๋นํ์ง ์์๋ ์๊ด์๋ ๊ฒ๋ค์ ์ค์ ์ด์ฉํ ๋ ํ ๋นํ๊ฒ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ์๋ ์ ์์ผ๋ฉฐ, ์ค์ฒด ๊ฐ์ฒด๋ฅผ ๋๋ฌ๋์ง ์๊ฒ ํ์ฌ ์ ๋ณด์๋์ ์ญํ ๋ ์ํํ๋ ํจํด
Proxy
Q) ์คํ๋ ๊ธฐ๋ฅ์ ์บก์ํํจ์ผ๋ก์จ ์ฃผ์ด์ง ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์คํํ ์ ์๋ ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ํด๋์ค๋ฅผ ์ค๊ณํ๋ ํจํด์ผ๋ก ํ๋์ ์ถ์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ๊ฐ ๋ช
๋ น์ด ๋ค์ด์ค๋ฉด ๊ทธ์ ๋ง๋ ์๋ธํด๋์ค๊ฐ ์ ํ๋์ด ์คํ๋๋ ํน์ง์ ๊ฐ๋ ๋์์ธ ํจํด
Command
Q) ์ธ์ด์ ๋ค์ํ ํด์, ๊ตฌ์ฒด์ ์ผ๋ก ๊ตฌ๋ฌธ์ ๋๋๊ณ ๊ทธ ๋ถ๋ฆฌ๋ ๊ตฌ๋ฌธ์ ํด์์ ๋งก๋ ํด๋์ค๋ฅผ ๊ฐ๊ฐ ์์ฑํ์ฌ ์ฌ๋ฌ ํํ์ ์ธ์ด ๊ตฌ๋ฌธ์ ํด์ํ ์ ์๊ฒ ๋ง๋๋ ํจํด
Interpreter
Q) ์ ์ ์ผ๋ก ์ด๋ค ๊ธฐ๋ฅ์ ๋ํ ์ฒ๋ฆฌ์ ์ฐ๊ฒฐ์ด ํ๋์ฝ๋ฉ ๋์ด ์์ ์, ๊ธฐ๋ฅ ์ฒ๋ฆฌ์ ์ฐ๊ฒฐ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ฐ ์ด๋ฅผ ๋์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ์ ์๋๋ก ์ฐ๊ฒฐํ ํจํด
Chain Of Responsibility
Q) ๋ค์์ ๊ฐ์ฒด๋ก ์์ฑ๋ ๊ฒฝ์ฐ ๋ชจ๋๊ฐ ๊ฐ๋ ๋ณธ์ง์ ์ธ ์์๋ฅผ ํด๋์คํ์ฌ ๊ณต์ ํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๊ณ , 'ํด๋์ค์ ๊ฒฝ๋ํ'๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ ํจํด
flyweight
'License > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
2020๋ 1ํ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ๊ธฐ์ถ๋ฌธ์ ๋ณต์ 2021.07.09
-
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ๊ณต๊ฒฉ๊ธฐ๋ฒ ๋จ๋ตํ ๋ฌธ์ ์ด์ ๋ฆฌ 2021.07.08
-
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ์์ฝ: ์ฝ์ ํ ๋ฐ ๋จ๋ตํ ๋๋น ์ฉ์ด์ ๋ฆฌ [3] 2021.07.07
-
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ์์ฝ: ์ฝ์ ํ ๋ฐ ๋จ๋ตํ ๋๋น ์ฉ์ด์ ๋ฆฌ [2] 2021.07.07
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค