<aside> ๐ก
[1] UML์ ๊ฐ์ : UML = ๋ถ์น+OOSE+OMT;
use-case๋ก ์์ํ์ฌ view๋ฅผ ๋ง๋จ์ ์ ์ผ๋ก ํ์ฌ ๊ฐ์ฒด/๋์ /๊ธฐ๋ฅ ๋ชจ๋ธ์ ๋ด์๋ด์ผํ๋ค.
๋ถ์น๋ฐฉ๋ฒ๋ก : ๋ทฐ์ค์ฌ
์ผ์ฝฅ์จOOSE : use-case์ค์ฌ
๋ผ๋ฐOMT : ๊ฐ.๋.๊ธฐ.๋ชจ๋ธ
[2] UML์ ๊ตฌ์ฑ์์ : by Diagram = Things(์ฌ๋ฌผ) + Relations(๊ด๊ณ)
{1} Things(์ฌ๋ฌผ) = ๊ตฌ์กฐ์ฌ๋ฌผ + ํ๋์ฌ๋ฌผ + ๊ทธ๋ฃน์ฌ๋ฌผ + ์ฃผํด์ฌ๋ฌผ
(1) ๊ตฌ์กฐ์ฌ๋ฌผ<๋ช ์ฌ> = ํด๋์ค + ์ธํฐํ์ด์ค + ํต์ + ์ ์ค์ผ์ด์ค + ํ์ฑํด๋์ค(์ค๋ ๋๋ณด์ )
์ปดํฌ๋ํธ : ์ฌ๋ฌ๊ฐ์ง ๋ ผ๋ฆฌ์์๋ฅผ ํจํค์งํํ์ฌ ๋ฌผ๋ฆฌํํ ๋ถ๋ถ, ๋์ฒด๊ฐ๋ฅ(app,๋ฌธ์,ํ์ผ,lib)
๋ ธ๋ : ์คํํ ๋ ์กด์ฌํ๋ ๋ฌผ๋ฆฌ์์, ์ ์ฐ ์์(๊ธฐ๊ณ)๋ฅผ ์๋ฏธ, ์ฝ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฒ๋ฆฌ๋ฅ๋ ฅ๊ฐ์ง
.png)
(2) ํ๋์ฌ๋ฌผ<๋์ฌ> = ์๊ณต๊ฐ์ ํ์๋ฅผ ํํ,
interaction(๊ต๋ฅ) : ๋ฉ์์ง(์ง์ ์ผ๋กํ์, ํจ์๋ช ํฌํจ) + ํ๋์์(์ฝ๋ฐฑํจ์) + ๋งํฌ
state(์ํ) : ์ํ์ด๋ฆ ๋ฃ์ ๋ชจ์๋ฆฌ๋ฅ๊ทผ์ฌ๊ฐํ์ผ๋ก ํํ, ์ํ์ ์ด(์ํ์ ์ด) + ์ฌ๊ฑด(์ ์ด์ ๋ฐ) + ํ๋(์๋ตby์ ์ด)

(3) ๊ทธ๋ฃน์ฌ๋ฌผ<ํจํค์ง> = ์ปดํฌ๋ํธ๋ ๋ฌผ๋ฆฌ์ ๊ฐ๋ , ํจํค์ง๋ ์ถ์์ ์ธ ๊ฐ๋ (๊ฐ๋ฐ์๋ง ์กด์ฌ), ํจํค์ง๋ก ํจํค์ง ๋ฌถ๊ธฐ๊ฐ๋ฅ,
(4) ์ฃผํด์ฌ๋ฌผ<์ฃผ์> = ๋ฌธ์ + ๊ทธ๋ํฝ ( ์๊ตฌ์ฌํญ๊ธฐ์ ํฌํจ)

