
1๏ธโฃ ์์ฑํจํด (5)
๊ธฐ์กด ์ฝ๋์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ ์ฆ๊ฐ์ํค๋ ๋ค์ํ ๊ฐ์ฒด ์์ฑ ๋ฉ์ปค๋์ฆ๋ค์ ์ ๊ณตํ๋ ํจํด
์ถ์ ํฉํ ๋ฆฌ Abstract Factory

- ์ธํฐํ์ด์ค๋ก ์๋ก ๊ด๋ จ๋ ๊ฐ์ฒด ํจ๋ฐ๋ฆฌ ์์ฑ
- ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ธํฐํ์ด์ค๋ก ์ ๊ณต
- ๊ตฌ์ฒด์ ํด๋์ค ์์กด ์์ด ๊ฐ์ฒด ์์ฑ.
ํฉํ ๋ฆฌ ๋ฉ์๋ Factory Method

- ์์์์ ๊ฐ์ฒด ์ธํฐํ์ด์ค ์ ์ํ๊ณ ํ์์์ ์ธ์คํด์ค ์์ฑ
- ์ค๋ฒ๋ก๋ฉํ์ฌ ๊ฐ์ฒด ์์ฑ ํด๋์ค ๋ถ๋ฆฌ
- Virtual-Constructor ํจํด๊ณผ ๋์ผ
๋น๋ Builder

- ๋ณต์กํ ๊ฐ์ฒด ์์ฑ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์ฒ๋ฆฌ
- ๋ค์ํ ํํ์ ๊ฐ๋ ๊ฐ์ฒด ์์ฑ ๊ฐ๋ฅ
- ๋ณต์กํ ์์ฑ ๊ณผ์ ์ ํตํ ์ ์ง๋ณด์์ฑ ๋ฐ ํ์ฅ์ฑ ํฅ์.
ํ๋กํ ํ์ Prototype

- ๊ธฐ์กด ๊ฐ์ฒด ๋ณต์ ๋ฅผ ํตํด ์๋ก์ด ๊ฐ์ฒด ์์ฑ
- ํ๋กํ ํ์ ์์ฑ ํ ์ธ์คํด์ค ๋ณต์
์ฑ๊ธํค Singleton

- ๋จ์ผ ์ธ์คํด์ค ์์ฑ ๋ณด์ฅ
- ์ ์ญ ์ ๊ทผ ๊ฐ๋ฅ
2๏ธโฃ ๊ตฌ์กฐ ํจํด (7)
๊ฐ์ฒด๋ค๊ณผ ํด๋์ค์ ๊ตฌ์กฐ๋ฅผ ์ ์ฐํ๊ณ ํจ์จ์ ์ผ๋ก ์ ์งํ๋ฉด์ ๋ ํฐ ๊ตฌ์กฐ๋ก ์กฐ๋ฆฝํ๋ ํจํด
์ด๋ํฐ Adapter

- ํธํ๋์ง ์๋ ์ธํฐํ์ด์ค ํตํฉ
- ํ์ํ ์ธํฐํ์ด์ค๋ก ๋ณํ ๋ฐ ์ฌ์ฌ์ฉ
- ์ธํฐํ์ด์ค ํธํ์ฑ ๋ฌธ์ ํด๊ฒฐ
๋ธ๋ฆฌ์ง Bridge

- ์ถ์ํ์ ๊ตฌํ ๋ถ๋ฆฌ
- ๋ ํด๋์ค ๊ณ์ธต ๋ถ๋ฆฌ๋ก ํ์ฅ ์ฉ์ด์ฑ
๋ฐ์ฝ๋ ์ดํฐ Decorator

- ๊ฐ์ฒด์ ๊ทธ๋๊ทธ๋ ๋์ ๊ธฐ๋ฅ ์ถ๊ฐ
- ์์ ์์ด ๊ธฐ๋ฅ ์ ์ฐํ๊ฒ ํ์ฅ
- ํน์ ๋ํผ ๊ฐ์ฒด๋ฅผ ์ฐ๊ฒฐ
ํ์ฌ๋ Facade

- ๋ณต์กํ ์์คํ ๋จ์ํ
- ๋จ์ผ ์ธํฐํ์ด์ค๋ก ์๋ธ ์์คํ ๊ด๋ฆฌ
๋ณตํฉ์ฒด Composite

- ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ฐ์ฒด ๊ตฌ์ฑ
- ๊ฐ๋ณ ๋ฐ ์กฐํฉ ๊ฐ์ฒด ์ผ๊ด ์ฒ๋ฆฌ
ํ๋ผ์ด์จ์ดํธ Flyweight

