์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ/์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„

2020๋…„ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์ œ3ํšŒ ํ•„๊ธฐ ์˜ค๋‹ต๋…ธํŠธ - 1๊ณผ๋ชฉ. ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„

ํ•œ์ฝ”๋”ฉ 2020. 9. 23. 23:14
728x90
728x90
์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ์‹œ์— ํ•„์š”ํ•œ ๊ธฐ์ˆ ๋กœ ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

 

์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

1) ๋„์ถœ : ์ธํ„ฐ๋ทฐ, ์„ค๋ฌธ, ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ

2) ๋ถ„์„ : ๊ฐœ๋… ๋ชจ๋ธ๋ง, ์š”๊ตฌ์‚ฌํ•ญ ํ˜‘์ƒ/ํ• ๋‹น, ์ •ํ˜• ๋ถ„์„

3) ๋ช…์„ธ 

4) ํ™•์ธ


๋‹ค์Œ ๋‚ด์šฉ์ด ์„ค๋ช…ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์€?

 

<๋””์ž์ธ ํŒจํ„ด>

1. ์ƒ์„ฑ ํŒจํ„ด

์ถ”์ƒ ํŒฉํ† ๋ฆฌ : ๊ฐ์ฒด๋“ค์˜ ๊ทธ๋ฃน์œผ๋กœ ์ƒ์„ฑ ํ›„ ์ถ”์ƒ์  ํ‘œํ˜„

๋นŒ๋” : ์ž‘๊ฒŒ ๋ถ„๋ฆฌ, ๊ฑด์ถ•ํ•˜๋“ฏ ์กฐ๋ฆฝํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ

ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ : ๊ฐ์ฒด ์ƒ์„ฑ by ์„œ๋ธŒํด๋ž˜์Šค

ํ”„๋กœํ† ํƒ€์ž… : ์›๋ณธ ๋ณต์ œ

์‹ฑ๊ธ€ํ†ค : ํ•˜๋‚˜ ์ฐธ์กฐo, ์—ฌ๋Ÿฌ ๋™์‹œ ์ฐธ์กฐx

 

2. ๊ตฌ์กฐ ํŒจํ„ด

์–ด๋Œ‘ํ„ฐ : ํ˜ธํ™˜์„ฑx ํด๋ž˜์Šค ๋ณ€ํ™˜

๋ธŒ๋ฆฟ์ง€ : ์ถ”์ƒ์ธต ๋ถ„๋ฆฌ, ๋…๋ฆฝ์  ํ™•์žฅ

์ปดํฌ์ง€ํŠธ : ๋ณตํ•ฉ, ๋‹จ์ผ ๊ตฌ๋ถ„x

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ : ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ, ํ™•์žฅ

ํผ์‹ธ๋“œ : ๋ณต์žกํ•œ ์„œ๋ธŒํด๋ž˜์Šค ํ”ผํ•ด

ํ”Œ๋ผ์ด์›จ์ดํŠธ : ๊ณต์œ , ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ

ํ”„๋ก์‹œ : ์ ‘๊ทผ ์–ด๋ ค์›€ ํ•ด๊ฒฐ

 

3. ํ–‰์œ„ ํŒจํ„ด

์ฑ…์ž„ ์—ฐ์‡„ : ์ฒ˜๋ฆฌx ๋„˜์–ด๊ฐ€

์ปค๋งจ๋“œ : ์บก์Šํ™” ์žฌ์ด์šฉ

์ธํ„ฐํ”„๋ฆฌํ„ฐ : ๋ฌธ๋ฒ• ์ •์˜

๋ฐ˜๋ณต์ž(์ดํ„ฐ๋ ˆ์ดํ„ฐ) : ์ ‘๊ทผ ์žฆ์•„ ๋ฐ˜๋ณต

์ค‘์žฌ์ž : ์บก์Šํ™”

๋ฉ”๋ฉ˜ํ†  : ๋ณต์›์ง€์ 

์˜ต์ €๋ฒ„ : ์ƒํƒœ๋ณ€ํ™” ์ „๋‹ฌ

์ƒํƒœ : ๊ฐ™์€ ๋™์ž‘ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ

์ „๋žต : ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ : ์ƒ๊ณจ๊ฒฉ ํ•˜์„ธ๋ถ€ 

๋ฐฉ๋ฌธ์ž : ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ


๋Ÿผ๋ฐ”์šฐ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ถ„์„๊ณผ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

 

