์ƒˆ์†Œ์‹

๐Ÿ’พ ์ž๋ฃŒ๊ตฌ์กฐ

์ž๋ฃŒ๊ตฌ์กฐ 2 - ์†Œํ”„ํŠธ์›จ์–ด์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์‹œ๊ฐ„๋ณต์žก๋„, ๊ณต๊ฐ„๋ณต์žก๋„

  • -

* ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช…์ฃผ๊ธฐ (Software Life Cycle)

 

1. ์š”๊ตฌ๋ถ„์„ - 2. ์‹œ์Šคํ…œ ๋ช…์„ธ - 3. ์„ค๊ณ„ - 4. ๊ตฌํ˜„ - 5. ํ…Œ์ŠคํŠธ - 6. ์œ ์ง€๋ณด์ˆ˜

6๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋‹จ๊ณ„๋ณ„๋กœ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์ด๊ฒŒ ๋œ๋‹ค.

 

1. ์š”๊ตฌ๋ถ„์„

๋งŒ๋“ค ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ฑ๊ฒฉ, ๋ชฉ์ ์„ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์—ฌ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ• ์ง€, ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ์˜ˆ์‚ฐ๊ณผ ์ž์›์„ ์ธก์ •ํ•œ๋‹ค. - ์š”๊ตฌ๋ช…์„ธ์„œ ์ž‘์„ฑ

 

2. ์‹œ์Šคํ…œ ๋ช…์„ธ

์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๊ฒƒ, ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ, ์ฒ˜๋ฆฌ๋‚ด์šฉ, ์ถœ๋ ฅ์ด ๋ฌด์—‡์ธ์ง€ ์ •์˜ํ•˜๋Š” ๋‹จ๊ณ„  - ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ ์ž‘์„ฑ

 

3. ์„ค๊ณ„ ๋‹จ๊ณ„

๊ธฐ๋Šฅ๋“ค์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฒฐ์ •. ์ด ๋‹จ๊ณ„์—์„œ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์™€ ํ”„๋กœ๊ทธ๋žจ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค๊ณ„ํ•œ๋‹ค. 

์„ค๊ณ„ ๋ฐฉ์‹์—๋Š” ํ•˜ํ–ฅ์‹๊ณผ ์ƒํ–ฅ์‹์ด ์žˆ๋‹ค.

ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ํผ์งํ•œ ๋ฌธ์ œ๋“ค๋ถ€ํ„ฐ ํ•ด๊ฒฐํ•˜๋ฉฐ ์ ์ฐจ ๊ตฌ์ฒด์ ์ด๊ณ  ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„์„ ์™„์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•.

์ƒํ–ฅ์‹ ์„ค๊ณ„ ํ•˜ํ–ฅ์‹๊ณผ ๋ฐ˜๋Œ€. ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ํ•ด๊ฒฐํ•˜์—ฌ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

 

4. ๊ตฌํ˜„ ๋‹จ๊ณ„

์„ค๊ณ„ํ•œ ๋…ผ๋ฆฌ(์•Œ๊ณ ๋ฆฌ์ฆ˜)์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ฝ”๋”ฉ์„ ํ†ตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

๊ตฌ์กฐํ™” ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ง€์ •๋ฌธ, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ.

์ˆœ์ฐจ๊ตฌ์กฐ, ์„ ํƒ๊ตฌ์กฐ, ๋ฐ˜๋ณต๊ตฌ์กฐ์˜ ์ œ์–ด๊ตฌ์กฐ๋กœ ํ‘œํ˜„.

๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•˜์—ฌ ์ •ํ™•์„ฑ ๊ฒ€์ฆ, ํ…Œ์ŠคํŠธ, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋‹ค.

 

๋ชจ๋“ˆ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ , ๊ณ„์ธต(๋ถ€๋ชจ) ๊ด€๊ณ„๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

๋‚˜๋ˆˆ ๋ชจ๋“ˆ๋ณ„๋กœ ๋”ฐ๋กœ๋”ฐ๋กœ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ• ๋•Œ ๋ชจ๋“ˆ์˜ ์žฌ์‚ฌ์šฉ์„ ํ†ตํ•ด ํšจ์œจ์ด ๋†’๋‹ค.

 

5. ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„

ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜ ๊ฐœ๋ฐœ ๋˜์—ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋‹จ๊ณ„. ์ˆจ์–ด์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋””๋ฒ„๊น…ํ•˜์—ฌ ์™„์„ฑ๋„๋ฅผ ๋†’์—ฌ์•ผ ํ•œ๋‹ค.

1๋‹จ๊ณ„ - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test) : ์‹œ์Šคํ…œ์˜ ์ตœ์†Œ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋˜๋Š” ๋ชจ๋“ˆ์— ๋Œ€ํ•˜์—ฌ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ…Œ์ŠคํŠธ.

2๋‹จ๊ณ„ - ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Test) : ์ „์ฒด ์‹œ์Šคํ…œ์„ ํ†ตํ•ฉ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ. ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ, ํ•˜ํ–ฅ์‹ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค.

3๋‹จ๊ณ„ - ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ : ์™„์„ฑ๋œ ์‹œ์Šคํ…œ์„ ์ธ์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด, ์‹ค์ œ ์ž๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•œ ์ตœ์ข… ํ…Œ์ŠคํŠธ

 

6. ์œ ์ง€๋ณด์ˆ˜ ๋‹จ๊ณ„

์‹œ์Šคํ…œ์ด ์ธ์ˆ˜๋˜๊ณ  ์„ค์น˜๋ฅผ ๋งˆ์นœ ํ›„ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ํ™œ๋™์„ ๋งํ•œ๋‹ค. (์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„)

์ˆ˜์ •ํ˜• ์œ ์ง€๋ณด์ˆ˜ : ์‚ฌ์šฉ ์ค‘ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์— ๋Œ€ํ•œ ์ˆ˜์ • ์ž‘์—….

์ ์‘ํ˜• ์œ ์ง€๋ณด์ˆ˜ : ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํ™˜๊ฒฝ์ ์ธ ๋ณ€ํ™” ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์žฌ์กฐ์ • ์ž‘์—….

์™„์ „ํ˜• ์œ ์ง€๋ณด์ˆ˜ : ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๊ฐœ์„  ์ž‘์—….

์˜ˆ๋ฐฉํ˜• ์œ ์ง€๋ณด์ˆ˜ : ํ˜น์‹œ ๋ชจ๋ฅผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€๋น„ ์ž‘์—….

 

* ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ํ‰๊ฐ€.

์ •ํ™•์„ฑ : ์ •ํ™•ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๊ฐ€.

์œ ์ง€ ๋ณด์ˆ˜์„ฑ : ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€.

๋ฌด๊ฒฐ์„ฑ : ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐ ์™ธ๋ถ€ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋ณด์•ˆ์„ฑ์ด ์žˆ๋Š”๊ฐ€.

์‚ฌ์šฉ์„ฑ : ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ๊ฐ€.

 


* ์•Œ๊ณ ๋ฆฌ์ฆ˜(Algorithm)

 

์–ด๋– ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ถ”์ƒํ™”ํ•˜์—ฌ, ๋‹จ๊ณ„์  ์ ˆ์ฐจ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ธฐ์ˆ ํ•ด๋†“์€๊ฒƒ.

 

*์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์กฐ๊ฑด

์ž…๋ ฅ(Input): ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ž๋ฃŒ๊ฐ€ ์™ธ๋ถ€์—์„œ ์ œ๊ณต๋˜์–ด์•ผ ํ•œ๋‹ค.

์ถœ๋ ฅ(Output): ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰ ํ›„ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

๋ช…ํ™•์„ฑ(Definiteness): ์ˆ˜ํ–‰ํ•  ์ž‘์—…์˜ ๋‚ด์šฉ๊ณผ ์ˆœ์„œ๋ฅผ ๋ช…ํ™•ํ•ด์•ผํ•œ๋‹ค.

์œ ํ•œ์„ฑ(finiteness) : ๋ฌธ์ œ ํ•ด๊ฒฐ๋’ค์—” ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•œ๋‹ค.

ํšจ๊ณผ์„ฑ(effectiveness): ๋ชจ๋“  ๋ช…๋ น์–ด๋“ค์€ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค.

 

*์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•

1. ์ž์—ฐ์–ด๋ฅผ ์ด์šฉํ•ด ์„œ์ˆ ์  ํ‘œํ˜„   

