๋ชฉ์ฐจ
11. ์ํํธ์จ์ด ์ค๊ณ ๋ชจ๋ธ๋ง
์์ : ํฐ ๊ฐ๋ , ํ์ : ๊ตฌ์ฒด์ ์ผ๋ก
์ํํธ์จ์ด ์์ ์ค๊ณ์ ์ํ์ง ์๋ ๊ฒ์?
-> ์ํคํ
์ณ ์ค๊ณ, ๋ชจ๋ ์ค๊ณ, ์ธํฐํ์ด์ค ์ค๊ณ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ค๊ณ
๊ตฌ์กฐ ๋ชจ๋ธ๋ง, ํ์ ๋ชจ๋ธ๋ง
์ํํธ์จ์ด ๊ตฌ์กฐ๋
๊ตฌ์กฐ ์ค๊ณ : ์ํํธ์จ์ด ์ค๊ณ ๋ฐฉ๋ฒ ์ค ๊ธฐ๋ฅ์ ๊ด์ ์ผ๋ก ์ํํธ์จ์ด์ ์๊ตฌ๋ ๊ธฐ๋ฅ์ด๋ ์๋ฃ ์ฒ๋ฆฌ ๊ณผ์ , ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ์ค์ฌ์ผ๋ก ์์คํ ์ ๋๋ ์ค๊ณํ๋ ๋ฐฉ์
<-> ํ์ ์ค๊ณ
์ฝ๋์ ๊ธฐ๋ฅ
์ฐ์ฐ : ์ด ์ฝ๋๋ฅผ ๋ณด๊ณ ๋์ฅ๊ณ ์ ์ฝ๋๋ผ๋ฉด Ref๋ก ์์ํ๋ ๊ฒ
์ฝ๋ ์ค๊ณ์ ๋ชฉ์ : ๊ณ ์ ์ฑ, ๋ถ๋ฅ ํธ์์ฑ
์ฝ๋์ ์ข ๋ฅ
- ์์ฐจ์ฝ๋
- ๋ธ๋ก ์ฝ๋
- ๊ทธ๋ฃน ๋ถ๋ฅ์ ์ฝ๋ : ๋, ์ค , ์๋ถ๋ฅ
ํ์ ์ซ์ ์ฝ๋(์ ํจ ์ซ์ ์ฝ๋)
์ฝ๋์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ผ๋ก ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ๊ฒ์?
-> ๋ณต์ก์ฑ, ํ์คํ, ๋ถ๋ฅ, ์๋ณ
์ฝ๋ ์ค๊ณ์์ ์ผ์ ํ ์ผ๋ จ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ ์ฝ๋๋?
-> ์์ฐจ ์ฝ๋
์ฝ๋ ๊ธฐ์ ๊ณผ์ ์์ "2006"์ผ๋ก ํ๊ธฐํด์ผํ๋๋ฐ "2060"์ด๋ผ๊ณ ํ๊ธฐํ์์ ๋์ ์ค๋ฅ๋?
-> transposition error
๋ค์์ ์ฝ๋ ์ค๊ณ ๋จ๊ณ ์ค ๊ฐ์ฅ ๋จผ์ ํํ๋ ๊ฒ์?
1. ์ฝ๋ ๋์ ํญ๋ชฉ ์ ์
2. ์ฌ์ฉ ๋ฒ์์ ๊ธฐ๊ฐ์ ๊ฒฐ์
3. ์ฝ๋ ๋ถ์ฌ ๋ฐฉ์ ๊ฒฐ์
4. ์ฝ๋ ๋ชฉ์ ์ ๋ช ํํ
๊ตฌ์กฐ์ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
๊ตฌ์กฐ์ ๋ถ์
** ์๋ฃ ํ๋ฆ๋, ์๋ฃ ์ฌ์ , ์๋จ์ ๋ช ์ธ
๊ตฌ์กฐ์ ๋ถ์ ๋๊ตฌ
- ์๋ฃ ํ๋ฆ๋ : ๋ฒ๋ธ ์ฐจํธ
โญ๏ธ๋ฐ์ดํฐ(์๋ฃ) ํ๋ฆ๋
์๋จ์ ๋ช ์ธ์ == ํ๋ก์ธ์ค ๋ช ์ธ์
์๋จ์ ๋ช ์ธ์ : ๊ตฌ์กฐ์ ์ค๊ณ์์ ์ธ๋ถํ๋ ์๋ฃ ํ๋ฆ๋์์ ์ตํ์ ๋จ๊ณ ํ๋ก์ธ์ค์ ์ฒ๋ฆฌ ์ ์ฐจ๋ฅผ ์ค๋ช ํ ๊ฒ
์๋ฃ ์ฌ์
12. ๋ชจ๋
์ฌ์ฌ์ฉ ๊ฐ๋ฅ, ์์ฒด ์ ์ผ๋ก ์ปดํ์ผ ๊ฐ๋ฅ
๋ชจ๋์ ๋ ๋ฆฝ์ฑ์ ๊ฒฐํฉ๋์ ์์ง๋์ ์ํด ์ธก์ ๋๋ค.
๊ฒฐํฉ๋(coupling)
๊ฒฐํฉ๋๋ ๋ฎ์์๋ก ์ข๋ค
์๋ฃ ๊ฒฐํฉ๋๊ฐ ๊ฒฐํฉ๋๊ฐ ๊ฐ์ฅ ์ฝํ๋ค.
์คํฌํ ๊ฒฐํฉ๋
์ ์ด ๊ฒฐํฉ๋
์ธ๋ถ ๊ฒฐํฉ๋
๊ณตํต ๊ฒฐํฉ๋
๋ด์ฉ ๊ฒฐํฉ๋ : ๊ฐ์ฅ ๊ฒฐํฉ๋๊ฐ ๋๋ค.
์์ ๊ธฐ์ตํ๊ธฐ! : ์์ค์ ์ธ๊ณต๋ด
์ด๋ค ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ๋ด๋ถ ๋ ผ๋ฆฌ ์กฐ์ง์ ์ ์ดํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ ์ด ์ ํธ๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ์ด๋ฉฐ, ํ์ ๋ชจ๋์์ ์์ ๋ชจ๋๋ก ์ ์ด ์ ํธ๊ฐ ์ด๋ํ์ฌ ์์ ๋ชจ๋์๊ฒ ์ฒ๋ฆฌ ๋ช ๋ น์ ๋ถ์ฌํ๋ ๊ถ๋ฆฌ ์ ๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋๋ ๊ฒฐํฉ๋๋?
-> ์ ์ด ๊ฒฐํฉ๋
์์ง๋
์์ง๋๋ ๋์์๋ก ์ข๋ค.
๊ธฐ๋ฅ์ ์์ง๋ : ์์ง๋ ๊ฐํจ
์์ฐจ์ ์์ง๋
๊ตํ์ ์์ง๋
์ ์ฐจ์ ์์ง๋
์๊ฐ์ ์์ง๋
๋ ผ๋ฆฌ์ ์์ง๋
์ฐ์ฐ์ ์์ง๋
์์ง๋์ ์ค๋ฅ ์ค ์๋ก ๊ฐ์ ์ด๋ ํ ์๋ฏธ ์๋ ์ฐ๊ด ๊ด๊ณ๋ ์ง๋์ง ์์ ๊ธฐ๋ฅ ์์๋ก ๊ตฌ์ฑ๋๋ ๊ฒฝ์๋ฉฐ, ์๋ก ๋ค๋ฅธ ์์ ๋ชจ๋์ ์ํด ํธ์ถ๋์ด ์ฒ๋ฆฌ ์์ ์ฐ๊ด์ฑ์ด ์๋ ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฒฝ์ฐ์ ์์ง๋ : ์ฐ์ฐ์ ์์ง๋
๋ชจ๋์ ์ค๊ณ์ ํน์ง
์์ง๋(๋ชจ๋ ๋ด ์์๊ฐ์ ๊ด๋ จ์ฑ)๋ ๊ฐํ๊ฒ, ๊ฒฐํฉ๋(a, b ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ์ฌ๋)๋ ์ฝํ๊ฒ -> ๋ชจ๋์ ๋ ๋ฆฝ์ฑ ํ๋ณด!
๋ต์ 1๋ฒ
1. ์๋ฃ ๊ตฌ์กฐ ํํ -> ์คํฌํ
๋ชจ๋๊ณผ ์ปดํฌ๋ํธ
์ปดํฌ๋ํธ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋๋ค.
๊ณตํต ๋ชจ๋์ ๋ช ์ธ ๊ธฐ๋ฒ ์ค ํด๋น ๊ธฐ๋ฅ์ ๋ํด ์ผ๊ด๋๊ฒ ์ดํด๋๊ณ ํ ๊ฐ์ง๋ก ํด์๋ ์ ์๋๋ก ์์ฑํ๋ ์์น์?
-> ๋ช ๋ฃ์ฑ
ns ๋ํ
๋ํ(์ฌ๊ฐํ, ์ผ๊ฐํ์ผ๋ก ํํ)
13. ์ํํธ์จ์ด ์ํคํ ์ณ
์ํํธ์จ์ด ์ํคํ ์ณ ์์คํ ํ์ง ์์ฑ
- ์ฑ๋ฅ, ์ฌ์ฉ ์ด์ฉ์ฑ, ๋ณด์์ฑ, ์ํ ์ฉ์ด์ฑ, ๊ฐ์ฉ์ฑ, ๋ณ๊ฒฝ ์ฉ์ด์ฑ, ์ฌ์ฉ์ฑ
์ํคํ ์ฒ ํ๋ ์์ํฌ ๊ตฌ์ฑ ์์
- ํ๋ ์ ์ํฌ : ๊ธฐ๋ณธ ๊ตฌ์กฐ
ํ๋ ์์ํฌ ๊ตฌ์ฑ ์์
์ค๊ณ๋ ์ค๋ช ์, ์ดํด๊ด๊ณ์, ๊ด์ฌ์ฌ, ๊ด์ , ๋ทฐ
โญ๏ธ์ํํธ์จ์ด ์ํคํ ์ฒ 4+1 ๋ทฐ๋ชจ๋ธ(๋ฌด์กฐ๊ฑด ๋์ด)
logical view, implementation view, process view, deployment view, use case view : 5๊ณ์ธต
์ํํธ์จ์ด ์ํคํ ์ณ ์ค๊ณ ์๋ฆฌ
๋จ์์ฑ, ํจ์จ์ฑ, ๋ถํ ๊ณ์ธตํ, ์ถ์ํ, ๋ชจ๋ํ
์ํํธ์จ์ด ์ํคํ ์ณ ํจํด
: ์ํํธ์จ์ด ์ํคํ ์ณ๋ฅผ ์ค๊ณํ๋๋ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ ์ผ๋ฐํ๋๊ณ ์ฌ์ฌ์ฉ๊ฐ๋ฅํ ์๋ฃจ์
- ๊ณ์ธต ํจํด
- mvc ํจํด
model : ํต์ฌ ๊ธฐ๋ฅ + ๋ฐ์ดํฐ
view : ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ํ์ํ๋ค(๋ค์ ๋ทฐ๊ฐ ์ ์๋ ์ ใ )
controller : ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ์ ์ฒ๋ฆฌํจ
- ํด๋ผ์ด์ธํธ ์๋ฒ ํจํด
- ํ์ดํ ํํฐ
๋ ธ๋์ ๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๋ฐ์ดํฐ ํ๋ฆ์ ์์ฑํ๊ณ ์ฒ๋ฆฌํ๋ ์์คํ ์ ์ํ ๊ตฌ์กฐ
ํ์ดํ : ์๋ฃ๋ฅผ ๋ณด๋ด๊ณ , ํํฐ : ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ
๊ฐ ์ฒ๋ฆฌ ๊ณผ์ ์ ํํฐ ์ปดํฌ๋ํธ์์ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ฒ๋ฆฌ๋๋ ๋ฐ์ดํฐ๋ ํ์ดํ๋ฅผ ํตํด ํ๋ฅธ๋ค. ์ด ํ์ดํ๋ ๋ฒํผ๋ง ๋๋ ๋๊ธฐํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์์๋ค.
- peer to peer
๋ถ์ฐ ์ปดํจํ
- ๋ธ๋ก์ปค
์ปดํฌ๋ํธ(๋ธ๋ก์ปค)๊ฐ ์ปดํจํฐ์ ์ฌ์ฉ์๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ
- ๋ธ๋๋ณด๋
- ์ด๋ฒคํธ ๋ฒ์ค ๋ฐฉ์
- ์ธํฐํ๋ฆฌํฐ
15. ๊ฐ์ฒด ์งํฅ ์ค๊ณ
๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ, ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ์ฒด ์งํฅ ๋ถ์
๊ฐ์ฒด ์งํฅ ๊ตฌ์ฑ ์์
- ํด๋์ค : ํ
- ๊ฐ์ฒด : ์ค์ฒด = ๋ณ์
๊ฐ์ฒด ์งํฅ์ ํน์ง
- ์บก์ํ : ์ ๋ณด ์๋
- ์ ๋ณด ์์ : ๊ฐ์ฒด ๋ด๋ถ์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์จ๊ธฐ๊ณ ๊ณต๊ฐ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ ใ
- ์ถ์ํ : ๊ณตํต ์ฑ์ง ์ถ์ถ (๊ธฐ๋ฅ ์ถ์ํ, ์ ์ด ์ถ์ํ, ์๋ฃ ์ถ์ํ)
- ์์์ฑ
- ๋คํ์ฑ
๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ์์์ ๊ด๊ณ์ฑ
- Is member of
- is part of
- is as
๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ์์ ๊ฐ์ฒด๊ฐ ๋ฉ์์ง๋ฅผ ๋ฐ์ ์คํํด์ผํ ๊ฐ์ฒด์ ๊ตฌ์ฒด์ ์ธ ์ฐ์ฐ์ ์ ์ํ ๊ฒ์? methods
์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋น์ฆ๋์ค(์ ๋ฌด)๋ฅผ ๊ฐ์ฒด์ ์์ฑ, ํด๋์ค์ ๋ฉค๋ฒ, ์ ์ฒด์ ๋ถ๋ถ ๋ฑ์ผ๋ก ๋๋์ด์ ๋ถ์ํด๋ด๋ ๊ธฐ๋ฒ : ๊ฐ์ฒด์งํฅ ๊ธฐ๋ฒ
๊ฐ์ฒด ์งํฅ ํ ์คํธ ์ค ๊ตฌ์กฐ์ ๊ธฐ๋ฒ์์์ ๋จ์ ํ ์คํธ์ ๊ฐ์ ๊ฐ๋ ์? ํด๋์ค!
์ค๋ฒ๋ก๋ฉ & ์ค๋ฒ๋ผ์ด๋ฉ
์ค๋ฒ๋ก๋ฉ : ํ ํด๋์ค ๋ด์์ ๋์ผํ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๋ ๊ฒ
์ค๋ฒ๋ผ์ด๋ฉ : ์์์์ ์ฌ์ฉ๋จ. ์์ ํด๋์ค์์ ์ ์ํ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค์์ ์ฌ์ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ
๊ฐ์ฒด ์งํฅ ์ค๊ณ ์์น(SOLID)
- ๋จ์ผ ์ฑ ์์ ์์น : ๋ชจ๋ ํด๋์ค๋ ๋จ์ผ ๋ชฉ์ , ํ๋์ ์ฑ ์
- ๊ฐ๋ฐฉ ํ์์ ์์น : ํ์ฅ์๋ ๊ฐ๋ฐฉ๋๊ณ ์์ ์๋ ํ์์
- ๋ฆฌ์ค์ฝํ์นํ ์์น : ๋ถ๋ชจ ํด๋์ค๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ ์์ ํด๋์ค์ ๋์ฒดํ์ฌ๋ ๊ณํ๋๋ก ์๋ -> ์์๊ด๊ณ์์ ์ฌ์ฉ๋จ
- ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น
- ์์กด ์ญ์ ์์น
๊ฐ์ฒด ์งํฅ ๋ถ์ ๋ฐฉ๋ฒ๋ก
coad์ yourdon ๋ฐฉ๋ฒ : ๊ฐ์ฒด ์งํฅ ๋ถ์ ๋ฐฉ๋ฒ๋ก ์์ e-r ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ํ์๋ฅผ ๋ชจ๋ธ๋ง!
ํ์ฝ์ ์ํ ์ค๊ณ
์ ํ ์กฐ๊ฑด
๊ฒฐ๊ณผ ์กฐ๊ฑด
๋ถ๋ณ ์กฐ๊ฑด
๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ์์ ํด๋์ค๋ค ์ฌ์ด์ ๋ถ๋ถ ์ ์ฒด ๊ด๊ณ ๋๋ ๋ถ๋ถ์ ๊ด๊ณ๋ก ์ค๋ช ๋๋ ์ฐ๊ด์ฑ์?
์ง๋จํ!
16. ๋์์ธ ํจํด
๊ฐ์ ์งํฅ ์ธ์ด์์ ์ฌ์ฉ๋จ
์ ์ฐจํ ์ธ์ด์ ํจ๊ป ์ด์ฉ๋ ๋ ํจ์จ์ด ๊ทน๋ํ? x
- GoF ๋์์ธ ํจํด
์ฌ์ฌ์ฉ์ ๋ํ ์ค๊ณ๋ฅผ ํจํดํ
์์ฑ ํจํด, ๊ตฌ์กฐ ํจํด, ํ์ ํจํด
์์ฑ ํจํด
- ํฉํ ๋ฆฌ ๋ฉ์๋
: ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ฉฐ ์ด๋ค ํด๋์ค๊ฐ ์ธ์คํด์คํ ๋ ๊ฒ์ธ์ง๋ ์๋ธ ํด๋์ค๊ฐ ๊ฒฐ์ ํ๋๋กํ๋ ๊ฒ, virtual constructor ํจํด์ด๋ผ๊ณ ํจ
- ์ฑ๊ธํค
- ํ๋กํ ํ์
- ๋น๋
- ์ถ์ ํฉํ ๋ฆฌ
๊ตฌ์กฐ ํจํด
- ์ด๋ํฐ
- ๋ธ๋ฆฟ์ง
ํ์ ํจํด
- mediator(์ค์ฌ์) : ํต์ ๊ธฐ๋ฅ
์ด๋ํฐ๋ ์๋ก ๋ค๋ฅธ ๊ฒ์ ์ฐ๊ฒฐ
17. ์ธํฐํ์ด์ค ์๊ตฌ ์ฌํญ ํ์ธ
์ธํฐํ์ด์ค ์๊ตฌ ์ฌํญ ๊ฒ์ฆ ๋ฐฉ๋ฒ
๋ถ์ ํ ๊ฒ์ฆ ๋ฐฉ๋ฒ
- ํ๋กํ ํ์ดํ
- ํ ์คํธ ์ค๊ณ
- case :
- ์๊ตฌ ์ฌํญ ๊ฒํ : ๋๋ฃ๊ฒํ , ์ํฌ ์ค๋ก(์งง์ ํ์), ์ธ์คํ์ (์ ๋ฌธ๊ฐ, ๊ฐ์ฌ)
18. ์ธํฐํ์ด์ค ๋์ ์๋ณ
์ธํฐํ์ด์ค ์์คํ ์ ๊ตฌ์ฑ
-์ก์ ์์คํ
-์ค๊ณ ์์คํ
-์์ ์์คํ
์ธํฐํ์ด์ค ์ฐ๊ณ ๊ธฐ์
- db link
- db connection
- api/open api
- jdbc
- hyper link
- socket
์๋ฒ์์ ํต์ ์ ์ํ ์์ผ ์์ฑ, ํฌํธ๋ฅผ ํ ๋นํ ํ ํด๋ผ์ด์ธํธ ํต์ ์์ฒญ ์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํ๋ ๋ฐฉ์
- web service
- ์ฐ๊ณ ์๋ฃจ์
soap : simple object access protocol : ์น ์๋น์ค๋ฅผ ์ค์ ๋ก ์ด์ฉํ๊ธฐ ์ํ ๊ฐ์ฒด ๊ฐ์ ํต์ ๊ท์ฝ
19. ๋ฏธ๋ค์จ์ด ์๋ฃจ์
์ ์ : ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ๋ด๋นํ๋ ์์คํ ์ํํธ์จ์ด
๋ฏธ๋ค์จ์ด ์๋ฃจ์ ์ ์ ํ
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค
- TP-monitor(transaction processtion monitor)
- was : http
๋ฏธ๋ค ์จ์ด ์๋ฃจ์
์ ์ ํ์ ํฌํจ๋์ง ์๋ ๊ฒ์? was, web server, rpc, orb
ํธ๋์ญ์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๊ณ ์๋์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ํ๊ณ ์ ์ดํ๋ ๋ฏธ๋ค์จ์ด๋? tr monitor