{2} Relations(๊ด๊ณ) = ์์กด(Dependency) + ์ฐ๊ด(Association) + ์ผ๋ฐํ(Generation) + ์ค์ฒดํ(Realization)
(1) ์์กด(Dependency) : A๊ฐ ๋ฐ๋๋ฉด B๊ฐ ๋ฐ๋๋, B๋ A์ ์์กด, B๊ฐ ์์กดํ๋ A์ ์ ์ ์ง์ ์ผ๋ก ๊ฐ๋ฆฌํด
(2) ์ฐ๊ด(Association) : ์ด๋ฆ(๊ด๊ณ์ ์๋ฏธ) + ์ญํ + ๋ค์ค์ฑ(์ํธ๊ฐ์ฐ๊ฒฐ๊ฐ์) + ์งํฉ์ฐ๊ด(has-a)
(3) ์ผ๋ฐํ(Generation) : ์์๊ด๊ณ(is-a-kind-of), ์ํ๋ฐฉ ๋ค์ค๊ฐ๋ฅ
(4) ์ค์ฒดํ(Realization) : ์ธํฐํ์ด์ค(์์ฑ์ ์๋ ํจ์๋ชจ์)๋ ํด๋์ค๋ฅผ ๊ตฌ์ฒดํ(์ค์ฒดํ)ํจ, ์ํ๋ฐฉ ๋ค์ค๊ฐ๋ฅ
.png)
{3} Diagram๋ค์ด์ด๊ทธ๋จ = ์ ์ + ๋์
์ ์ = 1UseCase + 2Class (+Object) + 7Component + 8Deployment๋ฐฐ์น + 9Package Diagram
๋์ = 3Sequence์์ฐจ + 4Communicationํต์ + 5Activityํ๋ + 6State์ํ Diagram
[3] UML์ํคํ ์ณ : UML๋ทฐ์ ๊ฐ๋ฐํ๋
์ ์ค์ผ์ด์ค๋ทฐ : ๋ธ๋๋ฐ์ค๋ทฐ, ์ ์ค์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ
์ค๊ณ๋ทฐ : ํด๋์ค, ๊ฐ์ฒด ๋ค์ด์ด๊ทธ๋จ์ ์ง์ค
ํ๋ก์ธ์ค๋ทฐ : ๋ ์์ ์ธ ์ ์ด ์ค๋ ๋๋ฅผ ๊ฐ์ถ 'ํ์ฑ ํด๋์ค'์ ์ง์ค, stereotype<<process>>, <<thread>>๋ก ํํ
๊ตฌํ๋ทฐ : ์ปดํฌ๋ํธ ๋ค์ด์ด๊ทธ๋จ์ ์ง์ค(๊ด๊ณ/์์กด ๋ฑ)
๋ฐฐ์น๋ทฐ : ๋ฐฐ์น ๋ค์ด์ด๊ทธ๋จ, ์์คํ ๊ตฌ์ฑํ๋ ์ฒ๋ฆฌ์ฅ์น, ์ปดํจํฐ๊ฐ ํต์ ๋ฐฉ๋ฒ์ ์ด์
[4] UML๋ฉ์ปค๋์ฆ = ์ข ๋ฅ์ ๊ด๊ณ์์ด ์ผ๊ด๋๊ฒ ์ ์ฉ๋๋ 4๊ฐ์ง ๊ณตํตํน์ฑ
+๋ช ์ธ์(Specification) : ๊ทธ๋ํฝํ์์์ ํ์คํ๋ ํํ์์
+์ฅ์(Adormment) : ๋ช ์ธ์์์ ๊ฐ๋ณ ํน์ง์ ๋ํ ํ์, ๊ธฐํธ, ๋ํ
+๊ณตํต๋ถํ (CommonDivision) : ํด๋์ค์ ๊ฐ์ฒด์ ๋ถํ & ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ถํ
+ํ์ฅ๋ฉ์ปค๋์ฆ(ExtensibilityMechanism) : <<์Stereotypes>>, {tag=value}๊ผฌ๋ฆฌํ๊ฐ, {Constraints}์ ์ฝ

[5] UseCase๋ค์ด์ด๊ทธ๋จ : ์์ฑ์ ์ฐจ
(1) ์์คํ ํ์ธ
(2) Actor์๋ณ : ํ์์(์ธ๋ถ์ ์ถ์ํ๋ ์ฌ๋๋๋ ์์คํ )์ ๊ทธ ์ฑ ์ ํ์ธ
(3) Usecase์๋ณ : ํน์ ๋ชฉ์ ์ ๊ด์ ์์ ๋ณธ ์ฐ์์์ ์์คํ ํน์ฑ
(4) Diagram์์ฑ : include/extend์์กด์ฑ, ์ผ๋ฐํ ํ์ธ
(5) ๋ช ์ธ์์ฑ : ๋ช ์นญ,์กฐ๊ฑด,์ ์ฝ์ฌํญ,์์ ํ๋ฆ(์ ์,๋์น,์์ธ),์๋๋ฆฌ์ค
(6) ์ค์ฒดํ : ์์คํ ์ ๋ ผ๋ฆฌ๊ตฌ์ฑ์ธ ํด๋์ค์ ํต์ ๊ด๊ณ ์๋ณ์ ์ค์

[6] Class๋ค์ด์ด๊ทธ๋จ
์ฐ๊ด(:๊ฐ์ฒด๊ฐ ๊ฐ๋ ์ ์ฐ๊ฒฐ)[4] = {
์งํฉAggregation(:๋ ๋ฆฝ์ ๊ตฌ์ฑ์์๋ก ์ด๋ฃจ์ด์ง ์ฐ๊ด๊ด๊ณ),
๋ณตํฉComposition(:์๊ตฌ์ ํ์๋ถ๊ฐ๊ฒฐํ ์งํฉ๊ด๊ณ),
์์กดDependance,
์์Generalization
}
.png)
6๊ฐ์ง ๊ด๊ณ : ์์, ๊ตฌํ, ์ง๊ณ, ํฉ์ฑ, ์ฐ๊ด, ์์กด
[7] Sequencial๋ค์ด์ด๊ทธ๋จ : <์ํธ์์ฉ๋ค์ด์ด๊ทธ๋จ> ์๊ฐ(์์ง๋ฐฉํฅ)์ ํ๋ฆ(๊ฐ์ฒด๊ฐ ์ด๋๊ฒฝ๋ก)
[8] Communication๋ค์ด์ด๊ทธ๋จ : <์ํธ์์ฉ๋ค์ด์ด๊ทธ๋จ> ๋ฉ์์ง์ ํ๋ฆ(๋ฐ์ดํฐ)
[9] Activity๋ค๋์ด๊ทธ๋จ
[10] State๋ค์ด์ด๊ทธ๋จ
[11] Component๋ค์ด์ด๊ทธ๋จ
[12] Batch๋ค์ด์ด๊ทธ๋จ
[13] Package๋ค์ด์ด๊ทธ๋จ
</aside>