UML์ด๋?
UML์ Unified Modeling Language(ํตํฉ ๋ชจ๋ธ๋ง ์ธ์ด)์ ์ฝ์๋ก 1997๋ , OMG(Object Management Group) ํ์คํ ๊ธฐ๊ตฌ์์ ๋ชจ๋ธ์ ๋ง๋๋ ํ์ค ์ธ์ด๋ก ์ฑํ๋์์ต๋๋ค. UML์ ๊ฐ์ฒด ์งํฅ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋ ์์คํ ๊ณผ ์ฐ์ถ๋ฌผ์ ๋ช ์ธํ, ์๊ฐํ, ๋ฌธ์ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
UML์ ์ฌ์ฉํ๋ ์ด์ ?
- ๋ณต์กํ ์์ด๋์ด์ ์์คํ ์ ๋น๊ฐ๋ฐ์๋ ์ฝ๊ฒ ์ดํด
- ์์คํ ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ด๋ฏธ์ง๋ก ํ๋์ ์ฝ๊ฒ ํ์
- ํ์คํ๋ ๊ธฐํธ๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ํต ๋ถ์ผ์น ๋ฐฉ์ง
์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐ ๋๋ ๋ถ์ ์ค๊ณ๋ฅผ ์ํด ๊ฐ๋ฐ์, ๊ธฐํ์, ์ํคํ ์ฒ ๋ฑ์ด ์ฐธ์ฌ๋ฅผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๊ตฌ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ ๋ํด์ ์ฝ๋๋ก ์์ฑํ๋ฉด ๋๋ฌด ๊ธธ์ด์ง๊ณ ํ๋ฒ์ ์ดํดํ๊ธฐ๋ ๋๋์ฑ ํ๋ญ๋๋ค.
ํด๋น ๊ธฐ๋ฅ์ ๋ํ ์๋ง์ ์ฝ๋๋ค์ UML์ ์ด์ฉํด ์๊ฐํํ๋ฉด, ์ ๋ณด๋ค์ด ๋จ์ํ๋์ด ์ดํดํ๋๋ฐ ์ฝ๊ณ ์ปค๋ฎค๋์ผ์ด์ ์ ๋ ์ํ ํ๊ฒ ํด์ฃผ๋ ์ฅ์ ์ด ์์ต๋๋ค.
๋ํ์ ์ธ ๋ค์ด์ด๊ทธ๋จ๋ค
๋ค์ด์ด๊ทธ๋จ์ ํฌ๊ฒ ๊ตฌ์กฐ๋ ๋ค์ด์ด๊ทธ๋จ๊ณผ ํ๋ ๋ค์ด์ด๊ทธ๋จ, ๋๊ฐ์ง๋ก ๋๋๋๋ฐ์. ํด๋น ํฌ์คํ ์์๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ 3๊ฐ์ง์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
- ํด๋์ค ๋ค์ด์ด๊ทธ๋จ: ํด๋์ค์ ์์ฑ, ๋ฉ์๋, ๊ด๊ณ๋ฅผ ํํํฉ๋๋ค.
- ์ ์ค์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ: ์ฌ์ฉ์(Actor)์ ๊ด์ ์์ ์์คํ ์ ๊ธฐ๋ฅ, ์ํธ์์ฉ๊ณผ ๊ทธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ํํํฉ๋๋ค.
- ์ํ์ค ๋ค์ด์ด๊ทธ๋จ: ๊ฐ์ฒด๊ฐ์ ์ํธ์์ฉ์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ๋ํ๋ ๋๋ค.
1. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ (Class Diagram)
์๋ฅผ๋ค์ด, ์๋์ฐจ์ ๋ํด์ ํด๋์ค๋ฅผ ๊ธ๋ก ์ ์ํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ์ ์์ต๋๋ค.
- Coffee ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.
- ์ด๋ฆ์ ๋ํ๋ด๋
name: String
๋ณ์, ๋จ๋ง์ ๋ํ๋ด๋Sweetnees: int
๋ณ์, ์ฐ๋ฏธ๋ฅผ ๋ํ๋ด๋acidity: int
๋ณ์๊ฐ ์์ต๋๋ค. - ํจ์์ ์ด๋ฆ์ make์ด๊ณ ๋ฆฌํดํ์ ์ void์ธ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
- ์ด๋ฆ์ ๋ํ๋ด๋
- Coffee ํด๋์ค๋ฅผ ์์๋ฐ๋
Americano
ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.addShot
์ด๋ผ๋ ํจ์์ ๋ฆฌํดํ์ ์ void์ธ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
- Coffee ํด๋์ค๋ฅผ ์์๋ฐ๋
Vanila Latte
ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.addShot
์ด๋ผ๋ ํจ์์ ๋ฆฌํดํ์ ์ void์ธ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.addSyrup
์ด๋ผ๋ ํจ์์ ๋ฆฌํดํ์ ์ void์ธ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
์ ์ค๋ช ์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๋ํ๋ด๋ณด๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ด๋ ๊ฒ ๊ทธ๋ฆผ ํ๋๋ก ์ค๋ช ์ ํ ์ ์์ต๋๋ค. ์ด๋ค๊ฐ์? ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค์ ๋ณด๋๊น ํจ์ฌ ๋ ์ดํด๊ฐ ๋น ๋ฅด์ง ์๋์? ์ด๋ ๊ฒ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํ์ ํ๋ฉด ์คํด์ ๋ถํ์ํ ์ํต์ ์ค์ด๊ณ ๋ช ํํ๊ฒ ์ํต์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ํด๋์ค๋ค์ด์ด๊ทธ๋จ์ ํจ์์ ๋ด๋ถ๊ตฌํ๊น์ง๋ ์์ง ๋ชปํฉ๋๋ค.
2. ์ ์ค์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ (Usecase Diagram)
์ ์ค ์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉ์์ ๊ด์ ์์ ์ด๋ค ํ๋์ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ๋์ ์ํด ์ด๋ค ๊ณผ์ ์ด ์๋์ง ๊ทธ ๊ณผ์ ๋์ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ๋์ง์ ๋ํด์ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค๋ธ ๊ฒ ์ ๋๋ค.
์น ์ฌ์ดํธ์ ๋ํ ์ ์ค์ผ์ด์ค๋ฅผ ๋จผ์ ๋์ดํด๋ณด๋ฉด ๋ญ๊ฐ ์์๊น์?
- ์ฌ์ฉ์๋ ๋ก๊ทธ์ธ์ ํ ์ ์๋ค.
- ๋ฌธ์๋ฅผ ๊ฒ์ํ ์ ์๋ค.
- ๊ฒ์ํ ๋ฌธ์๋ฅผ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ ์ ์๋ค.
- ๋ฌธ์๋ ๋ค์ด๋ก๋ํ ์ ์๋ค.
- ์งํ์ค์ธ ์ด๋ฒคํธ๋ค์ ๋ณผ ์ ์๋ค.
- ์ฌ์ฉ์๋ ๋ฌธ์๋ฅผ ์ ๋ก๋ํ ์ ์๋ค.
- ์ ๋ก๋ํ ๋ฌธ์๋ค์ ๊ด๋ฆฌํ ์ ์๋ค.
- ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ์ ์๋ค.. ๋ฑ๋ฑ..
์์์ ๋์ดํ ๊ธฐ๋ฅ๋ค์ ์ ์ค์ผ์ด์ค๋ก ๋ณํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์ค์ผ์ด์ค๋ ์ฌ์ฉ์ ๊ด์ ์์ ์ด๋ค ํ๋๋ค์ด ์๊ณ ๊ทธ ํ๋๋ค์ ๋ ์ด๋ค ํ๋๋ค๊ณผ ์ฐ๊ด์ด ์๋์ง์ ๋ํด์ ํฐ ํ์ ์ดํดํ๋๋ฐ ์ต์ ํ๋์ด ์์ต๋๋ค. ํ์ง๋ง ๊ทธ ํ๋์ ์ด๋ค ์ ๋ณด๊ฐ ์ค๊ณ ๊ฐ๋์ง์ ๋ํด์๋ ์์ธํ๊ฒ ์ ์ ์์ต๋๋ค.
3. ์ํ์ค ๋ค์ด์ด๊ทธ๋จ (Sequence Diagram)
์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ์์์ ๋ถํฐ ์ค๋ฅธ์ชฝ ์๋๋ก ์์ฐจ์ ์ผ๋ก ํ๋ฌ๊ฐ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๋์ง์ ๊ฒฐ๋ก ์ ์ผ๋ก ์ด๋๊ณณ์ผ๋ก ๋๋ฌํ๋์ง์ ๋ํด์ ํ๋์ ์ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ํด๋ํฐ์ผ๋ก ์ฌ์ง์ ์ฐ์ ๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ ์ด๋ณด๊ฒ ์ต๋๋ค.
- ์นด๋ฉ๋ผ ์ฑ์ ์คํํฉ๋๋ค.
- ์นด๋ฉ๋ผ ์ฑ์ ๋๋ฐ์ด์ค์ ์นด๋ฉ๋ผ์ ์ ๊ทผํฉ๋๋ค.
- ์ฌ์ฉ์๋ ์นด๋ฉ๋ผ๋ก ๋ณด๋ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค.
- ์ฌ์ง์ ์ฐ์ต๋๋ค.
์ ๊ณผ์ ์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์ฎ๊ฒจ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๋ง ๊ทธ๋๋ก ์์๋๋ก ํ๋ฌ๊ฐ๋ ๊ทธ๋ฆผ์ด๊ธฐ ๋๋ฌธ์ ๋น๊ฐ๋ฐ์๋ ์ฝ๊ฒ ๋ณด๊ณ ์ดํดํ ์ ์์ต๋๋ค. ํ๋์ ๊ธฐ๋ฅ์ ๋ํด์ ํํํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ๊ธฐ๋ฅ์ ํํํ ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
Outro
์์์ ์๊ฐํด๋๋ฆฐ ๊ฒ ๋ง๊ณ ๋ ๋ง์ ๋ค์ด์ด๊ทธ๋จ๋ค์ด ์กด์ฌํฉ๋๋ค. ์ฒ์์ UML๋ก ๊ทธ๋ฆฌ๊ธฐ ๋งค์ฐ ๊ท์ฐฎ์ต๋๋ค.. UML์ ๊ทธ๋ฆฌ๋ค๋ณด๋ฉด ์ฐจ๋ผ๋ฆฌ ์ด ์๊ฐ์ ๊ฐ๋ฐ์ ํ๋๊ฒ ๋ ๋น ๋ฅด์ง ์์๊น?
๋ผ๋ ์๊ฐ์ด ๋ค๊ธฐ๋ ํ๊ตฌ์..
ํ์ง๋ง ํด๋ณด์๋ฉด ๋ค๋ฅผ ๊ฒ๋๋ค. ์ด๋ฐ ๋ฌธ์๋ค์ ์์ฑํ์ง ์๊ณ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ์ด๋ ์๊ฐ ๊ธธ์ ์์ ๋๊ฐ ๋ง์ต๋๋ค. ๊ธ๋ก ์์ฑ๋ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์ ์๋ ๋ช ํํ๊ฒ ์ ์๋ด๋ฆด ์ ์์๋๋ฐ ์๊ฐ์ด ์ง๋๋ค๋ณด๋ฉด ์ธ๊ฐ์ ๋ง๊ฐ์ ๋๋ฌผ์ด๋ผ๊ณ ์์ด๋ฒ๋ฆฌ๊ณ ๋ค์ ๊ทธ ๊ฐ๋ฅ์ ์ก๊ธฐ์ํด ๋ ๋ง์ ์๊ฐ์ ํฌ์ํด์ผํ๊ตฌ์.
๊ทธ๋ด ๋ UML์ ๊ทธ๋ ค๋์ผ๋ฉด ํ๋์ ์ดํดํ ์ ์์ด์ ๋์ค์ ๊ฐ๋ฐํ ๋ ๋งํ๋๋ผ๋ ๊ธ๋ฐฉ ์ดํดํ๊ณ ๋ค์ ๊ฐ๋ฐ์ ์ ๋ ํ ์ ์์ต๋๋ค! ๊ฐ๋ฐ์ ๊ธฐํ์ ๊ฐ ์ํ ํ ํ์ ์ ์ํด์๋ UML์ ํ์๋ผ๊ณ ์๊ฐํฉ๋๋ค!
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ค์ ์๊ฐ์๋ ๋ ๋ง์ UML์ ๋ํด์ ๋ ์์ธํ๊ฒ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.