์ํํธ์จ์ด ์ค๊ณ์ ์ข ๋ฅ
- ์์ ์ค๊ณ(High-Level-Design)
์ํคํ ์ฒ & ์ธํฐํ์ด์ค ์์ฃผ
์ํคํ ์ฒ ์ค๊ณ, ์๋น ์ค๊ณ๋ผ๊ณ ํ๋ค
์์คํ ์์ค์์์ ์ํํธ์จ์ด ๊ตฌ์ฑ ์ปดํฌ๋ํธ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ฑ๋ ์์คํ ์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ
์์คํ ๊ตฌ์กฐ๋
์ธ๋ถ ํ์ผ ๋ฐ DB์ค๊ณ๋
ํ๋ฉด ๋ฐ ์ถ๋ ฅ๋ฌผ ๋ ์ด์์
- ํ์ ์ค๊ณ(Low-Level-Design)
๋ชจ๋ ์ค๊ณ, ์์ธ ์ค๊ณ๋ผ๊ณ ํ๋ค.
์์คํ ์ ๊ฐ ๊ตฌ์ฑ ์์๋ค์ ๋ด๊ตฌ ๊ตฌ์กฐ, ๋์ ํ์ ๋ฑ์ ๊ฒฐ์ ํ๋ค.
๊ฐ ๊ตฌ์ฑ ์์์ ์ ์ด์ ๋ฐ์ดํฐ๋ค ๊ฐ์ ์ฐ๊ฒฐ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ ์๋ฅผ ํ๋ ๊ฒ์ด๋ค.
์ ์ฐจ๊ธฐ๋ฐ(Procedure-Oriented), ์๋ฃ์์ฃผ(Data-Oriented), ๊ฐ์ฒด์งํฅ(Object-Oriented)์ค๊ณ ๋ฐฉ๋ฒ์ด ์๋ค
์ํํธ์จ์ด ์ํคํ ์ฒ
์ํํธ์จ์ด์ ๊ณจ๊ฒฉ์ด ๋๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ
์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ์์คํ ์ ๊ตฌ์กฐ ๋๋ ๊ตฌ์กฐ์ฒด
์ข์ ํ์ง์ ์ฃผ์งํ๋ฉด์ ์ฌ์ฉ์์ ๋น๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ผ๋ก ๋ํ๋ ์ ์ฝ์ ๋ฐ์ํ๊ณ , ๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ํด๊ฒฐ ๊ณผ์
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ ๋ฐฉ๋ฒ๊ณผ ๋ถํ ๋ ๋ชจ๋์ ํ ๋น๋ ๊ธฐ๋ฅ, ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค ๋ฑ์ ๊ฒฐ์
์์น, ์ง์นจ, ์ํต ๋๊ตฌ
<๋ชจ๋ํ>
์ํํธ์จ์ด์ ์ฑ๋ฅ์ ํฅ์ํ๊ฑฐ๋ ์์คํ ์ ์์ ๋ฐ ์ฌ์ฌ์ฉ, ์ ์ง ๊ด๋ฆฌ ๋ฑ์ด ์ฉ์ดํ๋๋ก ์์คํ ์ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋จ์๋ก ๋๋๋ ๊ฒ
๋๋ฌด ์๊ฒ ๋๋๋ฉด ํตํฉ ๋น์ฉ์ด ์ฌ๋ผ๊ฐ๊ณ ๋๋ฌด ์๊ฒ ๋๋๋ฉด ํตํฉ๋น์ฉ์ ์ ๊ฒ ๋ค์ง๋ง, ๋ชจ๋ 1๊ฐ๋ฅผ ๊ฐ๋ฐํ๋ ๋น์ฉ์ ๋ง์ด ๋ค๊ฒ ๋๋ค
<์ถ์ํ Abstraction>
๋ฌธ์ ์ ์ ์ฒด๋ฅผ ์ค๊ณ ํ ์ธ๋ถํํ์ฌ ๊ตฌ์ฒดํํ๋ ๊ณผ์
์์ ํ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ ์ ๊ทธ ์์คํ ๊ณผ ์ ์ฌํจ ๋ชจ๋ธ์ ๋ง๋ค์ด ์ฌ๋ฌ ๊ฐ์ง ์์ธ๋ค์ ํ ์คํธํ ์ ์์
์ต์ ๋น์ฉ์ผ๋ก ์ค์ ์ํฉ์ ๋์ฒํ ์ ์๊ณ ์์คํ ์ ๊ตฌ์กฐ ๋ฐ ๊ตฌ์ฑ์ ๋๋ต ํ์ ํ ์ ์์
์ถ์ํ ์ ํ
- ๊ณผ์ ์ถ์ํ : ์ ๋ฐ์ ์ธ ํ๋ฆ๋ง ํ์ , ์์ธํ๊ฒ ์ ์ํ์ง ์์
- ๋ฐ์ดํฐ ์ถ์ํ : ๋ฐ์ดํฐ์ ์ธ๋ถ์ฌํญ์ ์ ์ํ์ง ์๊ณ ๊ตฌ์กฐ๋ฅผ ๋ํํ ์ ์๋ ํํ์ผ๋ก ๋์ฒด
- ์ ์ด ์ถ์ํ : ์ด๋ฒคํธ์ ๋ฐ์ ์ธ๋ถ์ฌํญ์ ์ ์ํ์ง ์๊ณ ๊ตฌ์กฐ๋ฅผ ๋ํํ ์ ์๋ ํํ์ผ๋ก ๋์ฒด
<๋จ๊ณ์ ๋ถํด>
- ํํฅ์ ์ค๊ณ
- ๋ฌธ์ ๋ฅผ ์์ ์ค์ ๊ฐ๋ ์ผ๋ก๋ถํฐ ํ์์ ๊ฐ๋ ์ผ๋ก ๊ตฌ์ฒดํํ๋ ๋ถํ ๊ธฐ๋ฒ
- ์ถ์ํ์ ๋ฐ๋ณต์ผ๋ก ์ธ๋ถํ
<์ ๋ณด์๋ Information Hiding>
ํ ๋ชจ๋ ๋ด๋ถ์ ํฌํจ๋ ์ ๋ณด๋ค์ ๊ฐ์ถ์ด ๋ค๋ฅธ ๋ชจ๋์ด ์ ๊ทผํ๊ฑฐ๋ ๋ณ๊ฒฝํ์ง ๋ชปํ๋๋ก ํ๋ ๊ธฐ๋ฒ
๋ค๋ฅธ ๋ชจ๋๊ณผ ์ปค๋ฎค๋์ผ์ด์ ์ ํ ๋๋ ํ์ํ ์ ๋ณด๋ง ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ์
๋ชจ๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋์ ์ํฅ์ ์ฃผ์ง ์์ ์์ , ์ํ, ์ ์ง๋ณด์๊ฐ ์ฉ์ด
์ํํธ์จ์ด ์ํคํ ์ฒ์ ํ์ง ์์ฑ
์ํํธ์จ์ด ์ํคํ ์ฒ๊ฐ ์ดํด ๊ด๊ณ์๋ค์ด ์๊ตฌํ๋ ์์ค์ ํ์ง์ ์ ์งํ๊ณ ๋ณด์ฅํ ์ ์๊ฒ ์ค๊ณ๋์๋์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ์ง ์์๋ค์ ๊ตฌ์ฒดํํด ๋์ ๊ฒ

