Design Pattern
1. ์ ๋ต ํจํด
์๊ณ ๋ฆฌ์ฆ๊ตฐ์ ์ ์ํ๊ณ ์บก์ํํด์ ๊ฐ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ๊ตฐ์ ์์ ํด์ ์ธ ์ ์๊ฒ ํด ์ค๋๋ค.
์ ๋ต ํจํด์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ๋ฆฌํด์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.

2. ์ต์ ๋ฒ ํจํด
ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฐ๋๋ฉด ๊ทธ ๊ฐ์ฒด์ ์์กดํ๋ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์ฐ๋ฝ์ด ๊ฐ๊ณ ์๋์ผ๋ก ๋ด์ฉ์ด ๊ฐฑ์ ๋๋ ๋ฐฉ์์ผ๋ก ์ผ๋๋ค(one-to-many)์์กด์ฑ์ ์ ์ํฉ๋๋ค.

3. ๋ฐ์ฝ๋ ์ดํฐ ํจํด
๊ฐ์ฒด์ ์ถ๊ฐ ์์๋ฅผ ๋์ ์ผ๋ก ๋ํ ์ ์์ต๋๋ค.
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ธํด๋์ค๋ฅผ ๋ง๋ค ๋๋ณด๋ค ํ ์ฌ ์ ์ฐํ๊ฒ ๊ธฐ๋ฅ์ ํ์ํ ์ ์์ต๋๋ค.

4. ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํ์ํ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ง๋ ์๋ธํด๋์ค์์ ๊ฒฐ์ ํฉ๋๋ค. ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ฌ์ฉํ๋ฉด ํด๋์ค ์ธ์คํด์ค ๋ง๋๋ ์ผ์ ์๋ธํด๋์ค์์ ๋งก๊ธฐ๊ฒ ๋ฉ๋๋ค

5. ์ถ์ ํฉํ ๋ฆฌ ํจํด
๊ตฌ์ ํด๋์ค์ ์์กดํ์ง ์๊ณ ๋ ์๋ก ์ฐ๊ด๋๊ฑฐ๋ ์์กด์ ์ธ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ง ์ ํ๊ตฐ์ ์์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ตฌ์ ํด๋์ค๋ ์๋ธํด๋์ค์์ ๋ง๋ญ๋๋ค.

6. ์ฑ๊ธํด ํจํด
ํด๋์ค ์ธ์คํด์ค๋ฅผ ํ๋๋ง ๋ง๋ค๊ณ , ๊ทธ ์ธ์คํด์ค๋ก์ ์ ์ญ ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค.

7. ์ปค๋งจ๋ ํจํด
์ฌ์ฉํ๋ฉด ์์ฒญ ๋ด์ญ์ ๊ฐ์ฒด๋ก ์บก์ํํด์ ๊ฐ์ฒด๋ฅผ ์๋ก ๋ค๋ฅธ ์์ฒญ ๋ด์ญ์ ๋ฐ๋ผ ๋งค๊ฐ๋ณ์ํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ฒญ์ ํ์ ์ ์ฅํ๊ฑฐ๋ ๋ก๊ทธ๋ก ๊ธฐ๋กํ๊ฑฐ๋ ์์ ์ทจ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.

8. ์ด๋ํฐ ํจํด
ํน์ ํด๋์ค ์ธํฐํ์ด์ค๋ฅผ ํด๋ผ์ด์ธํธ์์ ์๊ตฌํ๋ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ก ๋ณํํฉ๋๋ค.
์ธํฐํ์ด์ค๊ฐ ํธํ๋์ง ์์ ๊ฐ์ด ์ธ ์ ์์๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ค๋๋ค.

9. ํผ์ฌ๋ ํจํด
ํด๋ผ์ด์ธํธ์ ๋ด๋ถ ์์คํ ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ์ํํ๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ๋ด๋ถ ์์คํ ์ ๋ณต์กํ ๋์์ ์ ํ์ ์์ด ๋จ์ผ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ํธ์์ฉํ ์ ์๊ฒ ํด์ค๋๋ค.