๋Ÿผ๋ฐ”์šฐ(Rumbaugh) ๋ถ„์„ ๊ธฐ๋ฒ• ( = ๊ฐ์ฒด ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•(OMT) )
๋ถ„์„ ํ™œ๋™ → ๊ฐ์ฒด ๋ชจ๋ธ, ๋™์  ๋ชจ๋ธ, ๊ธฐ๋Šฅ ๋ชจ๋ธ ๋ถ„๋ฆฌ
๊ทธ๋ž˜ํ”ฝ ํ‘œ๊ธฐ๋ฒ• ์ด์šฉ ๋ชจ๋ธ๋ง

 

1) ๊ฐ์ฒด ๋ชจ๋ธ๋ง(Object Modeling) = ์ •๋ณด ๋ชจ๋ธ๋ง
์š”๊ตฌ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„ ๊ทœ์ • ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œ์‹œ

2) ๋™์  ๋ชจ๋ธ๋ง(Dynamic Modeling)
์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ(์ƒํƒœ๋„)๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ฅธ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ œ์–ด ํ๋ฆ„, ์ƒํ˜ธ ์ž‘์šฉ, ๋™์ž‘ ์ˆœ์„œ ๋“ฑ์˜ ๋™์ ์ธ
ํ–‰์œ„๋ฅผ ํ‘œํ˜„

3) ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง(Function Modeling)
์ž๋ฃŒ ํ๋ฆ„๋„(DFD)๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ์ž๋ฃŒ ํ๋ฆ„ ์ค‘์‹ฌ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ‘œํ˜„

 


์• ์ž์ผ ๊ธฐ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๋งž์ง€ ์•Š์€ ๊ฒƒ์€?

 

์• ์ž์ผ(Agile) ๊ฐœ๋ฐœ 4๊ฐ€์ง€ ํ•ต์‹ฌ ๊ฐ€์น˜
1. ํ”„๋กœ์„ธ์Šค, ๋„๊ตฌ < ๊ฐœ์ธ๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ
2. ๋ฐฉ๋Œ€ํ•œ ๋ฌธ์„œ < ์‹คํ–‰๋˜๋Š” SW
3. ๊ณ„์•ฝ ํ˜‘์ƒ < ๊ณ ๊ฐ๊ณผ์˜ ํ˜‘์—…
4. ๊ณ„ํš < ๋ณ€ํ™”์— ๋ฐ˜์‘


๋ฏธ๋“ค์›จ์–ด ์†”๋ฃจ์…˜์˜ ์œ ํ˜•์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€?


WAS(์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„)
๋™์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์ฒ˜๋ฆฌ, ์›น ํ™˜๊ฒฝ์„ ๊ตฌํ˜„

RPC(Remot Procedure Call)
ํ”„๋กœ์‹œ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ํ”„๋กœ์‹œ์ €๋ฅผ ๋งˆ์น˜ ๋กœ์ปฌ ํ”„๋กœ์‹œ์ €์ฒ˜๋Ÿผ ํ˜ธ์ถœ


ORB(Object Request Broker)
๊ฐ์ฒด ์ง€ํ–ฅ ๋ฏธ๋“ค์›จ์–ด


UML์—์„œ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ตฌ์„ฑ ํ•ญ๋ชฉ์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?

 

์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ๊ตฌ์„ฑ ํ•ญ๋ชฉ
1) ์•กํ„ฐ

2) ํ™œ์„ฑ ๊ฐ์ฒด(object)

3) ๋ผ์ดํ”„๋ผ์ธ(์ƒ๋ช…์„ )

4) ๋ฉ”์„ธ์ง€

5) ์ œ์–ด ์‚ผ๊ฐํ˜•


๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ์ •๋ณด ์€๋‹‰๊ณผ ๊ฐ€์žฅ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€?


์ •๋ณด ์€๋‹‰ ? -> ์ˆจ๊ธฐ๋Š” ๊ฒƒ!

์บก์Šํ™” : ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๊ณ , ์ž์‹ ์˜ func๋งŒ์„ ํ†ตํ•ด ์ ‘๊ทผ ํ—ˆ์šฉ


๋””์ž์ธ ํŒจํ„ด ์ค‘์—์„œ ํ–‰์œ„์  ํŒจํ„ด์— ์†ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?

 

<๋””์ž์ธ ํŒจํ„ด>

1. ์ƒ์„ฑ ํŒจํ„ด

