์๋ ํ์ธ์!
์ด๋ฒ ํฌ์คํ ์์๋ UML์ ๊ตฌ์ฑ์์์ธ ์ฌ๋ฌผ, ๊ด๊ณ, ๋ค์ด์ด๊ทธ๋จ์ ๋ํด์ ์์๋ณด๊ณ
๊ฐ ์ข ๋ฅ์ธ ์ฐ๊ด๊ด๊ณ, ์ผ๋ฐํ๊ด๊ณ, ์ค์ฒดํ๊ด๊ณ ๋ฑ
๋๋ ๊ตฌ์กฐ๋ค์ด์ด๊ทธ๋จ, ํ์๋ค์ด์ด๊ทธ๋จ ๋ฑ์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
UML
UML(Unified Modeling Language)
UML์ ์ํํธ์จ์ด์ ์ฒญ์ฌ์ง์ ์์ฑํ๋ ํ์ค ์ธ์ด๋ก, ์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ถ๋ฌผ์ ํตํ ๊ฐ ์ํ, ๋ช ์ธํ, ๋ฌธ์ํ๊ฐ ๊ฐ๋ฅํ ๋๊ตฌ์ด๋ค. ์ํํธ์จ์ด ์ํคํ ์ฒ ์ค๊ณ ์ํํธ์จ์ด์ ๋ํ ์๊ตฌ์ฌํญ ์ ์, ๋ถ์๊ณผ ์ค๊ณ ๋ชจ๋ธ๋ง ์์ ์์ ๋๋ฆฌ ํ์ฉ๋๊ณ ์๋ค.
UML ๊ตฌ์ฑ ์์
UML์ ๋ชจ๋ธ์ ๊ธฐ๋ณธ ์์์ธ ์ฌ๋ฌผ๊ณผ ์ฌ๋ฌผ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ด๊ณ, ์ฌ๋ฌผ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋์ํํ ๋ค์ด์ด๊ทธ๋จ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
(1) ์ฌ๋ฌผ(Things)
๋ชจ๋ธ ๊ตฌ์ฑ์ ๊ธฐ๋ณธ ์์๋ก ์ถ์์ ์ธ ๊ฐ๋ ์ด๋ค. ์์คํ ์ ๊ตฌ์กฐ์ ํ์ ๋ฑ์ ํํํ๊ณ ๊ฐ๋ ๋ค์ ๊ทธ๋ฃนํํ๊ธฐ ์ํ ๊ฒ๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
(2) ๊ด๊ณ(Relationships)
์ฌ๋ฌผ ๊ฐ์ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ์ถ์ํํ์ฌ ํํํ๋ค.
(๊ฐ) ์ฐ๊ด๊ด๊ณ (Association) : ๊ตฌ์กฐ์ ๊ด์ ์์ ์ฌ๋ฌผ๋ค์ ์ฐ๊ฒฐ์ ํํํ๋ค.
(๋) ํฌํจ๊ด๊ณ (Composition) : ์ฌ๋ฌผ ์ฌ์ด์ ํฌํจ๊ด๊ณ๋ฅผ ํํํ๋ค.
(๋ค) ์ผ๋ฐํ๊ด๊ณ (Generalization) : ์ฌ๋ฌผ ๊ฐ์ ํน์ํ, ์ผ๋ฐํ ๊ด๊ณ๋ฅผ ํํํ๋ค.
(๋ผ) ์์กด๊ด๊ณ (Dependency) : ์ฌ๋ฌผ ๊ฐ์ ์๋ก ์ํฅ์ ๋ฏธ์น๋ ๊ด๊ณ๋ฅผ ํํํ๋ค.
(๋ง) ์ค์ฒดํ๊ด๊ณ (Realization) : ์ฌ๋ฌผ์ด ์ํํ๊ธฐ๋ก ๋์ด ์๋ ์ ์ฝ์ ๋ช ์ธํํ ๊ฒ์ด๋ค.
(3) ๋ค์ด์ด๊ทธ๋จ(Diagram)
์ฌ๋ฌผ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ์ผ๋ก ํํํ ๊ฒ์ผ๋ก, ์ฌ๋ฌ ๊ด์ ์์ ์์คํ ์ ๊ฐ์ํํ ๋ทฐ(View)๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์์ฌ์ํต์ ๋์์ ์ค๋ค.
์ ์ ๋ชจ๋ธ๋ง์์ ์ฌ์ฉํ๋ ๊ตฌ์กฐ์ ๋ค์ด์ด๊ทธ๋จ, ๋์ ๋ชจ๋ธ๋ง์์ ์ฌ์ฉํ๋ ํ์ ๋ค์ด์ด๊ทธ๋จ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
์ ์ (๊ตฌ์กฐ) ๋ค์ด์ด๊ทธ๋จ
์์คํ ์ ์ ์ ์ธ ๋ถ๋ถ์ ๊ฐ์ํํ๊ธฐ ์ํ์ฌ ๋ค์ด์ด๊ทธ๋จ์ ์ด์ฉํ์ฌ ํํํ ๊ฒ์ผ๋ก ์ฃผ์ ๋ค์ด์ด๊ทธ๋จ์ ์๋์ ๊ฐ๋ค.
1. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ(Class Diagram)
์์คํ ์ ๊ตฌ์ฑํ๋ ํด๋์ค์ ์ธํฐํ์ด์ค ์ฌ์ด์ ์ ์ ์ธ ๊ด๊ณ๋ฅผ ๋ํ๋ธ ๋ค์ด์ด ๊ทธ๋จ์ด๋ค. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ํตํด ์ฃผ์ ์์คํ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ ๊ตฌ์กฐ์์ ๋ฌธ์ ์ ์ ๋์ถํ ์ ์๋ค.
2. ๊ฐ์ฒด ๋ค์ด์ด๊ทธ๋จ(Object Diagram)
ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ํฌํจ๋ ์ฌ๋ฌผ๋ค์ ์ธ์คํด์ค(Instance)๋ฅผ ํน์ ์์ ์ ๊ฐ์ฒด์ ๊ฐ์ฒด ์ฌ์ด์ ๊ด๊ณ๋ก ํํํ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
3. ์ปดํฌ๋ํธ ๋ค์ด์ด๊ทธ๋จ(Component Diagram)
์ค์ ๊ตฌํ ๋ชจ๋์ธ ์ปดํฌ๋ํธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
4. ๋ฐฐ์น ๋ค์ด์ด๊ทธ๋จ(Deployment Diagram)
๋ ธ๋์ ๋ ธ๋ ์ฌ์ด์ ์กด์ฌํ๋ ์ปดํฌ๋ํธ๋ค์ ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์ฑ์ ํํํ๋ค.
๋์ ๋ค์ด์ด๊ทธ๋จ
์์คํ ์ ๋์ ์ธ ๋ถ๋ถ์ ๊ฐ์ํํ๊ธฐ ์ํด ๋ค์ด์ด๊ทธ๋จ์ ์ด์ฉํ์ฌ ํํํ ๊ฒ์ผ๋ก ์ฃผ์ ๋ค์ด์ด๊ทธ๋จ์ ์๋์ ๊ฐ๋ค.
1. ์ ์ค์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ(Use Case Diagram)
์์คํ ์ ์๊ตฌ์ฌํญ ์ค ๊ธฐ๋ฅ์ ์ธ ์๊ตฌ์ฌํญ์ ์ ์ค์ผ์ด์ค ๋จ์๋ก ํํํ๊ณ ์กํฐ (Actor)์ ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํํํ๋ค.
2. ์ํ์ค ๋ค์ด์ด๊ทธ๋จ(Sequence Diagram)
์์คํ ์ ๋ด๋ถ์ ์ธ ๋ก์ง ํ๋ฆ์ ๋์ ์ผ๋ก ํํํ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
๊ฐ์ฒด์ ๊ฐ์ฒด ์ฌ์ด์ ๊ด๊ณ์ ๊ฐ์ฒด๋ค๋ผ๋ฆฌ ์ํธ ๊ตํํ๋ ๋ฉ์์ง์ ์์๋ฅผ ๊ฐ์กฐํ์ฌ ํํํ๋ค.
3. ์ํ ๋ค์ด์ด๊ทธ๋จ(State Diagram)
์์คํ ์ ๋์ ์ธ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์ด๋ฒคํธ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฐ์ฒด์ ์ํ ๋ณํ๋ฅผ ํํํ๋ค.
4. ํ๋ ๋ค์ด์ด๊ทธ๋จ(Activity Diagram)
์์คํ ์ ๋ด๋ถ ํ๋์ ๋ํ ํ๋ฆ์ ํ์์ ๋ฐ๋ผ ๋ณํํ๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ํํํ๋ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
๋๊ธ