์ํํธ์จ์ด ์ํคํ ์ฒ์ ์ค๊ณ ๊ณผ์
1. ์ค๊ณ ๋ชฉํ ์ค์
: ์์คํ ์ ๊ฐ๋ฐ ๋ฐฉํฅ์ ๋ช ํํ ํ๊ธฐ ์ํด ์๊ตฌ์ฌํญ์ ๋ถ์ํ์ฌ ์ ์ฒด ์์คํ ์ ์ค๊ณ ๋ชฉํ ์ค์
2. ์์คํ ํ์ ๊ฒฐ์
: ์์คํ ๊ณผ ์๋ธ ์์คํ ํ์ ๊ฒฐ์
์ค๊ณ ๋ชฉํ๋ฅผ ๊ณ ๋ คํ์ฌ ์ํค์ฒต์ฒ ํจํด ์ ํ
3. ์ํคํ ์ฒ ํจํด ์ ์ฉ
: ์ํคํ ์ฒ ํจํด์ ์ฐธ์กฐํ์ฌ ์์คํ ์ ํ์ค ์ํคํ ์ฒ ์ค๊ณ
4. ์๋ธ์์คํ ๊ตฌ์ฒดํ
: ์๋ธ์์คํ ์ ๊ธฐ๋ฅ ๋ฐ ์ํธ์์ฉ์ ์ํ ๋์๊ณผ ์ธํฐํ์ด์ค ์ ์
5. ๊ฒฐ๋ก
: ์ํคํ ์ฒ๊ฐ ์ค๊ณ ๋ชฉํ์ ๋ถํฉํ๋์ง, ์๊ตฌ์ฌํญ์ด ์ ๋ฐ์๋์๋์ง ๋ฑ์ ๊ฒํ
์ํคํ ์ฒ ํจํด
์ํคํ ์ฒ๋ฅผ ์ค๊ณํ ๋ ์ฐธ์กฐํ ์ ์๋ ์ ํ์ ์ธ ํด๊ฒฐ ๋ฐฉ์ ๋๋ ์์
์์คํ ์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ํ์ ์ ๊ณต
์๋ธ ์์คํ ๊ณผ ๊ทธ ์ญํ ์ด ์ ์๋์ด ์์ด ์๋ธ ์์คํ ์ฌ์ด ๊ด๊ณ์ ๊ท์น, ์ง์นจ ๋ฑ์ด ํฌํจ๋์ด ์์
์ํคํ ์ฒ ํจํด์ ์ฅ์
- ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํจ
- ๊ณ ํ์ง์ ์ํํธ์จ์ด ์์ฐ ๊ฐ๋ฅ
- ๊ฒ์ฆ๋ ๊ตฌ์กฐ๋ก ์์ ์ ํ์ฌ ์์ ์ ์ธ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์์คํ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ฌ์ ๊ฐ๋ฐ์ ์ฐธ์ฌํ์ง ์์๋ ์ ์ง๋ณด์๊ฐ ์ฌ์
<๋ ์ด์ด ํจํด>
๊ฐ์ฅ ๊ณ ์ ์
์์คํ ์ ๊ณ์ธต์ผ๋ก ๊ตฌ๋ถํ์ฌ ๊ตฌ์ฑ
๊ฐ๊ฐ์ ์๋ธ ์์คํ ์ด ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ด๋ฃธ
์์ ๊ณ์ธต์ ํ์ ๊ณ์ธต์ ๋ํ ์๋น์ค ์ ๊ณต์๊ฐ ๋๊ณ ํ์ ๊ณ์ธต์ ์์ ๊ณ์ธต์ ํด๋ผ์ด์ธํธ๊ฐ ๋จ
๋ง์ฃผ ๋ณด๋ ๋ ๊ณ์ธต ์ฌ์ด์๋ง ์ํธ์์ฉ์ด ์ด๋ฃจ์ด์ง
ํน์ ๊ณ์ธต๋ง์ ๊ต์ฒดํ์ฌ ์์คํ ์ ๊ฐ์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅ
๋ ์ด์ด N --> ๋ ์ด์ด N-1 --> ... --> ๋ ์ด์ด 1
<ํด๋ผ์ด์ธํธ - ์๋ฒ ํจํด>
ํ๋์ ์๋ฒ์ ๋ค์์ ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑ
์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ์๋ฒ์ ์์ฒญํ๊ณ ์๋ต์ ๋ฐ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋๋นํด ํญ์ ๋๊ธฐ ์ํ ์ ์ง
์์ฒญ์ ์ํ์ฌ ๋๊ธฐํ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์๋ก ๋ ๋ฆฝ์ ์
์๋ฒ -- TCP/IC --> ํด๋ผ์ด์ธํธ
<ํ์ดํ - ํํฐ ํจํด>
๋ฐ์ดํฐ ์คํธ๋ฆผ (๋ฐ์ดํฐ๊ฐ ์ก์์ ๋๊ฑฐ๋ ์ฒ๋ฆฌ๋๋ ํ๋ฆ) ์ ์ฐจ์ ๊ฐ ๋จ๊ณ๋ฅผ ํํฐ ์ปดํฌ๋ํธ๋ก ์บก์ํํ์ฌ ํ์ดํ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์ก
ํํฐ ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉ์ฑ์ด ์ข๊ณ ์ถ๊ฐ๊ฐ ์ฌ์ ํ์ฅ์ด ์ฉ์ด
ํํฐ ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ค์ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ๊ฐ๋ฅ
๋ฐ์ดํฐ ๋ณํ, ๋ฒํผ๋ง, ๋๊ธฐํ ๋ฑ์ ์ฌ์ฉ
Source -- ํ์ดํ1 --> ํํฐ1 -- ํ์ดํ2 --> ํํฐ2 -- ํ์ดํ3 --> Sink
<๋ชจ๋ธ - ๋ทฐ ์ปจํธ๋กค๋ฌ ํจํด MVC >
์๋ธ ์์คํ ์ 3๊ฐ์ ๋ถ๋ถ์ผ๋ก ๊ตฌ์กฐํ
- ๋ชจ๋ธ : ์๋ธ ์์คํ ์ ํต์ฌ ๊ธฐ๋ฅ๊ณผ ๋ฐ์ดํฐ ๋ณด๊ด
- ๋ทฐ : ์ฌ์ฉ์์๊ฒ ์ ๋ณด ํ์
- ์ปจํธ๋กค๋ฌ : ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ๋ ์ ๋ ฅ ์ฒ๋ฆฌ
๊ฐ ๋ถ๋ถ์ ๋ณ๋๋ก ๋ถ๋ฆฌ๋์ด ์์ด ์๋ก ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ฐ ์์ ์ํ
์ฌ๋ฌ ๊ฐ์ ๋ทฐ๋ฅผ ๋ง๋ค ์ ์์ด ํ ๊ฐ์ ๋ชจ๋ธ์ ์ฌ๋ฌ ๊ฐ์ ๋ทฐ๊ฐ ์์ด์ผ ํ๋ ๋ํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉ

