157. ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
๊ตฌ์กฐ์ ๋ฐฉ๋ฒ๋ก
์ ํํ๋ ๋ถ์ ์ ์ฐจ์ ๋ฐ๋ผ ์ฌ์ฉ์ ์๊ตฌ์ฌํญ์ ํ์ ํ์ฌ ๋ฌธ์ํํ๋ ์ฒ๋ฆฌ ์ค์ฌ์ ๋ฐฉ๋ฒ๋ก
• ๊ตฌ์กฐ์ ๋ฐฉ๋ฒ๋ก ์ ์ ์ฐจ (ํ๊ณ์์ค๊ตฌ์์ )
ํ๋น์ฑ ๊ฒํ ๋จ๊ณ → ๊ณํ ๋จ๊ณ → ์๊ตฌ์ฌํญ ๋ถ์ ๋จ๊ณ → ์ค๊ณ ๋จ๊ณ → ๊ตฌํ ๋จ๊ณ → ์ํ ๋จ๊ณ → ์ด์ฉ/์ ์ง๋ณด์ ๋จ๊ณ
์ ๋ณด๊ณตํ ๋ฐฉ๋ฒ๋ก
์ ๋ณด ์์คํ ์ ๊ฐ๋ฐ์ ์ํด ๊ณํ, ๋ถ์, ์ค๊ณ, ๊ตฌ์ถ์ ์ ํํ๋ ๊ธฐ๋ฒ๋ค์ ์ํธ ์ฐ๊ด์ฑ ์๊ฒ ํตํฉ ๋ฐ ์ ์ฉํ๋ ์๋ฃ ์ค์ฌ์ ๋ฐฉ๋ฒ๋ก
- ๋๊ท๋ชจ ์ ๋ณด ์์คํ ์ ๊ตฌ์ถํ๋๋ฐ ์ ํฉ
๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก
์ํํธ์จ์ด ๊ฐ๋ฐ ์ ๊ธฐ๊ณ์ ๋ถํ์ ์กฐ๋ฆฝํ๋ฏ์ด ๊ฐ์ฒด๋ค์ ์กฐ๋ฆฝํด์ ํ์ํ ์ํํธ์จ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ๋ก
- ๊ตฌ์ฑ ์์์๋ ๊ฐ์ฒด, ํด๋์ค, ๋ฉ์์ง ๋ฑ์ด ์์
- ๊ธฐ๋ณธ ์์น์๋ ์บก์ํ, ์ ๋ณด ์๋, ์ถ์ํ, ์์์ฑ, ๋คํฅ์ฑ ๋ฑ์ด ์์
• ๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก ์ฉ์ด
- ๊ฐ์ฒด(Object) : ๋ฐ์ดํฐ์ ํจ์(์๋ฃ๊ตฌ์กฐ์ ์ฐ์ฐ)๋ฅผ ๋ฌถ์ด ๋์ ํ๋์ ์ํํธ์จ์ด ๋ชจ๋
- ํด๋์ค(Class) : ๊ณตํต๋ ์ก์ฑ๊ณผ ์ฐ์ฐ์ ๊ฐ๋ ๊ฐ์ฒด์ ์งํฉ
- ๋ฉ์์ง(Message) : ๊ฐ์ฒด์ ๊ฐ์ฒด ๊ฐ์ ํต์ ์๋จ
- ์บก์ํ(Encapsulation) : ๋ฐ์ดํฐ์ ํจ์๋ฅผ ํ๋๋ก ๋ฌถ๋ ๊ฒ
- ์ ๋ณด ์๋(Information Hiding) : ๋ค๋ฅธ ๊ฐ์ฒด์ ์์ ์ ์ ๋ณด๋ฅผ ์จ๊ธฐ๊ณ ์ฐ์ฐ๋ง์ ํตํด ์ ๊ทผ ํ์ฉํ๋ ๊ฒ
- ์ถ์ํ(Abstraction) : ๋ถํ์ํ ๋ถ๋ถ ์๋ต, ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ค์ ์ ๋์ด ๊ฐ๋ตํํ๋ ๊ฒ
- ์์์ฑ(inheritance) : ์์ ํด๋์ค์ ๋ชจ๋ ์์ฑ๊ณผ ์ฐ์ฐ์ ํ์ ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ
- ์ถ์ํ(Abstraction) : ๋ถํ์ํ ๋ถ๋ถ ์๋ต, ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ค์ ์ ๋์ด ๊ฐ๋ตํํ๋ ๊ฒ
- ๋คํฅ์ฑ(Polymorphism) : ๋ค๋ฅธ ํํ๋ก ์๋ต
์ปดํฌ๋ํธ ๊ธฐ๋ฐ(CBD; Component Based Design) ๋ฐฉ๋ฒ๋ก
๊ธฐ์กด์ ์์คํ ์ด๋ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํ์ฌ ํ๋์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ๋ก
์ปดํฌ๋ํธ(Component) : ๋ฌธ์, ์์ค์ฝ๋, ํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ ๋ชจ๋ํ ๋ ์์์ผ๋ก, ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
์ ์์ผ(Agile) ๋ฐฉ๋ฒ๋ก
๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ ๋ณํ์ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋๋ก ์ผ์ ํ ์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ๋ฐ ๊ณผ์ ์ ์งํํ๋ ๋ฐฉ๋ฒ๋ก
- ๋ํ์ ์ธ ์ข ๋ฅ์๋ XP, ์คํฌ๋ผ(Scrum), ์นธ๋ฐ(Kanban), ํฌ๋ฆฌ์คํ(Crytal)๋ฑ์ด ์์
• ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ์ ์ฐจ
์ฌ์ฉ์ ์คํ ๋ฆฌ → ใ๊ณํ → ๊ฐ๋ฐ → ์น์ธ ํ ์คํธใ๋ฐ๋ณต ์ฃผ๊ธฐใ๋ฐ๋ณต ์ฃผ๊ธฐ
์ ํ ๊ณ์ด ๋ฐฉ๋ฒ๋ก
ํน์ ์ ํ์ ์ ์ฉํ๊ณ ์ถ์ ๊ณตํต๋ ๊ธฐ๋ฅ์ ์ ์ํ์ฌ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ๋ก
158. ๋น์ฉ ์ฐ์ ๊ธฐ๋ฒ
์ํํธ์จ์ด ๋น์ฉ ๊ฒฐ์ ์์
- ํ๋ก์ ํธ ์์ : ์ ํ ๋ณต์ก๋, ์์คํ ํฌ๊ธฐ, ์๊ตฌ๋๋ ์ ๋ขฐ๋
- ์์ ์์ : ์ธ์ ์์, ํ๋์จ์ด ์์, ์ํํธ์จ์ด ์์
- ์์ฐ์ฑ ์์ : ๊ฐ๋ฐ์ ๋ฅ๋ ฅ, ๊ฐ๋ฐ ๊ธฐ๊ฐ
159. ๋น์ฉ ์ฐ์ ๊ธฐ๋ฒ - ํํฅ์
์ ๋ฌธ๊ฐ ๊ฐ์ ๊ธฐ๋ฒ
์กฐ์ง ๋ด์ ์๋ ๊ฒฝํ์ด ๋ง์ ๋ ๋ช ์ด์์ ์ ๋ฌธ๊ฐ์๊ฒ ๋น์ฉ ์ฐ์ ์ ์๋ขฐํ๋ ๊ธฐ๋ฒ
๋ธํ์ด ๊ธฐ๋ฒ
์ ๋ฌธ๊ฐ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฃผ๊ด์ ์ธ ํธ๊ฒฌ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง์ ์ ๋ฌธ๊ฐ์ ์๊ฒฌ์ ์ข ํฉํ์ฌ ์ฐ์ ํ๋ ๊ธฐ๋ฒ
159. ๋น์ฉ ์ฐ์ ๊ธฐ๋ฒ - ์ํฅ์1
LOC(์์ ์ฝ๋ ๋ผ์ธ ์, source Line Of Code) ๊ธฐ๋ฒ
์ํํธ์จ์ด ๊ฐ ๊ธฐ๋ฅ์ ์์ ์ฝ๋ ๋ผ์ธ ์์ ๋น๊ด์น, ๋๊ด์น, ๊ธฐ๋์น๋ฅผ ์ธก์ ํ์ฌ ์์ธก์น๋ฅผ ๊ตฌํ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ๋น์ฉ์ ์ฐ์ ํ๋ ๊ธฐ๋ฒ
- ์์ธก์น = (a+4m+b) / 6 (๋จ, a : ๋๊ด์น, b : ๋น๊ด์น, m : ๊ธฐ๋์น(์ค๊ฐ์น))
• ์ฐ์ ๊ณต์
- ๋ ธ๋ ฅ(์ธ์) = ๊ฐ๋ฐ๊ธฐ๊ฐ * ํฌ์ ์ธ์ = LOC / 1์ธ๋น ์ํ๊ท ์์ฐ ์ฝ๋ ๋ผ์ธ ์
- ๊ฐ๋ฐ ๋น์ฉ = ๋ ธ๋ ฅ(์ธ์) * ๋จ์ ๋น์ฉ(1์ธ๋น ์ํ๊ท ์ธ๊ฑด๋น)
- ๊ฐ๋ฐ ๊ธฐ๊ฐ = ๋ ธ๋ ฅ(์ธ์) / ํฌ์ ์ธ์
- ์์ฐ์ฑ = LOC / ๋ ธ๋ ฅ(์ธ์)
๊ฐ๋ฐ ๋จ๊ณ๋ณ ์ธ์์ ๊ธฐ๋ฒ
LOC ๊ธฐ๋ฒ์ ๋ณด์ํ๊ธฐ ์ํ ๊ธฐ๋ฒ, ๊ฐ ๊ธฐ๋ฅ์ ๊ตฌํ์ํค๋ ๋ฐ ํ์ํ ๋ ธ๋ ฅ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ ๋จ๊ณ๋ณ๋ก ์ฐ์
159. ๋น์ฉ ์ฐ์ ๊ธฐ๋ฒ - ์ํฅ์2
COCOMO ๋ชจํ
๋ณดํด(Boehm)์ด ์ ์ํ ๊ฒ์ผ๋ก, ์์ ํ๋ก๊ทธ๋จ์ ๊ท๋ชจ์ธ LOC์ ์ํ ๋น์ฉ ์ฐ์ ๊ธฐ๋ฒ
• COCOMO์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ํ ( O < S < E )
- ์กฐ์งํ(Organic Mode) : 5๋ง(50 KDSI) ๋ผ์ธ ์ดํ
- ๋ฐ ๋ถ๋ฆฌํ(Semi-Detached Mode) : 30๋ง(300 KDSI) ๋ผ์ธ ์ดํ
- ๋ด์ฅํ(Embedded Mode) : 30๋ง(300 KDSI) ๋ผ์ธ ์ด์
• COCOMO ๋ชจํ์ ์ข ๋ฅ
- ๊ธฐ๋ณธ(Basic) ํ
- ์ค๊ฐ(Intermediate) ํ
- ๋ฐ์ (Detailed) ํ
Putnam ๋ชจํ
์ํํธ์จ์ด ์๋ช ์ฃผ๊ธฐ์ ์ ๊ณผ์ ๋์์ ์ฌ์ฉ๋ ๋ ธ๋ ฅ์ ๋ถํฌ๋ฅผ ๊ฐ์ ํด ์ฃผ๋ ๋ชจํ
- ์๋ช ์ฃผ๊ธฐ ์์ธก ๋ชจํ์ด๋ผ๊ณ ๋ ํจ
- Rayleigh - Norden ๊ณก์ ์ ๋ ธ๋ ฅ ๋ถํฌ๋๋ฅผ ๊ธฐ์ด๋ก ํจ
๊ธฐ๋ฅ ์ ์(Function-Point) ๋ชจํ
์๋ํ ์ถ์ ๋๊ตฌ๋ก,๋น์ฉ ์ฐ์ ์ ์๋ํ๋ฅผ ์ํด ๊ฐ๋ฐ๋ ๋๊ตฌ๋ก๋ SLIM์ด ์์
163. ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ค
ISO/IEC 12207
ISO(๊ตญ์ ํ์คํ๊ธฐ๊ตฌ)์์ ๋ง๋ ํ์ค ์ํํธ์จ์ด ์๋ช ์ฃผ๊ธฐ ํ๋ก์ธ์ค
- ๊ธฐ๋ณธ ์๋ช ์ฃผ๊ธฐ ํ๋ก์ธ์ค
- ์ง์ ์๋ช ์ฃผ๊ธฐ ํ๋ก์ธ์ค
- ์กฐ์ง ์๋ช ์ฃผ๊ธฐ ํ๋ก์ธ์ค
CMMI
์ํํธ์จ์ด ๊ฐ๋ฐ ์กฐ์ง์ ์ ๋ฌด ๋ฅ๋ ฅ ๋ฐ ์กฐ์ง์ ์ฑ์๋๋ฅผ ํ๊ฐํ๋ ๋ชจ๋ธ
- ์ด๊ธฐ, ๊ด๋ฆฌ, ์ ์, ์ ๋์ ๊ด๋ฆฌ, ์ต์ ํ 5๋จ๊ณ๋ก ๊ตฌ๋ถ
SPICE (ISO/IEC 15504)
์ํํธ์จ์ด์ ํ์ง ๋ฐ ์์ฐ์ฑ ํฅ์์ ์ํด ์ํํธ์จ์ด ํ๋ก์ธ์ค๋ฅผ ํ๊ฐ ๋ฐ ๊ฐ์
164. ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ํ ์ผ๋ฌ๋ง
์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ํ ์ผ๋ฌ๋ง
ํ๋ก์ ํธ ์ํฉ ๋ฐ ํน์ฑ์ ๋ง์ถฐ ์ ์๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ์ ์ฐจ, ์ฌ์ฉ๊ธฐ๋ฒ ๋ฑ์ ์์ ๋ฐ ๋ณด์ํ๋ ์์
• ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ํ ์ผ๋ฌ๋ง ๊ณ ๋ ค ์ฌํญ
- ๋ด๋ถ์ ์๊ฑด : ๋ชฉํ ํ๊ฒฝ, ์๊ตฌ์ฌํญ, ํ๋ก์ ํธ ๊ท๋ชจ, ๋ณด์ ๊ธฐ์
- ์ธ๋ถ์ ์๊ฑด : ๋ฒ์ ์ ์ฝ์ฌํญ, ํ์ค ํ์ง ๊ธฐ์ค
• ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ํ ์ผ๋ฌ๋ง ๊ธฐ๋ฒ
- ํ๋ก์ ํธ ๊ท๋ชจ์ ๋ณต์ก๋์ ๋ฐ๋ฅธ ํ ์ผ๋ฌ๋ง ๊ธฐ๋ฒ
- ํ๋ก์ ํธ ๊ตฌ์ฑ์์ ๋ฐ๋ฅธ ํ ์ผ๋ฌ๋ง ๊ธฐ๋ฒ
- ํ ๋ด ๋ฐฉ๋ฒ๋ก ์ง์์ ๋ฐ๋ฅธ ํ ์ผ๋ฌ๋ง ๊ธฐ๋ฒ
- ์๋ํ์ ๋ฐ๋ฅธ ํ ์ผ๋ฌ๋ง ๊ธฐ๋ฒ
IT Compliance : ๊ธฐ์ ์ด์ ์ IT ๋ถ์ผ์์ ๋ด. ์ธ๋ถ์ ์ผ๋ก ๋ฐ๋์ ์ง์ผ์ผ ํ๋ ๋ฒ์ ๊ท์ ์ฌํญ์ด๋ ์ง์นจ
165. ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ ์์ํฌ
์คํ๋ง ํ๋ ์์ํฌ(Spring Framework)
JAVA ํ๋ซํผ์ ์ํ ์คํ ์์ค ๊ฒฝ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ
์ ์์ ๋ถ ํ๋ ์์ํฌ
์ฐ๋ฆฌ๋๋ผ์ ๊ณต๊ณต๋ถ๋ฌธ ์ ๋ณดํ ์ฌ์ ์ ํจ์จ์ ์ธ ์ ๋ณด ์์คํ ์ ๊ตฌ์ถ์ ์ง์ํ๊ธฐ ์ํด ํ์ํ ๊ธฐ๋ฅ ๋ฐ ์ํคํ ์ฒ ์ ๊ณตํ๋ ํ๋ ์์ํฌ
๋ท๋ท ํ๋ ์์ํฌ(. NET Framework)
Windows ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ ๋ฐ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ํ๋ ์์ํฌ, Microsoft์ฌ์์ ๊ฐ๋ฐ