๋์์ธ ํจํด
[Design Pattern] ๋์์ธ ํจํด ์๊ฐ (์ถ์ฒ ๋์ ํฌํจ)
[Design Pattern] ๋์์ธ ํจํด ์๊ฐ (์ถ์ฒ ๋์ ํฌํจ)
2019.10.06๋์์ธ ํจํด(Design Pattern)?? ๋์์ธ ํจํด์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์
จ๋์? ๋จ์ด๋ง ๋ดค์ ๋์๋ ๋์์ธ ๊ด๋ ค๋ ๋ํธ ํจํด ๊ฐ์ ๋๋์ด ๋ค์ง ์๋์? ํ๋ก๊ทธ๋๋ฐ์์์ ๋์์ธ ํจํด์ด๋ ๊ตฌ์กฐ ์ค๊ณ์ ๊ดํ ์๊ธฐ์
๋๋ค. ๋ฌผ๋ก , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์๊ด ์์ด ๋ชจ๋ ์ ์ฉ๋๋ ๊ฐ๋
์
๋๋ค. ๋์์ธ ํจํด์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ๋ ์์ฃผ ๋ฐ์ํ๋ ๋ฐ๋ณต์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ์ผ๋ก, ๊ณผ๊ฑฐ์ ๋ฐ๊ฒฌ๋ ์ค๊ณ์ ๊ดํ ๋
ธํ์ฐ์ ์ด๋ฆ์ ๋ถ์ฌ ์ฌ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ. ์ฆ, ์ค๊ณ์ ๊ดํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋์์ธ ํจํด '์ด๋ฆ'๋ง์ผ๋ก ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ฅญํ ์์ฌ์ํต์ด ๋๋ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, A ๊ฐ๋ฐ์๊ฐ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๊ณต์ ํด์ผ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋๋ฐ ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผ..
[Design Pattern] MVC(Model-View-Controller) ํจํด ์ด์ผ๊ธฐ #2 (์์ ํฌํจ)
[Design Pattern] MVC(Model-View-Controller) ํจํด ์ด์ผ๊ธฐ #2 (์์ ํฌํจ)
2019.10.01์ง๋ ํฌ์คํ
์์ MVC ํจํด์ ๋ํด ์๊ฐ๋ฅผ ํ์์ต๋๋ค. [Design Pattern] MVC(Model-View-Controller) ํจํด ์ด์ผ๊ธฐ #1 ์ด๋ฒ ํฌ์คํ
์์๋ MVC ํจํด์ ์ ์ฉํ ์ํผ(WinForm) ์์ ๋ฅผ ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค. MVC ํจํด์ ์ ์ฉํ ์ ํ๋ฒํธ๋ถ ํ๋ก๊ทธ๋จ ์ด์ ํฌ์คํ
์์ MVC ํจํด์ ๋ํ ์ด๋ก ์ ์ธ ์ค๋ช
์ด ์์์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์ ํ๋ ๋ถ๋ค์๊ฒ๋ ๊ฐ๋
์ ์ผ๋ก ์ดํด๊ฐ ์ ๋์ง ์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค. ์ ์ค๋ช
์ด ๋ถ์กฑํ ์ ๋ ์์ง๋ง, ๋ฌด์๋ณด๋ค ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ดํด๊ฐ ๋์ฑ ์ฌ์ธ ๊ฑฐ๋ผ ์๊ฐํ์ฌ ์์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์์ต๋๋ค. ์์ ์ฝ๋๋ '์ ํ๋ฒํธ๋ถ'๋ฅผ ์์๋ก ์์ฑํ์ต๋๋ค. ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๊ณ , ์กฐํํ๊ณ , ์ ๊ฑฐํ๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์
๋๋ค. ์ฆ, ๋ฐ์ดํฐ์ ์ถ๊ฐ์ ์ ๊ฑฐ, ๊ฐฑ์ ์ด ์ด๋ฃจ์ด์ง๋๋ฐ ..
[Design Pattern] MVC(Model-View-Controller) ํจํด ์ด์ผ๊ธฐ #1
[Design Pattern] MVC(Model-View-Controller) ํจํด ์ด์ผ๊ธฐ #1
2019.09.27MVC ํจํด์ ํ์์ฑ ๋์์ธ ํจํด์ ์๊ธฐ ์ ์๋ ํ๋์ ํด๋์ค ์์ ์จ๊ฐ ์ฝ๋๊ฐ ์กด์ฌํ์์ต๋๋ค. ๊ธฐ๋ฅ๋ณ๋ก ๊ทธ๋ฆฌ๊ณ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์๋ฌด๋ฆฌ ๋ชจ๋ํ ํ์๋ค๊ณ ํ๋ค, ์๋ฅผ ๋ค์ด ๋ฒํผ ์ปจํธ๋กค์ ์ด๋ฒคํธ์, ์จ๊ฐ ๋ชจ๋๋ค์ด ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ ์ง์ ๋ถํ ์ฝ๋๋ก ๊ฐ๋ํ์ต๋๋ค. ์ด๋ฌํ ์ฝ๋๋ ๊ฐ๋ฐ์ ๋ณธ์ธ์ด ์ ์ง๋ณด์ํ๊ธฐ์๋ ๋ณต์กํ๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ํฌ์
๋๋ฉด ๋ถ์ํ๊ธฐ๊ฐ ์ด๋ ต๊ณ ์ ์ง๋ณด์ ํ๊ธฐ์ ์ ๋ง ๋ง๋งํด์ง ๊ฒ์
๋๋ค. ํ์ง๋ง MVC ํจํด์ด ์ ์ฉ๋๋ฉด ์ด๋จ๊น์? ์ฐ์ MVC ํจํด์ ๋ํด ๊ฐ๋จํ ์์ฝํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค. Model: ์ดํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ, ์๋ฃ๋ฅผ ์๋ฏธํฉ๋๋ค. View: ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ๋ถ๋ถ, ์ฆ ์ ์ ์ธํฐํ์ด์ค(User interface)๋ฅผ ์๋ฏธํฉ๋๋ค. Controller: Model๊ณผ View์ฌ์ด๋ฅผ ์ด์ด์ฃผ๋ ๋ธ๋ฆฟ์ง(Br..
[Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ #2 (์์ ํฌํจ)
[Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ #2 (์์ ํฌํจ)
2019.09.23์ง๋ ํฌ์คํ
์์ ์ต์ ๋ฒ ํจํด(Observer Pattern)์ ๋ํด ์ค๋ช
ํ์์ต๋๋ค. [Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ (์์ ํฌํจ) [Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ #1 (์์ ํฌํจ) ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ต์ ๋ฒ ํจํด์ ๊ด์ฐฐ์ ํจํด์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ์ผ๋๋ค ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์์ผ๋ฉฐ, ์ํ๊ฐ ์
๋ฐ์ดํธ๋๋ฉด ๋ชจ๋ ์ต์ ๋ฒ๋ค์๊ฒ ์ ๋ณด๋ฅผ ๊ฐฑ์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ข ๋ ์ดํดํ.. luckygg.tistory.com ๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด, ์ฃผ์ ์(Subject)์ ๊ตฌ๋
์(Observer)๊ฐ ๋ฑ๋ก(Register)๋์ด ๋ชจ๋ ๊ตฌ๋
์๊ฐ ๊ฐ์ ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธ(Notify)๋ฐ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฃผ..
[Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ #1 (์์ ํฌํจ)
[Design Pattern] ์ต์ ๋ฒ ํจํด(Observer Pattern) ์ด์ผ๊ธฐ #1 (์์ ํฌํจ)
2019.09.12์ต์ ๋ฒ ํจํด(Observer Pattern) ์ต์ ๋ฒ ํจํด์ ๊ด์ฐฐ์ ํจํด์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ์ผ๋๋ค ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์์ผ๋ฉฐ, ์ํ๊ฐ ์
๋ฐ์ดํธ๋๋ฉด ๋ชจ๋ ์ต์ ๋ฒ๋ค์๊ฒ ์ ๋ณด๋ฅผ ๊ฐฑ์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ข ๋ ์ดํดํ๊ธฐ ์ฌ์ด ์์๋ฅผ ๋ค์ด๋ณผ๊น์? (์์ ์ฝ๋๋ ๋ณธ๋ฌธ ํ๋จ์ ์ฒจ๋ถ๋์ด ์์ต๋๋ค.) ์์ 1. ์ ํ๋ธ ๊ตฌ๋
์๋ ์ฒ ์(Observer)๊ฐ ์ฝ๋ฉ ๊ณต๋ถ๋ฅผ ์ํด ์ ํ๋ธ์์ ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จ ์์์ ์ฐพ๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Luckygg(Subject)๋ผ๋ ์ฌ๋์ ์ฑ๋์ ์ข์ ์์๋ค์ด ์๋ ๊ฒ์ ์๊ฒ ๋์ต๋๋ค. ํ๋ ๋ ๊ฐ์ ๋ ์์๋ค์ ๋ณด๊ฒ ๋๋ค๊ฐ ์ด๋์ ๋ชจ๋ ์์๋ค์ ๋ณด๊ฒ ๋์ต๋๋ค. ์ด์ ์๋ก์ด ์์์ด ์
๋ฐ์ดํธ๋๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์์์ด ์ธ์ ์ฌ๋ผ์ฌ ์ค ์๊ณ ๋ง๋ฅ ๊ธฐ๋ค๋ฆด๊น์? ์ด๋, ์ฑ..