๊ธฐํ ํจํด
๋ง์คํฐ- ์ฌ๋ ์ด๋ธ ํจํด : ๋ง์คํฐ ์ปดํฌ๋ํธ์์ ์ฌ๋ ์ด๋ธ ์ปดํฌ๋ํธ๋ก ์์ ์ ๋ถํ ํ ํ ์ฌ๋ ์ด๋ธ ์ปดํฌ๋ํธ์์ ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ค์ ๋๋ ค๋ฐ๋ ๋ฐฉ์
๋ธ๋ก์ปค ํจํด : ์ฌ์ฉ์๊ฐ ์ํ๋ ์๋น์ค์ ํน์ฑ์ ๋ธ๋ก์ปค ์ปดํฌ๋ํธ์ ์์ฒญํ๋ฉด ๋ธ๋ก์ปค ์ปดํฌ๋ํธ๊ฐ ์์ฒญ์ ๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ์ฐ๊ฒฐ
ํผ์ด - ํฌ - ํผ์ด ํจํด : ํผ์ด๋ฅผ ํ๋์ ์ปดํฌ๋ํธ๋ก ๊ฐ์ฃผํ์ฌ ๊ฐ ํผ์ด๋ ํด๋ผ์ด์ธํธ ๋๋ ์๋ฒ๊ฐ ๋ ์๋ ์์
์ด๋ฒคํธ - ๋ฒ์ค ํจํด : ์์ค๊ฐ ํน์ ์ฑ๋์ ์ด๋ฒคํธ ๋ฉ์์ง๋ฅผ ๋ฐํํ๋ฉด ํด๋น ์ฑ๋์ ๊ตฌ๋ ํ ๋ฆฌ์ค๋๋ค์ด ๋ฉ์์ง๋ฅผ ๋ฐ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
๋ธ๋๋ณด๋ ํจํด : ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ๊ณต์ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋ธ๋๋ณด๋ ์ปดํฌ๋ํธ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ฌ ๊ฒ์์ ํตํด ๋ธ๋ ๋ณด๋์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์. ์์ฑ์ธ์, ์ฐจ๋ ์๋ณ, ์ ํธ ํด์ ๋ฑ์ ์ฃผ๋ก ์ด์ฉ
์ธํฐํ๋ฆฌํฐ ํจํด : ํ๋ก๊ทธ๋จ ์ฝ๋์ ๊ฐ ๋ผ์ธ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๊ณ ๊ธฐํธ๋ง๋ค ํด๋์ค๋ฅผ ๊ฐ๋๋ก ๊ตฌ์ฑ
๊ฐ์ฒด์งํฅ
ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด๋ฅผ ๊ธฐ๊ณ์ ๋ถํ์ฒ๋ผ ํ๋์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋ ๊ฐ์ฒด๋ฅผ ์กฐ๋ฆฝํ์ฌ ์์ฑํ ์ ์๋ ๊ธฐ๋ฒ
๊ตฌ์กฐ์ ๊ธฐ๋ฒ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ
์ํํธ์จ์ด์ ์ฌ์ฌ์ฉ ๋ฐ ํ์ฅ์ด ์ฉ์ดํ์ฌ ๊ณ ํ์ง์ ์ํํธ์จ์ด๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์ด ์ ์ง๋ณด์๊ฐ ์ฌ์
๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๋จ๊ณ์ ์ด๊ณ ๊ณ์ธต์ ์ผ๋ก ํํ
๋ฉํฐ๋ฏธ๋์ด ๋ฐ์ดํฐ ๋ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ง์
๊ตฌ์ฑ ์์ : ๊ฐ์ฒด, ํด๋์ค, ๋ฉ์์ง
๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ : ์บก์ํ, ์ ๋ณด์๋, ์์, ์ถ์ํ, ๋คํ์ฑ, ์ฐ๊ด์ฑ
<๊ฐ์ฒด>
๋ฐ์ดํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๋ฅผ ๋ฌถ์ด ์บก์ํํ ํ๋์ ์ํํธ์จ์ด ๋ชจ๋
๋ฐ์ดํฐ : ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด
ํจ์ : ๊ฐ์ฒด๊ฐ ์ํํ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ
๊ฐ์ฒด์ ํน์ฑ
- ๊ฐ์ฒด๋ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ณ ๊ฐ๋ฅํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์
- ๊ฐ์ฒด์ ์ํ๋ ์๊ฐ์ ๋ฐ๋ผ ๋ณํจ
- ๊ฐ์ฒด ๊ฐ์ ์ํธ ์ฐ๊ด์ฑ์ ์ํด ๊ด๊ณ ํ์ฑ
- ๊ฐ์ฒด๊ฐ ๋ฐ์ํ ์ ์๋ ๋ฉ์์ง์ ์งํฉ์ ํ์๋ผ๊ณ ํ๋ฉฐ ๊ฐ์ฒด๋ ํ์์ ํน์ง์ ๋ํ๋ผ ์ ์์
- ๊ฐ์ฒด๋ ์ผ์ ํ ๊ธฐ์ต ์ฅ์๋ฅผ ๊ฐ์ง๊ณ ์์
<ํด๋์ค>
๊ณตํต๋ ์์ฑ๊ณผ ์ฐ์์ ๊ฐ๋ ๊ฐ์ฒด์ ์งํฉ์ผ๋ก ๊ฐ์ฒด์ ์ผ๋ฐ์ ์ธ ํ์ ์ ์๋ฏธ
๊ฐ๊ฐ์ ๊ฐ์ฒด๋ค์ด ๊ฐ๋ ์์ฑ๊ณผ ์ฐ์ฐ์ ์ ์ํ๊ณ ์๋ ํ
์ธ์คํด์ค : ํด๋์ค์ ์ํ ๊ฐ๊ฐ์ ๊ฐ์ฒด
์ธ์คํด์ค ํ : ํด๋์ค๋ก๋ถํฐ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ
์ํผ ํด๋์ค : ํน์ ํด๋์ค์ ์์ ํด๋์ค
์๋ธ ํด๋์ค : ํน์ ํด๋์ค์ ํ์ ํด๋์ค
<๋ฉ์์ง>
๊ฐ์ฒด ๊ฐ์ ์ํธ์์ฉ์ด ์ผ์ด๋๊ธฐ ์ํด์ ๋ฉ์์ง๊ฐ ํ์ํ๋ฉฐ ๋ฉ์์ง๋ฅผ ํตํ์ฌ ๊ฐ์ฒด์ ๋์์ด ์ํ๋จ
๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ
- ์บก์ํ Encapsulation
๋ฐ์ดํฐ์ ํจ์๋ฅผ ํ๋๋ก ๋ฌถ์ ๊ฒ
์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ ์ธ๋ถ ๋ด์ฉ์ด ์ํ๋์ด ์ธ๋ถ์์ ์ ๊ทผ์ด ์ ํ์ ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์์ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ค์
- ์ ๋ณด ์๋ Information Hiding
๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ ์์ ์ ์๋ฃ๋ฅผ ์จ๊ธฐ๊ณ ์์ ์ ์ฐ์ฐ๋ง์ ํตํ์ฌ ์ ๊ทผ์ ํ์ฉํ๋ ๊ฒ
์ ๋ณด ์๋์ ๊ฐ์ฅ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ ๊ณ ๋ ค๋์ง ์์ ์ํฅ (Side Effect)๋ฅผ ์ต์ํ ํ๋ ๊ฒ
- ์์ Inheritance
์ด๋ฏธ ์ ์๋ ์์ ํด๋์ค์ ๋ชจ๋ ์์ฑ๊ณผ ์ฐ์ฐ์ ํ์ ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ
ํ์ ํด๋์ค๋ ๋ถ๋ชจ ํด๋์ค์ ๋๋ ์์ฑ๊ณผ ์ฐ์ฐ์ ๋ค์ ์ ์ํ์ง ์๊ณ ์ฌ์ฉํ ์ ์์
ํ์ ํด๋์ค๋ ์์๋ฐ์ ์์ฑ ์ธ์ ์๋ก์ด ์์ฑ๊ณผ ์ฐ์ฐ์ ์ฒจ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์์
๊ฐ์ฒด์ ํด๋์ค์ ์ฌ์ฌ์ฉ์ ๋์ด๋ ์ค์ํ ๊ฐ๋
๋ค์ค ์์ : ํ ๊ฐ์ ํด๋์ค๊ฐ ๋ ๊ฐ ์ด์์ ์์ ํด๋์ค๋ก๋ถํฐ ์์๋ฐ๋ ๊ฒ
- ์ถ์ํ Abstraction
์ค์ํ๊ณ ๊ด๊ณ์๋ ๋ถ๋ถ๋ง์ ๋ถ๋ฆฌํ์ฌ ๋จ์ํํ๋ ๊ฒ
- ๋คํ์ฑ Polymorphism
๋ฉ์์ง์ ์ํด ๊ฐ์ฒด๊ฐ ์ฐ์ฐ์ ์ํํ๊ฒ ๋ ๋ ํ๋์ ๋ฉ์์ง์ ๋ํด ๊ฐ๊ฐ์ ํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ณ ์ ํ ๋ฐฉ๋ฒ์ผ๋ก ์๋ตํ ์ ์๋ ๋ฅ๋ ฅ
๊ฐ์ฒด์งํฅ์ ์ค๋ฒ ๋ก๋ฉ์ ๊ฐ๋
C++ ์ค๋ฒ ๋ก๋ฉ๊ณผ ์ค๋ฒ ๋ผ์ด๋ฉ
- ์ฐ๊ด์ฑ Relation
ํด๋์ค๊ฐ์ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ ์
๊ฐ์ฒด๊ฐ์ ๊ด๊ณ๋ฅผ ์ธ๋ถ์ ์ผ๋ก ์ ์ํ์ฌ ๊ตฌํ ์ฉ์
์ผ๋ฐํ Generalization : is - a
์์ธํ Specialization : has - a
์ง๋จํ Aggregation : is part of
๊ฐ์ฒด์งํฅ ์ํํธ์จ์ด ์ค๊ณ์ 5์์น ( SOLID )
S : Single responsibility principle (๋จ์ผ ์ฑ ์ ์์น)
ํ๋์ ํด๋์ค๋ ํ๋์ ์ฑ ์์ ๊ฐ๋๋ค
ํด๋์ค๋ ๋ชจ๋์ ํ๊ฐ์ง ๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ ์ด์ ๋ ๋ฑ ํ๊ฐ์ง์ฌ์ผ ํ๋ค.
ํ ๊ฐ์ ํด๋์ค์ ๋ ์ด์์ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ์์ผ๋ฉด ๋ณต์กํด์ง๋ค.
O : Open Closed principle ( ๊ฐ๋ฐฉ ํจ์ ์์น )
์ํํธ์จ์ด์ ๊ฐ ์์๋ ํ์ฅ์ ์ด๋ ค์๊ณ ๋ณ๊ฒฝ์๋ ๋ซํ์์ด์ผ ํ๋ค.
๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํ์ง ๋ง๊ณ ์์๊ณผ ํ์ฅ์ ํ์ฉํ์ฌ ๋ณ๊ฒฝํ๋ค.
L : Liskov substitution principle ( ๋ฆฌ์ค์ฝํ ๊ตํ ๋ฐฉ์)
์๋ธํ์ ์ ๊ธฐ๋ฐํ์ ์ผ๋ก ๊ตํํ ์ ์๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ค.
์์์ ๋คํ์ฑ์ ํตํ์ฌ ํ์ฅ์ฑ์ ๊ทน๋ํ ํ๋ ค๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
I : Interface segregation principle ( ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น )
ํ์ํ ๋ฉ์๋๋ง ์ธํฐํ์ด์ค๋ก ์ ๊ณตํ๊ณ ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋์๋ ์ฐ๊ฒฐ๊ด๊ณ๋ฅผ ์ ๊ณตํ์ง ๋ง์์ผ ํ๋ค.
๋ฒ์ฉ์ ํตํฉ ์ธํฐํ์ด์ค๋ณด๋ค๋ ํน์ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ์ฌ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋๋ ๊ฒ์ด ๋ ๋ซ๋ค.
D : Dependency inversion principle ( ์์กด๊ด๊ณ ์ญ์ ์์น )
๊ตฌ์ฒด์ ์ธ ํด๋์ค์ ์์กดํ์ง ๋ง๊ณ , ์ถ์ํ๋ ๊ฒ์ ์์กดํ์ฌ ์ค๊ณํ๋ค.
์์ ๋ชจ๋์ด ํ์๋ชจ๋์ ์์กด์ ์ด๋ฉด ํ์๋ชจ๋์ ๋ณ๊ฒฝ์ ์์๋ชจ๋์ด ์ํฅ์ ๋ฐ๊ฒ ๋๋ฏ๋ก, ์์๋ชจ๋์ด ํ์๋ชจ๋์ ์์กดํ์ง ์๋๋ก ํ๊ณ ๋ชจ๋ ๋ณ๋์ ์ถ์ํ์ ์์กดํ๋๋ก ํ๋ค.
๋ชจ๋
๋ชจ๋ํ๋ฅผ ํตํด ๋ถ๋ฆฌ๋ ์์คํ ์ ๊ฐ ๊ธฐ๋ฅ
์๋ธ๋ฃจํด, ์๋ธ ์์คํ , ์ํํธ์จ์ด ๋ด์ ํ๋ก๊ทธ๋จ, ์์ ๋จ์ ๋ฑ๊ณผ ๊ฐ์ ์๋ฏธ๋ก ์ฌ์ฉ
๋จ๋ ์ผ๋ก ์ปดํ์ผ ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ฌ์ฉ ํ ์ ์์
๊ฐ ๋ชจ๋์ ๊ธฐ๋ฅ์ด ์๋ก ๋ ๋ฆฝ์ ์ด๊ณ ๋ชจ๋์ด ํ๋์ ๊ธฐ๋ฅ๋ง์ ์ํํ๊ณ ๋ค๋ฅธ ๋ชจ๋๊ณผ์ ๊ณผ๋ํ ์ํธ์์ฉ์ ๋ฐฐ์ ํจ
๋ ๋ฆฝ์ฑ์ด ๋์์๋ก ๋ชจ๋์ ์์ ํด๋ ๋ค๋ฅธ ๋ชจ๋์ ์ํฅ์ด ์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํด๋ ์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅ
๋ชจ๋์ ๋ ๋ฆฝ์ฑ์ ๋์ด๊ธฐ ์ํด์๋ ๊ฒฐํฉ๋๋ ์ฝํ๊ฒ, ์์ง๋๋ ๊ฐํ๊ฒ ํด์ผ ํจ
<๊ฒฐํฉ๋> ๋ด๊ณต์ธ์ ์ค์
๋ชจ๋ ๊ฐ์ ์ํธ ์์กด๋ ๋๋ ๋ชจ๋ ์ฌ์ด์ ์ฐ๊ด ๊ด๊ณ
๊ฒฐํฉ๋์ ํ์ง์ ๋ฐ๋น๋ก ๊ด๊ณ
๊ฒฐํฉ๋๊ฐ ๊ฐํ๋ฉด ์์คํ ๊ตฌํ ๋ฐ ์ ์ง๋ณด์ ์์ ์ด ์ด๋ ค์