์ถ”์ƒ ํŒฉํ† ๋ฆฌ : ๊ฐ์ฒด๋“ค์˜ ๊ทธ๋ฃน์œผ๋กœ ์ƒ์„ฑ ํ›„ ์ถ”์ƒ์  ํ‘œํ˜„

๋นŒ๋” : ์ž‘๊ฒŒ ๋ถ„๋ฆฌ, ๊ฑด์ถ•ํ•˜๋“ฏ ์กฐ๋ฆฝํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ

ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ : ๊ฐ์ฒด ์ƒ์„ฑ by ์„œ๋ธŒํด๋ž˜์Šค

ํ”„๋กœํ† ํƒ€์ž… : ์›๋ณธ ๋ณต์ œ

์‹ฑ๊ธ€ํ†ค : ํ•˜๋‚˜ ์ฐธ์กฐo, ์—ฌ๋Ÿฌ ๋™์‹œ ์ฐธ์กฐx

 

2. ๊ตฌ์กฐ ํŒจํ„ด

์–ด๋Œ‘ํ„ฐ : ํ˜ธํ™˜์„ฑx ํด๋ž˜์Šค ๋ณ€ํ™˜

๋ธŒ๋ฆฟ์ง€ : ์ถ”์ƒ์ธต ๋ถ„๋ฆฌ, ๋…๋ฆฝ์  ํ™•์žฅ

์ปดํฌ์ง€ํŠธ : ๋ณตํ•ฉ, ๋‹จ์ผ ๊ตฌ๋ถ„x

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ : ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ, ํ™•์žฅ

ํผ์‹ธ๋“œ : ๋ณต์žกํ•œ ์„œ๋ธŒํด๋ž˜์Šค ํ”ผํ•ด

ํ”Œ๋ผ์ด์›จ์ดํŠธ : ๊ณต์œ , ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ

ํ”„๋ก์‹œ : ์ ‘๊ทผ ์–ด๋ ค์›€ ํ•ด๊ฒฐ

 

3. ํ–‰์œ„ ํŒจํ„ด

์ฑ…์ž„ ์—ฐ์‡„ : ์ฒ˜๋ฆฌx ๋„˜์–ด๊ฐ€

์ปค๋งจ๋“œ : ์บก์Šํ™” ์žฌ์ด์šฉ

์ธํ„ฐํ”„๋ฆฌํ„ฐ : ๋ฌธ๋ฒ• ์ •์˜

๋ฐ˜๋ณต์ž(์ดํ„ฐ๋ ˆ์ดํ„ฐ) : ์ ‘๊ทผ ์žฆ์•„ ๋ฐ˜๋ณต

์ค‘์žฌ์ž : ์บก์Šํ™”

๋ฉ”๋ฉ˜ํ†  : ๋ณต์›์ง€์ 

์˜ต์ €๋ฒ„ : ์ƒํƒœ๋ณ€ํ™” ์ „๋‹ฌ

์ƒํƒœ : ๊ฐ™์€ ๋™์ž‘ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ

์ „๋žต : ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ : ์ƒ๊ณจ๊ฒฉ ํ•˜์„ธ๋ถ€ 

๋ฐฉ๋ฌธ์ž : ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ


UI ์„ค๊ณ„ ์›์น™ ์ค‘ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์€?

 

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์˜ ๊ธฐ๋ณธ ์›์น™
1) ์ง๊ด€์„ฑ : ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ด, ์‚ฌ์šฉ
2) ์œ ํšจ์„ฑ : ๋ชฉ์  ์ •ํ™• ๋‹ฌ์„ฑ
3) ํ•™์Šต์„ฑ : ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ธฐ
4) ์œ ์—ฐ์„ฑ :  ์š”๊ตฌ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ์ˆ˜์šฉ, ์‹ค์ˆ˜ ์ตœ์†Œํ™”


์ฝ”๋“œ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

 

์ฝ”๋“œ(Code)์˜ ์ฃผ์š” ๊ธฐ๋Šฅ
1) ์‹๋ณ„ : ๋ฐ์ดํ„ฐ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„
2) ๋ถ„๋ฅ˜ : ๊ธฐ์ค€์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”
3) ๋ฐฐ์—ด : ์˜๋ฏธ ๋ถ€์—ฌ ํ›„ ๋‚˜์—ด
4) ํ‘œ์ค€ํ™” : ์ปดํ“จํ„ฐ ์ฒ˜๋ฆฌ ์œ„ํ•ด ๋‹จ์ผํ•œ ํ˜•ํƒœ์˜ ํ‘œ์ค€ํ™”๋œ ํ‘œํ˜„์ด ํ•„์š”