ex) ์‹๋ฌผ ๊ธฐ๋ฅด๋Š” ๋ฐฉ๋ฒ• - 1. ํ™์— ์‹ฌ๋Š”๋‹ค. 2. ๋ฌผ์„ ์ค€๋‹ค. 3. ํ–‡๋ณ•์„ ๋ฐ›๊ฒŒ ํ•œ๋‹ค. 4. ์‹๋ฌผ์ด ์ž๋ž€๋‹ค. 5. 2๋ฒˆ๋ถ€ํ„ฐ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

2. ์ˆœ์„œ๋„(Flow Chart)๋ฅผ ์ด์šฉํ•œ ๋„์‹์  ํ‘œํ˜„

์œ„์™€๊ฐ™์€ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋„์‹์ ์œผ๋กœ ํ‘œํ˜„, ๋‹ค๋งŒ ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ ํ‘œํ˜„์ด ์–ด๋ ต๋‹ค.

3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•œ ๊ตฌ์ฒดํ™”๋œ ํ‘œํ˜„

 

4.๊ฐ€์ƒ์ฝ”๋“œ(Pseudo-code)๋ฅผ ์ด์šฉํ•œ ์ถ”์ƒํ™”๋œ ํ‘œํ˜„

์กฐ๊ฑด๋ฌธ, Case๋ฌธ, ๋ฐ˜๋ณต๋ฌธ(for do, while), ํ•จ์ˆ˜๋ฌธ.... ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค.

 

 

* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ๋ถ„์„ ๋ฐฉ๋ฒ•

* ๊ณต๊ฐ„ ๋ณต์žก๋„

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰๋ถ€ํ„ฐ ์™„๋ฃŒ๊นŒ์ง€ ํ•„์š”ํ•œ ์ด ์ €์žฅ ๊ณต๊ฐ„์˜ ์–‘

๊ณต๊ฐ„ ๋ณต์žก๋„ = ๊ณ ์ • ๊ณต๊ฐ„ + ๊ฐ€๋ณ€ ๊ณต๊ฐ„

 

 

* ์‹œ๊ฐ„ ๋ณต์žก๋„

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰๋ถ€ํ„ฐ ์™„๋ฃŒ๊นŒ์ง€ ์ด ์†Œ์š”์‹œ๊ฐ„

์‹œ๊ฐ„ ๋ณต์žก๋„ = ์ปดํŒŒ์ผ ์‹œ๊ฐ„ + ์‹คํ–‰ ์‹œ๊ฐ„

(์ปดํŒŒ์ผ ์‹œ๊ฐ„์€ ๊ณ ์ •์ ์ด๊ณ , ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ปดํ“จํ„ฐ์˜ ์‚ฌ์–‘์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ๋ช…๋ น๋ฌธ์˜ ์‹คํ–‰ ๋นˆ๋„์ˆ˜์— ๋”ฐ๋ผ ๊ณ„์‚ฐ)

 

 

* ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋น…-์˜ค(Big-Oh)ํ‘œ๊ธฐ๋ฒ•

1. ์‹คํ–‰ ๋นˆ๋„์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ ์‹คํ–‰์‹œ๊ฐ„ ํ•จ์ˆ˜ ์ฐพ๊ธฐ

2. ์‹คํ–‰์‹œ๊ฐ„ ํ•จ์ˆ˜์˜ ๊ฐ’์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” n์— ๋Œ€ํ•œ ํ•ญ์„ ์„ ํƒํ•˜์—ฌ

3. ๊ณ„์ˆ˜๋Š” ์ƒ๋žต, O์˜ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์— ์‚ฝ์ž…

 

 

 

 

ex ) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ 

1. ์‹คํ–‰์‹œ๊ฐ„ ํ•จ์ˆ˜ : 4n +2

2. n์— ๋Œ€ํ•œ ํ•ญ์„ ์„ ํƒ : 4n

3. ๊ณ„์ˆ˜ 4๋Š” ์ƒ๋žตํ•˜๊ณ  O์˜ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์— ์‚ฝ์ž….

๋”ฐ๋ผ์„œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)

 

* n๊ฐ’์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๋นˆ๋„์ˆ˜ ๋น„๊ต

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.