[12์ฅ] Introduction
- ๊ฐ์ฒด ์ค๊ณ ๊ธฐ์ ๊ณผ UML ํ๊ธฐ๋ฒ ์ง์์ ๋ฐฐ์ด๋ค.
- UP์ ์ง์นจ์ ๋ฐ๋ผ ์๊ตฌ์ฌํญ์ 10%๋ ์ด๊ธฐ์ ์ ์๋์๋ค.
- ์ด์ ํ์
์ ๊ด์ ์์ ๋ฐ๋ณต์ ์ํ ์๋ฃจ์
์ ์ค๊ณํด๋ณด์.
- ์๊ตฌ ์ฌํญ๊ณผ ๊ฐ์ฒด ์งํฅ ๋ถ์์ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ ๋ฐ๋ฉด,
์ค๊ณ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๋ค.
์ ์์ํด๋ณด์!
[13์ฅ] ๋
ผ๋ฆฌ์ ์ํคํ
์ฒ์ UML ํจํค์ง ๋ค์ด์ด๊ทธ๋จ
๋
ผ๋ฆฌ์ ์ํคํ
์ฒ : ์ํํธ์จ์ด๋ฅผ ํด๋์ค, ์๋ธ์์คํ
, ๊ณ์ธต๊ณผ ๊ฐ์ ํฐ ๋จ์๋ก ๊ตฌ์ฑํ๋ค.
(๋ฌผ๋ฆฌ์ ์ธ ๋ฐฐ์น์๋ ๊ด๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋
ผ๋ฆฌ์ ๊ณ์ธต์ด๋ผ ๋ถ๋ฅธ๋ค)
๊ณ์ธต ๊ตฌ์กฐ : ์์คํ
์ ํด๋์ค๋ค์ ๊ณ์ธต์ด๋ผ๋ ์๋ธ ์์คํ
์ผ๋ก ๋ถ๋ฅํ๋ค.
์์ ๊ณ์ธต์ด ํ์ ๊ณ์ธต์ ํธ์ถํ๋ค.
(ex. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ํคํ
์ณ์ ๊ตฌ์กฐ)

๋ํ์ ์ธ ๊ณ์ธต ๊ตฌ์กฐ : OSI 7๊ณ์ธต, DB์ ๊ณ์ธต๊ตฌ์กฐ
ํจํค์ง
- ๋
ผ๋ฆฌ์ ์ํคํ
์ฒ๋ ํจํค์ง ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํํํ๋ค. (ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ ๋, ํจํค์ง ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ๋ค.)
- ํจํค์ง๋ ํ๋์ ๊ณ์ธต์ผ๋ก ํํํ๋ค.
- ํจํค์ง๋ ํด๋์ค, ๋ค๋ฅธ ํจํค์ง, ์ ์ฆ์ผ์ด์ค ๋ฑ ๋ฌด์์ด๋ ์ง ๋ฌถ์ ์ ์๋ค.

์ค์ฒฉ๋ ํจํค์ง์ ์ข
์๊ด๊ณ๋ฅผ ํํ
ํจํค์ง ๊ฐ์ ์์กด ๊ด๊ณ๋ dependency-line์ผ๋ก ํํํ๋ค.

๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
๋ณ๊ฒฝ์ ๋ํ ํ๊ธํจ๊ณผ๋ฅผ ์ค์ด๊ธฐ ์ํด์์ด๋ค.
1, 2๋ฒ์ด ๋ณ๊ฒฝ๋๋ค๊ณ ํด์, 7๋ฒ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋ ์ด์ ๊ฐ ์๋ค. (OSI 7 ๊ณ์ธต ๊ตฌ์กฐ)

DB์ ๊ณ์ธต ์ค๊ณ ๊ตฌ์กฐ
DB๋ ๋ ์ด์ด ํจํด์ ํตํด ์ค๋ณต์ ๊ฑฐ(์ ๊ทํ)์ ๋
๋ฆฝ์ฑ(๊ณ์ธต ๊ฐ ํ๊ธํจ๊ณผ ๋ฐฉ์ง)๊ฐ ์ ์ฉ๋๋ค
๊ณ์ธต ์ค๊ณ๋ฅผ ํตํด ๋
๋ฆฝ์ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด?
- ์์ค์ฝ๋์ ๋ณ๊ฒฝ์ด ์ ์ฒด์ ํ๊ธ๋๋ ๊ฒ์ ๋ฐฉ์ง
- ์ธํฐํ์ด์ค์ ๋ณ๊ฒฝ์ด ์ฌ์์ง
- ๊ธฐ์ ์๋น์ค๋ฅผ ์ฌํ์ฉํ๊ธฐ ์ฌ์์ง
- ๋์ ๊ฒฐํฉ๋ ํด์
- ์์ง๋ ํฅ์
- ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํตํด ํ ๋จ์ ๊ฐ๋ฐ์ด ์ฉ์ดํด์ง