๋‹ค์Œ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์œผ๋กœ ์˜ณ์€ ๊ฒƒ์€?

 

ํ˜‘์•ฝ์— ์˜ํ•œ ์„ค๊ณ„(Design by Contract)

ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ •์„ ๊ณต์œ ํ•˜๋„๋ก ๋ช…์„ธํ•œ ๊ฒƒ
์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๋ช…์„ธ

ํ˜‘์•ฝ์— ์˜ํ•œ ์„ค๊ณ„์˜ ์„ธ ๊ฐ€์ง€ ํƒ€์ž…
1) ์„ ํ–‰ ์กฐ๊ฑด (precondition) : ์˜คํผ๋ ˆ์ด์…˜์ด ํ˜ธ์ถœ๋˜๊ธฐ ์ „์— ์ฐธ์ด ๋˜์–ด์•ผ ํ•  ์กฐ๊ฑด
2) ๊ฒฐ๊ณผ ์กฐ๊ฑด (postcondition) : ์˜คํผ๋ ˆ์ด์…˜์ด ์ˆ˜ํ–‰๋œ ํ›„ ๋งŒ์กฑํ•˜์—ฌ์•ผ ํ•˜๋Š” ์กฐ๊ฑด
3) ๋ถˆ๋ณ€ ์กฐ๊ฑด (invariant) : ํด๋ž˜์Šค ๋‚ด๋ถ€๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ํ•ญ์ƒ ๋งŒ์กฑํ•˜์—ฌ์•ผ ํ•˜๋Š” ์กฐ๊ฑด(์˜ˆ: ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋˜์–ด์•ผ ํ•จ)


UML์—์„œ ํ™œ์šฉ๋˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ ์ค‘, ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๋Š” ํ–‰์œ„(Behavioral) ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?

 

๊ตฌ์กฐ์  (Structural) ๋‹ค์ด์–ด๊ทธ๋žจ (ํด๊ฐ์ปด๋ฐฐ๋ณตํŒจ)

- ํด๋ž˜์Šค(Class) ๋‹ค์ด์–ด๊ทธ๋žจ : ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๋Š” ์†์„ฑ, ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ ํŒŒ์•…, ๊ตฌ์กฐ์ƒ์˜ ๋ฌธ์ œ์  ๋„์ถœ

- ๊ฐ์ฒด(Object) ๋‹ค์ด์–ด๊ทธ๋žจ 

- ์ปดํฌ๋„ŒํŠธ(Component) ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ตฌํ˜„ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ

- ๋ฐฐ์น˜(Deployment) ๋‹ค์ด์–ด๊ทธ๋žจ : ๋ฌผ๋ฆฌ์  ์š”์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ํ‘œํ˜„, ๊ตฌํ˜„ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ

- ๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ(Composite Structure) ๋‹ค์ด์–ด๊ทธ๋žจ : ํด๋ž˜์Šค๋‚˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ณตํ•ฉ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ ๊ทธ ๋‚ด๋ถ€ ๊ตฌ์กฐ ํ‘œํ˜„

- ํŒจํ‚ค์ง€(Package) ๋‹ค์ด์–ด๊ทธ๋žจ : ํŒจํ‚ค์ง€๋“ค์˜ ๊ด€๊ณ„ ํ‘œํ˜„

 

ํ–‰์œ„ (Behavioral) ๋‹ค์ด์–ด๊ทธ๋žจ (์œ ์‹œ์ปค์ƒํ™œ์ƒํƒ€)

- ์œ ์Šค์ผ€์ด์Šค(Use Case) ๋‹ค์ด์–ด๊ทธ๋žจ : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ชจ๋ธ๋ง ์ž‘์—…์— ์‚ฌ์šฉ

- ์‹œํ€€์Šค(Sequence) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‚˜ ๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€ ํ‘œํ˜„

- ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ : ๋ฉ”์‹œ์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์—ฐ๊ด€๊นŒ์ง€ ํ‘œํ˜„

- ์ƒํƒœ(State) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ํ‘œํ˜„

- ํ™œ๋™(Activity) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ฒ˜๋ฆฌ์˜ ํ๋ฆ„์„ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ‘œํ˜„

- ์ƒํ˜ธ์ž‘์šฉ ๊ฐœ์š” ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ ๊ฐ„ ์ œ์–ด ํ๋ฆ„ ํ‘œํ˜„