<์์ง๋> ๊ธฐ์ํต์ ์๋ ผ์ฐ
์ ๋ณด ์๋ ๊ฐ๋ ์ ํ์ฅํ ๊ฒ์ผ๋ก ๋ชจ๋ ๋ด๋ถ ์์๋ค์ ์๋ก ๊ด๋ จ๋ ์ ๋
๋ชจ๋์ด ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ผ๋ก ์ ์๋ ์ ๋
์์ง๋ ํ์ง์ ๋น๋ก ๊ด๊ณ

<ํฌ์ธ, ํฌ์์>
ํฌ์ธ : ํธ์ถํ๋ ๋ชจ๋์ ์ (Indegree)
ํฌ์์ : ํธ์ถ๋๋ ๋ชจ๋์ ์ (outdegree)
๊ณตํต ๋ชจ๋
์ฌ๋ฌ ํ๋ก๊ทธ๋จ์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ชจ๋
์์ฃผ ์ฌ์ฉ๋๋ ๊ณ์ฐ์์ด๋ ๋งค๋ฒ ํ์ํ ์ฌ์ฉ์ ์ธ์ฆ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ๊ณตํต ๋ชจ๋๋ก ๊ตฌ์ฑ๋ ์ ์์
๊ณตํต ๋ชจ๋์ ๋ช ์ธ ๊ธฐ๋ฒ : ์ ํ์ฑ(๊ธฐ๋ฅ์ ํ์๋ฅผ ์ ํํ๊ฒ ๊ธฐ์ ), ๋ช ํ์ฑ(์ค์์ ์ผ๋ก ํด์๋์ง ์๋๋ก), ์์ ์ฑ(๊ตฌํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๊ธฐ์ ), ์ผ๊ด์ฑ(์ํธ ์ถฉ๋์ด ์๋๋ก), ์ถ์ ์ฑ(๊ธฐ๋ฅ์ ๋ํ ์ถ์ฒ, ๊ด๋ จ ์์คํ ๊ณผ์ ๊ด๊ณ๋ฅผ ํ์ ํ ์ ์๋๋ก)
<์ฌ์ฌ์ฉ>
๋น์ฉ๊ณผ ์๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด ์ด๋ฏธ ๊ฐ๋ฐ๋ ๊ธฐ๋ฅ๋ค์ ํ์ ํ๊ณ ์ฌ๊ตฌ์ฑํ์ฌ ์๋ก์ด ์์คํ ๊ฐ๋ฐ์ ์ฌ์ฉํ๊ธฐ ์ ํฉํ๋๋ก ์ต์ ํ์ํค๋ ์์
์ฌ์ฌ์ฉ ๋๋ ๋์์ ์ธ๋ถ ๋ชจ๋๊ณผ์ ๊ฒฐํฉ๋๋ ๋ฎ๊ณ ์์ง๋๋ ๋์์ผ ํจ
<ํจ์จ์ ์ธ ๋ชจ๋ ์ค๊ณ ๋ฐฉ์>
๊ฒฐํฉ๋๋ ์ค์ด๊ณ ์์ง๋๋ ๋์ฌ ๋ชจ๋์ ๋ ๋ฆฝ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์
ํ๋์ ์ ๊ตฌ์ ํ๋์ ์ถ๊ตฌ๋ฅผ ๊ฐ์ ธ์ผ ํจ
์ฝ๋
์ปดํจํฐ๋ฅผ ์ด์ฉํ์ฌ ์๋ฃ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ๋ถ๋ฅ, ์กฐํฉ ๋ฐ ์ง๊ณ๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ณ ํน์ ์๋ฃ์ ์ถ์ถ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐํธ
์ฝ๋์ ๊ธฐ๋ฅ : ์๋ณ ๊ธฐ๋ฅ(๋ฐ์ดํฐ์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๊ตฌ๋ถ ๊ฐ๋ฅ), ๋ถ๋ฅ ๊ธฐ๋ฅ(ํน๋ณํ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฅ ๊ฐ๋ฅ), ๋ฐฐ์ด ๊ธฐ๋ฅ(์๋ฏธ๋ฅผ ๋ถ์ฌํ๊ฑฐ๋ ๋์ดํ ์ ์์)
์ฝ๋์ ์ข ๋ฅ
- ์์ฐจ ์ฝ๋ : ์ผ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ต์ด์ ์๋ฃ๋ถํฐ (๋ฐ์ ์์์ ๋ฐ๋ผ) ์ฐจ๋ก๋๋ก ์ผ๋ จ ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ
- ๋ธ๋ก ์ฝ๋ : ๋์ ํญ๋ณต์์ ๊ณตํต์ ์ธ ๊ฒ๋ค์ ๋ธ๋ก์ผ๋ก ๊ตฌ๋ถํ๊ณ ๋ธ๋ก์ ์ผ๋ จ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ
- 10์ง ์ฝ๋ : ๋์ ํญ๋ณต์ 0~9๊น์ง 10์ง ๋ถํ ํ๊ณ ๋ค์ ๊ฐ๊ฐ์ ๋ํ์ฌ 10์ง ๋ถํ ์ ํ์ํ ๋งํผ ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ (๋์ ๋ถ๋ฅ ์ฝ๋ 1000)
- ๊ทธ๋ฃน ๋ถ๋ฅ ์ฝ๋ : ์ผ์ ๊ธฐ์ค์ ๋ฐ๋ผ ๋๋ถ๋ฅ, ์ค๋ถ๋ฅ, ์๋ถ๋ฅ ๋ฑ์ผ๋ก ๊ตฌ๋ฌธํ๊ณ ๊ทธ๋ฃน ์์์ ์ผ๋ จ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ (1-01-001)
- ์ฐ์ ์ฝ๋ : ํญ๋ชฉ์ ๋ช ์นญ์ด๋ ์ฝํธ์ ๊ด๊ณ์๋ ์ซ์, ๋ฌธ์, ๊ธฐํธ๋ฅผ ์ด์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ (TV-23)
- ํ์ ์ซ์ ์ฝ๋ = ์ ํจ ์ซ์ ์ฝ๋ : ํญ๋ชฉ์ ์ฑ์ง(๊ธธ์ด, ๋์ด, ๋ถํผ, ์ง๋ฆ ๋ฑ)์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ฅผ ๊ทธ๋๋ก ์ฝ๋์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
- ํฉ์ฑ ์ฝ๋ : ํ๋์ ์ฝ๋๋ก ์ํํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ 2๊ฐ ์ด์์ ์ฝ๋๋ฅผ ์กฐํฉํ์ฌ ์ ์ฉํ๋ ๋ฐฉ๋ฒ (KE-811)
์ฝ๋ ๋ถ์ฌ ์ฒด๊ณ
์ฝ๋ (์ด๋ฆ)๋ง์ผ๋ก๋ ๊ฐ์ฒด์ ์ฉ๋์ ์ ์ฉ ๋ฒ์๋ฅผ ์ ์์๋๋ก ์ฝ๋๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์
์์คํ ์ ๊ณ ์ ํ ์ฝ๋์ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ์ฝ๋ ๋ฑ์ด ์ ์๋์ด์ผ ํจ
๋์์ธ ํจํด
๊ฐ ๋ชจ๋์ ์ธ๋ถํ๋ ์ญํ ์ด๋ ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์์ค์ ์ธ๋ถ์ ์ธ ๊ตฌํ ๋ฐฉ์์ ์ค๊ณํ ๋ ์ฐธ์กฐํ ์ ์๋ ์ ํ์ ์ธ ํด๊ฒฐ๋ฐฉ์ ๋๋ ์์
๊ฐ๋ฐ ๊ณผ์ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ ์ ์๋ก ํด๊ฒฐ์ฑ ์ ๊ตฌ์ํ๊ธฐ๋ณด๋ค ๋ฌธ์ ์ ํด๋นํ๋ ๋์์ธ ํจํด์ ์ฐธ๊ณ ํ์ฌ ์ ์ฉํ๋ ๊ฒ์ด ๋์ฑ ํจ์จ์ ์
์ฌ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ณธํ ์ฝ๋๋ค์ด ํฌํจ๋์ด ์์
์์ฑ ํจํด
๊ฐ์ฒด์ ์์ฑ๊ณผ ์ฐธ์กฐ ๊ณผ์ ์ ์ํํ ํ์ฌ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋์ด๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ ์ํฅ์ ํฌ๊ฒ ๋ฐ์ง ์๋๋ก ํ์ฌ ํ๋ก๊ทธ๋จ์ ์ ์ฐ์ฑ์ ๋ํด์ค
- ์ถ์ ํฉํ ๋ฆฌ : ๊ตฌ์ฒด์ ์ธ ํด๋์ค์ ์์กดํ์ง ์๊ณ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์๋ก ์ฐ๊ด, ์์กดํ๋ ๊ฐ์ฒด๋ค์ ๊ทธ๋ฃน์ผ๋ก ์์ฑํ์ฌ ์ถ์์ ์ผ๋ก ํํ
- ๋น๋ : ์๊ฒ ๋ถ๋ฆฌ๋ ์ธ์คํด์ค๋ฅผ ๊ฑด์ถํ๋ฏ์ด ์กฐํฉํ์ฌ ๊ฐ์ฒด ์์ฑ
- ํฉํ ๋ฆฌ ๋ฉ์๋ : ๊ฐ์ฒด ์์ฑ์ ์๋ธ ํด๋์ค์์ ์ฒ๋ฆฌํ๋๋ก ๋ถ๋ฆฌํ์ฌ ์บก์ํํ ํจํด
- ํ๋กํ ํ์ : ์๋ณธ ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํจํด
- ์ฑ๊ธํค : ํ๋์ ๊ฐ์ฑ๋ฅผ ์์ฑํ๋ฉด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ด๋์๋ ์ฐธ์กฐํ ์ ์์ง๋ง ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฐธ์กฐํ ์๋ ์์
๊ตฌ์กฐ ํจํด
ํด๋์ค๋ ๊ฐ์ฒด๋ค์ ์กฐํฉํ์ฌ ๋ ํฐ ๊ตฌ์กฐ๋ก ๋ง๋ค ์ ์๊ฒ ํด์ฃผ๋ ํจํด
- ์ด๋ํฐ : ํธํ์ฑ์ด ์๋ ํด๋์ค๋ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฅธ ํด๋์ค๊ฐ ์ด์ฉํ ์ ์๋๋ก ๋ณํํด์ฃผ๋ ํจํด
- ๋ธ๋ฆฌ์ง : ๊ตฌํ๋ถ์์ ์ถ์์ธต์ ๋ถ๋ฆฌํ์ฌ ์๋ก๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์๋๋ก ๊ตฌ์ฑํ ํจํด (๊ธฐ๋ฅ๊ณผ ๊ตฌํ ๋ถ๋ฆฌ)
- ์ปดํฌ์งํธ : ๋ณตํฉ ๊ฐ์ฒด์ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ ์์ด ๋ค๋ฃจ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ํจํด
- ๋ฐ์ฝ๋ ์ดํฐ : ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ์ ํตํด ๋ฅ๋์ ์ผ๋ก ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ ํจํด, ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ง๋ถ์
- ํผ์จ๋ : ๋ณต์กํ ์๋ธ ํด๋์ค๋ค์ ํผํด ๋ ์์์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ํจ์ผ๋ก์จ ์๋ธ ํด๋์ค์ ๊ธฐ๋ฅ์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ํจํด
- ํ๋ผ์ด์จ์คํธ : ์ธ์คํด์ค๊ฐ ํ์ํ ๋๋ง๋ค ์์ฑํ๋ ๊ฒ์ด ์๋ ๊ณต์ ํด์ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ ํจํด
- ํ๋ก์ : ์ ๊ทผ์ด ์ด๋ ค์ด ๊ฐ์ฒด์ ์ฌ๊ธฐ์ ์ฐ๊ฒฐํ๋ ค๋ ๊ฐ์ฒด ์ฌ์ด์์ ์ธํฐํ์ด์ค ์ญํ ์ ์ํํ๋ ํจํด
ํ์ ํจํด
ํด๋์ค๋ ๊ฐ์ฒด๋ค์ด ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ ์ฑ ์ ๋ถ๋ฐฐ ๋ฐฉ๋ฒ์ ์ ์ํ ํจํด
- ์ฑ ์ ์ฐ์ : ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์กด์ฌํ์ฌ์ ํ ๊ฐ์ฒด๊ฐ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ฉด ๋ค์ ๊ฐ์ฒด๋ก ๋์ด๊ฐ๋ ํํ์ ํจํด
- ์ปค๋งจ๋ : ์์ฒญ์ ๊ฐ์ฒด์ ํํ๋ก ์บก์ํํ์ฌ ์ฌ์ด์ฉํ๊ฑฐ๋ ์ทจ์ํ ์ ์๋๋ก ์์ฒญ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๋ก๊ทธ์ ๋จ๊ธฐ๋ ํจํด
- ์ธํฐํ๋ฆฌํฐ : ์ธ์ด์ ๋ฌธ๋ฒ ํํ์ ์ ์ํ๋ ํจํด (SQL, ํต์ ํ๋กํ ์ฝ ๊ฐ๋ฐ์ ์ฌ์ฉ)
- ๋ฐ๋ณต์ : ์๋ฃ ๊ตฌ์กฐ์ ๊ฐ์ด ์ ๊ทผ์ด ์์ฃผ ์ผ์ด๋๋ ๊ฐ์ฒด์ ๋ํด ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ฐจ์ ์ธ ์ ๊ทผ ๊ฐ๋ฅ
- ์ค์ฌ์ : ์๋ง์ ๊ฐ์ฒด ๊ฐ์ ๋ณต์กํ ์ํธ์์ฉ์ ์บก์ํํ์ฌ ๊ฐ์ฒด๋ก ์ ์ํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ํจํด
- ๋ฉ๋ฉํ : ํน์ ์์ ์์์ ๊ฐ์ฒด ๋ด๋ถ ์ํ๋ฅผ ๊ฐ์ฒดํํจ์ผ๋ก์จ ์ดํ ์์ฒญ์ ๋ฐ๋ผ ๊ฐ์ฒด์ ์ํ๋ฅผ ๋๋๋ฆด ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํจํด
- ์ต์ ๋ฒ : ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณํํ๋ฉด ๊ฐ์ฒด์ ์์๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ๋ณํ๋ ์ํ๋ฅผ ์ ๋ฌํ๋ ํจํด
- ์ํ : ๊ฐ์ฒด์ ์ํ์ ๋ฐ๋ผ ๋์ผํ ๋์์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๋ ์ฌ์ฉํ๋ ํจํด
- ์ ๋ต : ๋์ผํ ๊ณ์ด์ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์บก์ํํ์ฌ ์ํธ ๊ตํํ ์ ์๊ฒ ์ ์ํ๋ ํจํด
- ํฌํ๋ฆฟ ๋ฉ์๋ : ์์ ํด๋์ค์์ ๊ณจ๊ฒฉ์ ์ ์ํ๊ณ ํ์ ํด๋์ค์์ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฒดํํ๋ ๊ตฌ์กฐ์ ํจํด
- ๋ฐฉ๋ฌธ์ : ๊ฐ ํด๋์ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๋ณ๋์ ํด๋์ค๋ก ๊ตฌ์ฑํ๋ ํจํด
๋ผ๋ฐ์ฐ ๋ถ์ ๊ธฐ๋ฒ
์ํํธ์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ๊ทธ๋ํฝ ํ๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ๋ชจ๋ธ๋ง
๊ฐ์ฒด ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ OMT (Object Modeling Technique)์ด๋ผ๊ณ ๋ ํจ
๋ถ์ ํ๋์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง, ๋์ ๋ชจ๋ธ๋ง, ๊ธฐ๋ฅ ๋ชจ๋ธ๋ง์ ํตํด ์ด๋ฃจ์ด์ง
- ๊ฐ์ฒด ๋ชจ๋ธ๋ง (Object Modeling)
๊ฐ์ฒด ๋ค์ด์ด๊ทธ๋จ (๊ฐ์ฒด ๊ด๊ณ)๋ก ํ์
๊ฐ์ฅ ์ค์ํ๋ฉฐ ์ ํ๋์ด์ผํ ๋ชจ๋ธ๋ง
์์
1. ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ์๋ณ
2. ํด๋์ค์ ๋ํ ์๋ฃ๋ฅผ ์ฌ์ ์์ฑ
3. ํด๋์ค ๊ฐ์ ๊ด๊ณ ์ ์
4. ๊ฐ์ฒด ์์ฑ ๋ฐ ์ฐ๊ฒฐ ๊ด๊ณ ์ ์
5. ํด๋์ค ๊ณ์ธตํ ๋ฐ ๋ชจ๋๋ก ์ ์
6. ์์ฑ๋ ๋ชจํ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฒ์ฆ
- ๋์ ๋ชจ๋ธ๋ง (Dynamic Modeling)
์ํ ๋ค์ด์ด๊ทธ๋จ (์ํ๋)๋ฅผ ์ด์ฉํด ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ฅธ ๊ฐ์ฒด๋ค ๊ฐ์ ์ ์ดํ๋ฆ, ์ํธ์์ฉ, ๋์ ์์ ๋ฑ์ ๋์ ์ธ ํ์๋ฅผ ํํํ๋ ๋ชจ๋ธ๋ง
์์
1. ์ฌ๊ฑด์ ์ํจ ์์ฉ ์์์ ๋ํ ์๋๋ฆฌ์ค ์์ฑ
2. ์๋๋ฆฌ์ค๋ฅผ ์ญํ ๊ณผ ์๊ฐ์ ๋ฐ๋ผ ํ๊ธฐํ ํ ์ฌ์ ์ถ์ ๋ ์์ฑ
3. ์ฌ๊ฑด ์ถ์ ๋๋ฅผ ์ฌ๊ฑด ๋ฐ์์์ ๊ด๊ณ๋ก ์ค๋ช ํ๋ ์ฌ๊ฑด ํ๋ฆ๋ ์์ฑ
4. ์ฌ๊ฑด๊ณผ ์ํ๋ฅผ ์ฐ๊ฒฐ์ํจ ์ํ๋ก ์์ฑ
- ๊ธฐ๋ฅ ๋ชจ๋ธ๋ง (Functional Modeling)
์๋ฃ ํ๋ฆ๋ (DFD)๋ฅผ ์ด์ฉํ์ฌ ๋ค์์ ํ๋ก์ธ์ค๋ค ๊ฐ์ ์๋ฃ ํ๋ฆ์ ์ค์ ์ผ๋ก ์ฒ๋ฆฌ
์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ฌ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ ๊ฒ์ด๊ฐ๋ฅผ ํํํจ
์์
1. ์ธ๋ถ์ ์์คํ ๊ฐ์ ์ ์ถ๋ ฅ ์๋ฃ๋ฅผ ์ ์
2. ์๋ฃ ํ๋ฆ๋๋ฅผ ์์ธํ
3. ํ๋ก์ธ์ค ๊ธฐ๋ฅ์ ๋ํ ์ ์๋ฅผ ๊ธฐ๋ฅ ๋ช ์ธ์๋ก ์์ฑ
4. ์ ์ฝ ์กฐ๊ฑด ํ์
5. ์ต์ ํ ๊ธฐ์ค ๋ช ์ธํ
์๋ฃ ํ๋ฆ๋ DFD (Data Flow Diagram)
๊ตฌ์กฐ์ ๋ถ์ ๊ธฐ๋ฒ์ ์ด์ฉ
์๋ฃ ํ๋ฆ๊ณผ ๊ธฐ๋ฅ์ ์์ธํ ํํํ๊ธฐ ์ํด ๋จ๊ณ์ ์ผ๋ก ์ธ๋ถํ
์๋ฃ ํ๋ฆ ๊ทธ๋ํ ๋๋ ๋ฒ๋ธ(Bubble)์ฐจํธ๋ผ๊ณ ๋ ํ๋ค
๊ตฌ์ฑ์์
process (์)
data flow (ํ์ดํ)
data store (๋จ์ /์ด์ค์ )
terminator (์ฌ๊ฐํ)
์์ฑ ์ง์นจ
์๋ฃ๋ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ์ณ ๋ณํ๋ ๋๋ง๋ค ์๋ก์ด ๋ช ์นญ์ ๋ถ์ฌํด์ผ ํ๋ค.
์๋ฃํ๋ฆ๋์ ์ตํ์ ์ฒ๋ฆฌ(process)๋ ์๋จ์ ๋ช ์ธ์๋ฅผ ๊ฐ๋๋ค.
์ด๋ค ์ฒ๋ฆฌ(process)๊ฐ ์ถ๋ ฅ์๋ฃ๋ฅผ ์ฐ์ถํ๊ธฐ ์ํด์๋ ํ์ํ ์๋ฃ๊ฐ ๋ฐ๋์ ์ ๋ ฅ๋์ด์ผ ํ๋ค.
์์๋จ๊ณ์ ์ฒ๋ฆฌ(Process)์ ํ์ ์๋ฃํ๋ฆ๋์ ์๋ฃ ํ๋ฆ์ ์๋ก ์ผ์น๋ผ์ผ ํ๋ค.
์๋ฃ ์ฌ์ DD (Data Dictionary)
๊ธฐํธ
= ์ ์(is composed of)
+ ์ฐ๊ฒฐ(and)
{} ๋ฐ๋ณต(iteration of)
[] ์ ํ(choose only one of)
() ์๋ต(optional)
** ์ฃผ์(comment)
์์ฑ ์ ๊ณ ๋ ค์ฌํญ
๊ฐฑ์ ํ๊ธฐ ์ฌ์์ผ ํ๋ค
์ด๋ฆ์ผ๋ก ์ ์๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์ด์ผ ํ๋ค.
์ ์ํ๋ ๋ฐฉ์์ด ๋ช ํํด์ผ ํ๋ค
2020 ~ 2022 ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ์ถ์ ๊ธฐ์ค
ํ๊ธฐ ๊ฒ์ ๋ฐฉ๋ฒ : ๊ฐ๊ด์ ๋ฌธ์ ์ : 100 ์ํ์๊ฐ : 2์๊ฐ 30๋ถ ์ํํธ์จ์ด ์ค๊ณ 20๋ฌธํญ ์๊ตฌ์ฌํญ ํ์ธ ํํ ์์คํ ๋ถ์ ์๊ตฌ์ฌํญ ํ์ธ ๋ถ์ ๋ชจ๋ธ ํ์ธ ํ๋ฉด ์ค๊ณ UI ์๊ตฌ์ฌํญ ํ์ธ UI ์ค๊ณ ์ ํ๋ฆฌ์ผ์ด
ezyoon.tistory.com
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ๊ตฌํ (0) | 2021.02.20 |
---|---|
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ์ธํฐํ์ด์ค ์ค๊ณ (0) | 2021.02.18 |
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ํ๋ฉด ์ค๊ณ (0) | 2021.02.16 |
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ์๊ตฌ์ฌํญ ํ์ธ (0) | 2021.02.09 |
2020 ~ 2022 ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ์ถ์ ๊ธฐ์ค (0) | 2021.02.09 |