- ๊ฐ์ฒด ๊ณต์ ๋ก ๋ฉ๋ชจ๋ฆฌ(RAM) ์ ์ฝ
- ์์ํฌ๊ธฐ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ๊ฐ ์๋ ๊ฒฝ์ฐ
ํ๋ก์ Proxy

- ํ๋ก์ ๊ฐ์ฒด๋ก ๋๋ฆฌ ์ญํ
- ๊ฐ์ฒด ์ ๊ทผ ์ ์ด ๋ฐ ์ค๊ฐ
- ๋์ฒด ํน์ ์๋ฆฌํ์์ ์ ๊ณต
3๏ธโฃ ํ์ ํจํด (11)
์๊ณ ๋ฆฌ์ฆ๋ค ๋ฐ ๊ฐ์ฒด ๊ฐ์ ์ฑ ์ ํ ๋น๊ณผ ๊ด๋ จ๋ ํจํด
์ฑ ์์ฐ์ Chain of Responsibility

- ์์ฒญ์ ๋ํ ๊ธฐ๋ฅ ์ฒ๋ฆฌ์ ์ฐ๊ฒฐ
- ์์ฐจ์ ์์ฒญ ์ ๋ฌ ๊ฒฐ์
์ต์ ๋ฒ Observer

- ๊ฐ์ฒด ์ํ ๋ณ๊ฒฝ ๊ด์ฐฐํ๊ณ ์๋ ์๋ฆผ
- ์ผ๋๋ค ์์กด ๊ด๊ณ
์ปค๋งจ๋ Command

- ์์ฒญ์ ๊ฐ์ฒด๋ก ์บก์ํ
- ์์ฒญ์์ ์ฒ๋ฆฌ์ ๊ฐ๊ฐ ๋ ๋ฆฝ์
์ํ State

- ๊ฐ์ฒด ์ํ๋ฅผ ์บก์ํ
- ์์์ฝ๋ ์์ ์ต์ํ
๋ฐ๋ณต์ Iterator

- ์ปฌ๋ ์ ์์ ์์ฐจ ์ ๊ทผ ๋ฐ ์ฒ๋ฆฌ
- ๋ด๋ถ๊ตฌ์กฐ ๋ ธ์ถ X
์ ๋ต Strategy

- ์๊ณ ๋ฆฌ์ฆ ์บก์ํ ๋ฐ ์ ํ์ ์คํ
- ๋ ์๊ณ ๋ฆฌ์ฆ์์ ์ ํํ ๋ ์ ํฉ
์ค์ฌ์ Mediator

- ๊ฐ์ฒด ๊ฐ ์ํธ ์์ฉ ์ค์ ์ง์ค ๊ด๋ฆฌ
- ์์กด๊ด๊ณ ์ค์ด๊ณ ์ฝ๊ฒ ํ๋ ฅํ๋๋ก ํจ
ํ ํ๋ฆฟ ๋ฉ์๋ Template Method

- ์๊ณ ๋ฆฌ์ฆ ํต์ฌ ๊ตฌ์กฐ ์ ์ง
- ํ์(์๋ธ) ํด๋์ค์์ ๊ตฌํ ์ค๋ฒ๋ผ์ด๋
๋ฉ๋ฉํ Memento

- ๊ฐ์ฒด ์ด์ ์ํ ์ ์ฅ ๋ฐ ๋ณต์
- ์์ ์ทจ์ undo ์์ฒญ
๋น์งํฐ Visitor

- ๊ฐ์ฒด ๊ตฌ์กฐ ๋ณ๊ฒฝ ์์ด ์ ์ฐ์ฐ ์ถ๊ฐ
- ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฆฌ
- ๋์๋ค๋๋ฉฐ ์์ ์ํ
์ธํฐํ๋ฆฌํฐ Interpreter
- ๋ฌธ๋ฒ ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์ฅ ํด์
๋น์ถ๋๋ ๋์์ธ ํจํด ์ํ ๋ง์ง๋ง ๋จ๊ณ์์ ํค์๋ ๋จ์๋ก ํ์ตํ์๊ณ
๋ ์์ธํ ๋ด์ฉ์ ๋ณด๊ณ ์ถ์ผ๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
* ํฌ์คํ ์ด๋ฏธ์ง๋ refactoring.guru ๋์ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์์ต๋๋ค.
๋์์ธ ํจํด ๋ชฉ๋ก
refactoring.guru