์์ง๋ ฅ ์๋ ์ฑ
์ ๊ตฌ์กฐ (๊ด๋ จ์๋ ๊ฒ๋ผ๋ฆฌ ๋ชจ์)
- UI๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ ๋๋ง ๊ตฌํํ๊ณ ์ด์ก ๊ณ์ฐ์ ํ์ง ์๋๋ค.
- ๊ด์ฌ ๋ถ๋ฆฌ์ ๋์ ์์ง๋๋ฅผ ์ ์งํ๋ค.
- ๋ชจ๋ธ ๋ทฐ ๋ถ๋ฆฌ ์์น(model-view separation)์ ์ ์ฉ

์์ค์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋๋ ์ผ ํ ๊น?
- ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋๋๋ค.
com.mycompany.nextgen.ui.swing
com.mycompany.nextgen.domain.sale
com.mycompany.nextgen.service.db
๋๋ฉ์ธ ๊ฐ์ฒด == ์ดํ๋ฆฌ์ผ์ด์
๋ก์ง ๊ณ์ธต์ด๋ค.
- ๋๋ฉ์ธ์์ ์ฌ์ฉ๋๋ ๊ฐ๋
๋ค์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ์
๋ฌด๋ฅผ ๋๋์ด ์ํํ๋ค (๋๋ฉ์ธ ๊ฐ์ฒด ์์ฑ)
ex.) โSaleโ ๋๋ฉ์ธ ๊ฐ์ฒด โ ํฉ๊ณ๋ฅผ ๊ณ์ฐ
๋ชจ๋ธ ๋ทฐ ๋ถ๋ฆฌ์ ์์น
- logic์ด ๋ค์ด๊ฐ์ง ์๋ ๋ถ๋ถ์ UI๊ฐ ์ฒ๋ฆฌํ๋ค. (ex. ์๋ชป๋ ๊ฐ์ ์
๋ ฅ)
- ์ดํ๋ฆฌ์ผ์ด์
๋ก์ง(๋๋ฉ์ธ ๊ฐ์ฒด)๊ฐ ํด์ผํ๋ ์ผ์ UI์์ ์ํค์ง๋ง๊ณ , ๊ทธ ๋ฐ๋๋ ์์ผ์๋ ์๋๋ค. (์์ ์ ์ผ์ด ์๋ ๋ถ๋ถ์ ์์์ ํตํด ์ํํ๋๋ก ํ๋ค)
- ์๋ก๊ฐ์ ์กด์ฌ๋ฅผ ๋ชฐ๋ผ์ผํ๋ค.

[14์ฅ] ๊ฐ์ฒด ์ค๊ณ๋ก์ ์ ์
์ด์ ๊ธฐ๋ณธ ์ค๊ณ๋ฅผ ํ์ผ๋, ์์ธ ์ค๊ณ๋ฅผ ํด๋ณด์!
๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๊ธฐ ์ํด Agile ๋ชจ๋ธ๋ง ๋๋ UML CASE tool๋ฅผ ์ฌ์ฉํ๋ค.
๋ค์ํ ๊ฐ์ฒด ์ค๊ณ๋ฐฉ๋ฒ
- ์ฝ๋ฉํ๋ฉด์ ๋์ ์ค๊ณ, ๋ฆฌํฉํ ๋ง๊ณผ ๋ณํ
- ๊ทธ๋ฆฌ๊ณ ๋ ํ ์ฝ๋ฉํ๊ธฐ (์น ํ โ CASE tool์ ์ด์ฉ)
์น ํ๊ณผ CASE tool์ ์ํธ ๋ณด์์ ์ธ ๊ด๊ณ์ด๋ค.
โ ๊ทธ๋ฆฌ๊ณ ๋ ํ ์ฝ๋ฉํ๋ ๊ฒ์ด ํฌ์ ๋๋น ํจ์ฉ์ฑ์ด ๊ฐ์ฅ ๋๋ค.