10. ํ
ํ๋ฆฟ ๋ฉ์๋ ํจํด(Template Method Pattern)
ํน์ ํ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉด์ ๊ฐ ๋จ๊ณ์ ๊ตฌํ์ ์๋ธ ํด๋์ค์๊ฒ ๋งก๊ธฐ๋ ๋ฐฉ์์ผ๋ก, ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ๋ ๊ณตํต์ผ๋ก ์ ์ง๋์ง๋ง ๊ฐ ๋จ๊ณ์ ๊ตฌํ์ ์๋ธ ํด๋์ค์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋๋ก ํฉ๋๋ค.

11. ๋ฐ๋ณต์ ํจํด(Iterator Pattern)
๋ด๋ถ ๊ตฌํ ๋ฐฉ๋ฒ์ ์ธ๋ถ๋ก ๋ ธ์ถํ์ง ์์ผ๋ฉด์ ์งํฉ์ฒด์ ์๋ ๋ชจ๋ ํญ๋ชฉ์ ์ผ์ผ์ด ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ํ ๊ฐ ํญ๋ชฉ์ ์ผ์ผ์ด ์ ๊ทผํ ์ ์๊ฒ ํด ์ฃผ๋ ๊ธฐ๋ฅ์ ์งํฉ์ฒด๊ฐ ์๋ ๋ฐ๋ณต์ ๊ฐ์ฒด๊ฐ ์ฑ ์์ง๋ค๋ ์ฅ์ ๋ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์งํฉ์ฒด ์ธํฐํ์ด์ค์ ๊ตฌํ์ด ๊ฐ๋จํด์ง๊ณ , ๊ฐ์์๊ฒ ์ค์ํ ์ผ๋ง์ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค.

12. ์ปดํฌ์งํธ ํจํด
๊ฐ์ฒด๋ฅผ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํด์ ๋ถ๋ถ-์ ์ฒด ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๊ตฌํฉ๋๋ค. ์ปดํฌ์งํธ ํจํด์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด๋ฅผ ๋๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฃฐ ์ ์์ต๋๋ค.
์ปดํฌ์งํธ ํจํด์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์ ๊ตฌ์ฑ๊ณผ ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ ธ๋๋ก ๊ฐ์ง๋ ํธ๋ฆฌ ํํ์ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ด๋ฐ ๋ณตํฉ ๊ตฌ์กฐ(composite Structure)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณตํฉ ๊ฐ์ฒด์ ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ๋๊ฐ์ ์์ ์ ์ ์ฉํ ์ ์์ต๋๋ค.

13. ์ํ ํจํด(State Pattern)
๊ฐ์ฒด์ ๋ด๋ถ ์ํ๊ฐ ๋ฐ๋์ ๋ฐ๋ผ์ ๊ฐ์ฒด์ ํ๋์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
๋ง์น ๊ฐ์ฒด๊ฐ ๋ฐ๋๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค

14. ํ๋ก์ ํจํด(Proxy Pattern)
ํน์ ๊ฐ์ฒด๋ก์ ์ ๊ทผ์ ์ ์ดํ๋ ๋๋ฆฌ์ธ (ํน์ ๊ฐ์ฒด๋ฅผ ๋๋ณํ๋ ๊ฐ์ฒด)์ ์ ๊ณตํ๋ค.


\
Comming Soon
-----
์ฐธ๊ณ :
์ฑ : ํค๋ ํผ์คํธ ๋์์ธ ํจํด(์๋ฆญ ํ๋ฆฌ๋จผ , ์๋ฆฌ์๋ฒ ์ค ๋กญ์จ , ์ผ์ด์ ์์๋ผ , ๋ฒํธ ๋ฒ ์ด์ธ ์ ์(๊ธ) ยท ์ํ์ ๋ฒ์ญ) ํ๋น๋ฏธ๋์ด
Last updated
Was this helpful?