- ํƒ€์ด๋ฐ ๋‹ค์ด๊ทธ๋žจ : ๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”์™€ ์‹œ๊ฐ„ ์ œ์•ฝ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„


๊ฐ์ฒด ์ง€ํ–ฅ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋“ค์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ณตํ†ต๋œ ํŠน์„ฑ์„ ํ‘œํ˜„ํ•œ ๊ฒƒ์€?

 

ํด๋ž˜์Šค(Class)
๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ์—ฐ์‚ฐ(ํ–‰์œ„)์„ ๊ฐ–๋Š” ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ, ๊ฐ์ฒด์˜ ์ผ๋ฐ˜์ ์ธ ํƒ€์ž…(Type)์„ ์˜๋ฏธ
๋™์ผ ํด๋ž˜์Šค์— ์†ํ•œ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋“ค์€ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ๊ฐ€์ง


์•„๋ž˜์˜ UML ๋ชจ๋ธ์—์„œ '์ฐจ' ํด๋ž˜์Šค์™€ ๊ฐ ํด๋ž˜์Šค์˜ ๊ด€๊ณ„๋กœ ์˜ณ์€ ๊ฒƒ์€?

 

 

• ์—ฐ๊ด€ ๊ด€๊ณ„

2๊ฐœ ์ด์ƒ์˜ ์‚ฌ๋ฌผ์ด ์„œ๋กœ ๊ด€๋ จ๋˜์–ด ์žˆ์Œ์„ ํ‘œํ˜„ (์„ ์ƒ๋‹˜  - ํ•™์ƒ)

 

• ์ง‘ํ•ฉ ๊ด€๊ณ„ (๋ถ€์†)

ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ด€๊ณ„ (์ปดํ“จํ„ฐ - ํ”„๋ฆฐํ„ฐ)

 

• ํฌํ•จ ๊ด€๊ณ„

์ง‘ํ•ฉ ๊ด€๊ณ„์˜ ํŠน์ˆ˜ ํ˜•ํƒœ (๋ฌธ - ์—ด์‡ )

 

•์ผ๋ฐ˜ํ™” ๊ด€๊ณ„ (๋Œ€๋ถ„๋ฅ˜์™€ ์†Œ๋ถ„๋ฅ˜)

ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ๋น„ํ•ด ๋” ์ผ๋ฐ˜์ ์ธ์ง€ ๊ตฌ์ฒด์ ์ธ์ง€ ํ‘œํ˜„ (์ฐจ - ๋ฒ„์Šค, ํŠธ๋Ÿญ, ํƒ์‹œ)

 

• ์˜์กด ๊ด€๊ณ„

์‚ฌ๋ฌผ ์‚ฌ์ด์— ์„œ๋กœ ์—ฐ๊ด€์€ ์žˆ์œผ๋‚˜ ํ•„์š”์— ์˜ํ•ด ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ์—ฐ๊ด€์„ ์œ ์ง€ํ•˜๋Š” ๊ด€๊ณ„ (๋“ฑ๊ธ‰ - ํ• ์ธ์œจ)

 

• ์‹ค์ฒดํ™” ๊ด€๊ณ„

์‚ฌ๋ฌผ์ด ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์„œ๋กœ๋ฅผ ๊ทธ๋ฃนํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„ (๋‚  ์ˆ˜ ์žˆ๋Š” - ์ƒˆ, ๋น„ํ–‰๊ธฐ)


์ž๋ฃŒ ์‚ฌ์ „์—์„œ ์ž๋ฃŒ์˜ ๋ฐ˜๋ณต์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€?

 

์ž๋ฃŒ ์‚ฌ์ „ ํ‘œ๊ธฐ๋ฒ•
= : ์ •์˜
+ : ์—ฐ๊ฒฐ
() : ์ƒ๋žต
[|] : ์„ ํƒ
{} : ๋ฐ˜๋ณต
** : ์„ค๋ช…(์ฃผ์„)


๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘, ์„œ๋ธŒํƒ€์ž…(์ƒ์†๋ฐ›์€ ํ•˜์œ„ ํด๋ž˜์Šค)์€ ์–ด๋””์—์„œ๋‚˜ ์ž์‹ ์˜ ๊ธฐ๋ฐ˜ํƒ€์ž…(์ƒ์œ„ํด๋ž˜์Šค)์œผ๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•˜๋Š” ์›์น™์€?

 

<๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์›์น™>
1. ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (SRP, Single Responsibility Principle)
๊ฐ์ฒด๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ


2. ๊ฐœ๋ฐฉ-ํ์‡„์˜ ์›์น™ (OCP, Open Closed Principle)
๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝx ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

3. ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (LSP, Liskov Substitution Principle)
์ผ๋ฐ˜ํ™” ๊ด€๊ณ„, ์ž์‹ ํด๋ž˜์Šค๋Š” ์ตœ์†Œํ•œ ์ž์‹ ์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ๊ฐ€๋Šฅํ•œ ํ–‰์œ„๋Š” ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ

4. ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ (ISP, Interface Segregation Principle)
์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ํŠนํ™”๋˜๋„๋ก ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ์„ค๊ณ„ ์›์น™

5. ์˜์กด ์—ญ์ „ ์›์น™ (DIP, Dependency Inversion Principle)
์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด ๊ฒƒ ๋˜๋Š” ์ž์ฃผ ๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋ณ€ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ

๊ฑฐ์˜ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ๊ฒƒ์— ์˜์กดํ•˜๋ผ๋Š” ๊ฒƒ


์ž๋ฃŒํ๋ฆ„๋„(Data Flow Diagram)์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์˜ณ์€ ๊ฒƒ์€?

 

์ž๋ฃŒ ํ๋ฆ„๋„ ๊ตฌ์„ฑ ์š”์†Œ
- ํ”„๋กœ์„ธ์Šค (Process)
- ์ž๋ฃŒ ํ๋ฆ„(Data Flow)
- ์ž๋ฃŒ ์ €์žฅ์†Œ(Data Store)
- ๋‹จ๋ง(Terminator)


CASE(Computer-Aided Software Engineering)๋„๊ตฌ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

 

CASE(์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์˜ ์ž๋™ํ™”) ๋„๊ตฌ

CASE๋Š” 1980๋…„๋Œ€์— ์†Œ๊ฐœ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์ž‘์—…์„ ์ž๋™ํ™”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€
์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ฆฌ์ž๋“ค๊ณผ ์‹ค๋ฌด์ž๋“ค์ด ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ํ™œ๋™์„ ์ง€์›

ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ํ™œ๋™ ์ž๋™ํ™”

๊ฒฐ๊ณผ๋ฌผ ๊ด€๋ฆฌ

์—”์ง€๋‹ˆ์–ด๋“ค์˜ ๋ถ„์„, ์„ค๊ณ„ ๋ฐ ์ฝ”๋”ฉ๊ณผ ํ…Œ์ŠคํŠธ ์ž‘์—… ์ง€์›

์ฃผ์š”๊ธฐ๋Šฅ

- ๊ฐœ๋ฐœ ๋ชจํ˜•

- ๊ทธ๋ž˜ํ”ฝ

- SDLC์˜ ์ „๋‹จ๊ณ„ ์—ฐ๊ฒฐ


์ธํ„ฐํŽ˜์ด์Šค ์š”๊ตฌ ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์˜ณ์€ ๊ฒƒ์€?

 

<์ธํ„ฐํŽ˜์ด์Šค ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ† (๊ฒ€์ฆ) ๋ฐฉ๋ฒ•>
๋™๋ฃŒ ๊ฒ€ํ† (Peer Review) : ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ ์ž‘์„ฑ์ž๊ฐ€ ์„ค๋ช…ํ•˜๊ณ  ์ดํ•ด๊ด€๊ณ„์ž๋“ค์ด ์„ค๋ช…์„ ๋“ค์œผ๋ฉด์„œ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌ
์›Œํฌ์Šค๋ฃจ(Walk Through) : ๊ฒ€ํ†  ํšŒ์˜ ์ „, ๋ช…์„ธ์„œ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•˜์—ฌ ์‚ฌ์ „๊ฒ€ํ†  ํ›„์— ์งง์€ ๊ฒ€ํ†  ํšŒ์˜๋ฅผ ํ†ตํ•ด ๊ฒฐํ•จ ๋ฐœ๊ฒฌ
์ธ์ŠคํŽ™์…˜(Inspection) : ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ ์ž‘์„ฑ์ž๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๊ฒ€ํ†  ์ „๋ฌธ๊ฐ€๋“ค์ด ๋ช…์„ธ์„œ๋ฅผ ํ™•์ธํ•˜๋ฉด์„œ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌ

 

๋™ - ์ดํ•ด

์›Œ - ์งง์€

์ธ - ์ „๋ฌธ๊ฐ€

728x90
๋ฐ˜์‘ํ˜•