Agile ๋ชจ๋ธ๋ง๊ณผ ๊ฐ๋จํ๊ฒ UML ๊ทธ๋ฆฌ๊ธฐ
- ๋ฌธ์์์ฑ์ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ , ๋ฌธ์ํ๊ฐ ์๋ ์์ฌ์ํต์ด ๋ชฉ์ ์ด๋ค.
- ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ํจ๊ป ์ฌ๋ฌ ๋ชจ๋ธ์ ๋ณ๋ ฌ์ ์ผ๋ก ์์ฑํ๋ค.
- ๋์ค์ ์ธ ํ
์คํธ ๊ธฐ๋ฐ IDE์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๊ฑธ๋ก ์ ํ.
- ํด๋์ค ๋ค์ด์ด๊ทธ๋จ, ์ธํฐ๋ ์
๋ค์ด์ด๊ทธ๋จ, ์ญ๊ณตํ๊น์ง ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ์ ํ
- CASE tool์ ์๋์ ๋ฐ์ ์ ๋ฐ์ํ๊ธด ์ด๋ ค์ฐ๋ฏ๋ก ๋๋ฌด ์์กดํ์ง๋ ๋ง ๊ฒ.
์๊ณตํ๊ณผ ์ญ๊ณตํ
- ์๊ณตํ : ๊ณํ, ๋ถ์, ์ค๊ณ, ๊ฐ๋ฐ, ํ
์คํธ, ์ด์
- ์ญ๊ณตํ : ๋ฐ๋๋ก copy & paste ํ๋ ๊ฒ. (ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ๋ด๋ถ๋ฅผ ๋ฏ์ด ๋ณผ ์ ์๋ค)
์ฝ๋ฉ ์ UML์ ๊ทธ๋ฆฌ๋๋ฐ ์์๋๋ ์ ์ ํ ์๊ฐ์?
- ๋ช์๊ฐ์์ ๊ธธ์ด์ผ ํ๋ฃจ ์์ ๋๋ธ๋ค. (๊ทธ ์ด์์ ๊ธ์ง!)
- ๊ธฐ๋ณธ์ค๊ณ : ๋ถ๋์ด ๋งค์ฐ ์ ๊ณ , ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค.
- ์์ธ ์ค๊ณ : ๋ถ๋์ด ์ง์ง ์์ฒญ ๋ง๊ณ , ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ด ๋์ ์๋ฒฝํ ์์ฑ์ ํ๋ค๋ค.
- ๋ฐ๋ผ์ ์์ธ์ค๊ณ๋ ํ์ํ ๋งํผ ํ์ํ ๋์ ์ํํ๋๋ก ํ๋ค.
- ๊ณ์ ๋์ด๋๋ ํ์ํ ์๊ฐ์ ์ญ๊ณตํ์ ํตํด ๋์ฒดํ๋ค.
- ๋ง์ ์ฐ์ถ๋ฌผ์ด ํ์ํ๋ค๋ฉด ๋ง์ง๋ง ํ๋ฒ์ ๋ฐค์ ์ธ์ ํด๊ฒฐํ๋ค.
์ ์ ๋ชจ๋ธ๋ง๊ณผ ๋์ ๋ชจ๋ธ๋ง์ ์ฐจ์ด
- ๋์ ๋ชจ๋ธ๋ง : ์ธํฐ๋ ์
๋ค์ด์ด๊ทธ๋จ, ๋ก์ง ์ฝ๋์ ํ์ ๋ฉ์๋์ ๋ฐ๋๋ฅผ ์ค๊ณํ๋ค.
- ์ ์ ๋ชจ๋ธ๋ง : ํด๋์ค ๋ค์ด์ด๊ทธ๋จ๊ณผ ๊ฐ์ด ํจํค์ง, ํด๋์ค ์ด๋ฆ ๋ฑ์ ์ค๊ณํ๋ค.

๋์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง
- ๋ง๋ค๊ธฐ๊ฐ ์ด๋ ค์ด ์ธํฐ๋ ์
๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๊ธฐ ์ํด์ ๋ง์ ์๊ฐ์ ํฌ์ํด์ผ ํ๋ค.
- ํฅ๋ฏธ๋กญ๊ณ ์ ์ฉํ ์ค๊ณ ์์
์ ์ธํฐ๋ ์
๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๋ ๋์ ๋ฐ์ํ๋ค.
์ ์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง
- ๋์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง๊ณผ ๋ณํํ์ฌ ์์
ํ๋ค.
- class diagram์ ํฌํจํ, ํจํค์ง ๋ค์ด์ด๊ทธ๋จ, deployment ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ๋ค.
CRC(Class โ Responsibility - Collaborator)
- ์ง๊ธ์ UP์ ํฌํจ๋์ด ์์ด, ์ฌ์ฉํ์ง ์๋๋ค.
- ํ๋ง๋๋ก ๋งํ๋ฉด ์ฑ
์์ ์ค์ฌ์ผ๋ก ์์๋ฅผ ์ค๊ณํ๋ ๊ฒ!
