์๊ตฌ ์ฌํญ ๊ฐ๋ฐ ํ๋ก์ธ์ค
๋์ถ -> ๋ถ์ -> ๋ช ์ธ -> ํ์ธ
ํํฅ์ ์ค๊ณ (์์ ๋ชจ๋ -> ํ์ ๋ชจ๋)
ํ ์คํธ ์ด๊ธฐ์ ์ฌ์ฉ์์๊ฒ ์์คํ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค
์คํ (stub) - ๊ฐ์ง ๋ชจ๋
์ํฅ์ ์ค๊ณ (ํ์ ๋ชจ๋ -> ์์ ๋ชจ๋)
ํ์ ๋ชจ๋์ ํด๋ฌ์คํฐ๋ก ๊ฒฐํฉ
ํตํฉ๋ ํด๋ฌ์คํฐ ๋จ์๋ก ํ ์คํธ
๋๋ผ์ด๋ฒ - ์ธํฐํ์ด์ค ์ญํ
์๋ฃํ๋ฆ๋ 4๊ฐ์ง ๊ตฌ์ฑ์์
์ฒ๋ฆฌ Process : ์
์๋ฃํ๋ฆ Data Flow : ํ์ดํ
์๋ฃ์ ์ฅ์ Data Store : ํํ์
๋จ๋ง Terminal : ์ฌ๊ฐํ
UML : Unified Modeling Language
์ํธ๊ฐ์ ์ํํ ์์ฌ์ํต์ ์ํ ๊ฐ์ฒด์งํฅ ๋ชจ๋ธ๋ง ์ธ์ด
๋ชฉ์ : ์๊ฐ์ ์ผ๋ก๋ง ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฐ์น , ๊ตฌํX
์คํ ๋ฆฌ๋ณด๋ : ์ต์ข ์ ์ผ๋ก ์ฐธ๊ณ ํ๋ ์์ ์ง์นจ์ , ๊ตฌ์ถ์ ์ํ ๋ชจ๋ ์ ๋ณด
ํ๋กํ ํ์ : ์ธํฐ๋์ ์ ์ ์ฉ , ๊ตฌํ๋ ๊ฒ์ฒ๋ผ ํ ์คํธ ๊ฐ๋ฅ
์ ์ค์ผ์ด์ค : ์ฌ์ฉ์ ์ธก๋ฉด์์์ ์๊ตฌ์ฌํญ , ๋ค์ด์ด๊ทธ๋จ ํ์
์คํฌ๋ผ(Scrim) ๊ธฐ๋ฒ
ํ์ ์ค์ค๋ก๊ฐ ํ์ ๊ตฌ์ฑ / ํ์ ์ค์์ฑ / ์ค์ค๋ก ํด๊ฒฐ /
๋ฐฑ๋ก๊ทธ(Backlog) : ์๊ตฌ์ฌํญ ์ฐ์ ์์ ๋ชฉ๋ก
์ ํ์ฑ ์์(PO; Product Owner) : ๋ฐฑ๋ก๊ทธ ์์ฑ , ์ฐ์ ์์ ์ง์
์คํ๋ฆฐํธ(Sprint) : ์ค์ ๊ฐ๋ฐ ์์ ์ ์งํํ๋ ๊ณผ์ , 2~4์ฃผ ๊ธฐ๊ฐ
์ ์ - ๊ตฌ์กฐ์ ๋ค์ด์ด๊ทธ๋จ
ํด๋์ค , ๊ฐ์ฒด , ์ปดํฌ๋ํธ , ๋ฐฐ์น , ๋ณตํฉ์ฒด ๊ตฌ์กฐ , ํจํค์ง
๋์ - ํ์ ๋ค์ด์ด๊ทธ๋จ
์ ์ค์ผ์ด์ค , ์ํ์ค , ์ปค๋ฎค๋์ผ์ด์ , ์ํ , ํ๋ , ์ํธ์์ฉ ๊ฐ์ , ํ์ด๋ฐ
SRP ๋จ์ผ ์ฑ ์ ์์น ( single responsibilty principle )
- ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค.
OCP ๊ฐ๋ฐฉ-ํ์ ์์น ( open/closed principle )
- ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ์์ด์ผ ํ๋ค.
LSP ๋ฆฌ์ค์ฝํ ์นํ ์์น ( Liskov substitution principle )
- ํ๋ก๊ทธ๋จ์ ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ๊นจ ๋๋ฆฌ์ง ์์ผ๋ฉด์ ํ์ ํ์ ์ ์ธ์คํด์ค๋ก ๋ฐ๊ฟ ์ ์์ด์ผ ํ๋ค.
SP ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น ( Interface segregation principle )
- ํน์ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ ์ธํฐํ์ด์ค ์ฌ๋ฌ ๊ฐ๊ฐ ๋ฒ์ฉ ์ธํฐํ์ด์ค ํ๋๋ณด๋ค ๋ซ๋ค.
DIP ์์กด๊ด๊ณ ์ญ์ ์์น ( Dependency inversion principle )
" ์ถ์ํ์ ์์กดํด์ผ์ง, ๊ตฌ์ฒดํ์ ์์กดํ๋ฉด ์ ๋๋ค. "
์์ฑ ํจํด : ๊ฐ์ฒด์ ์์ฑ๊ณผ ๊ด๋ จ๋ ํจํด
์ถ์ ํฉํ ๋ฆฌ , ๋น๋ , ํฉํ ๋ฆฌ ๋ฉ์๋ , ํ๋กํ ํ์ , ์ฑ๊ธํค
์ํคํ ์ฒ์ ์ค๊ณ๊ณผ์
์ค๊ณ๋ชฉํ ์ค์ -> ์์คํ ํ์ ๊ฒฐ์ -> ์ํคํ ์ฒ ํจํด ์ ์ฉ -> ์๋ธ์์คํ ๊ตฌ์ฒดํ -> ๊ฒํ
๊ฐ์ฒด์งํฅ ๋ถ์ ๋ฐฉ๋ฒ๋ก
๋ผ๋ฐ์ฐ : ๊ฐ์ฒด -> ๋์ -> ๊ธฐ๋ฅ ๋ชจ๋ธ๋ก ๋๋์ด ์์ฑ
๋ถ์น : ๋ฏธ์์ + ๊ฑฐ์์
Jacobson : ์ ์ค ์ผ์ด์ค
Coad ์ Yourdon : E-R ๋ค์ด์ด๊ทธ๋จ
wirfs-Brock : ๋ถ์๊ณผ ์ค๊ณ ๊ฐ์ ๊ตฌ๋ถX
FEP(Front-End Processor)