GoF์ ๋์์ธ ํจํด, ์ค์ฌ์ ํจํด์ ๋ํด ์์๋ณธ๋ค.
ํด๋น ๊ธ์, ๋ค์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ฝ
- ๊ฐ์ฒด๋ค ๊ฐ์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ์ค์ฌ์๋ผ๋ ๊ฒ์ ๋์ด ๋งค์ฐ ํจ๊ณผ์ ์ผ๋ก ๋จ์ํ์ํจ๋ค.
์์
- ์์ด์ปจ, ๋ฌธ, ์ฐฝ๋ฌธ, ๋ณด์ผ๋ฌ๊ฐ ์๋ค๊ณ ํ์.
- ๋ฌธ, ์ฐฝ๋ฌธ์ด ์ด๋ ค ์๋ค๋ฉด ๋ซ๊ณ ์์ด์ปจ์ ํ์ด์ผ ํ๋ค.
- ๋ณด์ผ๋ฌ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ๋ฌธ, ์ฐฝ๋ฌธ์ ๋ซ๊ณ ํ์ด์ผ ํ๋ค.
- ํ๊ธฐ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ๋ฌธ, ์ฐฝ๋ฌธ์ ๋๋ค ์ด์ด์ผ ํ๋ค.
- ์ด๋ ๊ฒ ๊ฐ์ฒด๊ฐ์ ์ฐ๊ฒฐ๋ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ, ์ํ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋ค.
- ์ด๋ด ๊ฒฝ์ฐ ๊ฐ์ฒด๋ค ์ฌ์ด์ ์ค์ฌ์๋ฅผ ๋์ด, ํด๋น ๊ฐ์ฒด๋ก๋ง ์์ฒญ์ ํ๋๋ก ํ์ฌ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ค.
Code
- ์ฝ๋๋ฅผ github์ ์ฌ๋ ค๋์์ผ๋, ํฌ๊ฒ ๋์๋์ง ์๋ ๊ฒ ๊ฐ์ ์ฒจ๋ถํ์ง ์๋๋ค.
- ๊ถ๊ธํ๋ค๋ฉด ์ฐพ์๊ฐ๋ณด์.
- ๋ค๋ง, ํด๋น ์ฝ๋๋ ์ ๋ง ์ข์ง ์๋ค.
ํ์ฉ์ฑ
- ์ค์ ๋ก ๋ง๋ค์ด๋ณด๋ ํฌ๊ฒ ๋์์ด ์๋๋ ๊ฒ ๊ฐ๋ค.
์๊ฐํด๋ณผ ์
- ์ปคํ๋ง์ด ๋๋ฌด ์ฌํด์ง๋ค. (init์์ ๋ฐ์)
- ํน์ ํจ์์์ ํ๋์ด์์ ๋์(mediator๋ก ์ ๋ฌ)์ ํ๊ฒ ๋๋, ๋์์ ์ดํดํ๊ธฐ ์ฝ์ง ์๋ค.
- ๋ฌดํ ๋ฃจํ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
- ํด๋น ํจํด์ ์ค๊ฐ์๋ฅผ ๋์ด ์ฑ ์์ ๋๋๋ค๋ ๊ฒ์ ๋ฐฉ์ ์ ๋๋ฉด ์ข์ผ๋,
- ๊ตฌํ ๋ฐฉ์์ ์์ ๊ฐ์ด ํ๋ฉด ๋งํ๋ค. ์ ๋ ํ์ง ๋ง์.
- ๋จ๋ฐฉํฅ ํ๋ฆ์ด ์ ์ผ ์ข๋ค.