๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“–CS/๐Ÿ“™Software Design

[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„] 1์žฅ. Introduction to Systems Analysis and Design

by goguma.dev 2024. 10. 18.

โ€ป ์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€๋“ค์€ knu HK.Lee ๊ต์ˆ˜๋‹˜์˜ <์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„> ์ˆ˜์—…์„ ๋“ฃ๊ณ  ํ•„์ž๊ฐ€ ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

โ€ป ๋ถ€์กฑํ•œ ์„ค๋ช…์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜๋ชป ์•Œ๊ณ  ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์ด ๋ณด์ธ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

<ํ•™์Šต ๋ชฉ์ฐจ>

  • Systems development life cycle (SDLC) ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ƒ๋ช… ์ฃผ๊ธฐ
    • ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ƒ๋ช… ์ฃผ๊ธฐ์˜ ์ผ๋ฐ˜์ ์ธ ๋„ค ๋‹จ๊ณ„(๊ณ„ํš, ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„)์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.
    • ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ƒ๋ช… ์ฃผ๊ธฐ์— ๋”ฐ๋ฅธ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

Introduction

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์™œ ๊ณต์‹์ ์ธ ํ”„๋กœ์„ธ์Šค(formal process)๊ฐ€ ํ•„์š”ํ• ๊นŒ์š”?

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

์‹œ์Šคํ…œ ๋ถ„์„๊ฐ€๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์‹œ์Šคํ…œ ๋ถ„์„๊ฐ€๋Š” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•˜์—ฌ ๊ทธ์— ๋งž๋Š” ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ดํ•ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ธฐ์ˆ ์  ์—ญ๋Ÿ‰๊ณผ ๋ถ„์„ ๋Šฅ๋ ฅ ๋˜ํ•œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Software Development Life Cycle (SDLC)

 

  • SDLC๋Š” ๋„ค ๊ฐ€์ง€ ์ฃผ์š” ๋‹จ๊ณ„(๊ณ„ํš, ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ์ฃผ์š” ๋‹จ๊ณ„๋Š” ์—ฌ๋Ÿฌ ํ•˜์œ„ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฌธ์„œ๋กœ ๊ธฐ๋กํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ณ  ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ๋กœ ๊ธฐ๋ก๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์‚ฐ์ถœ๋ฌผ(deliverables)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • SLDC์˜ ๊ฐ ๋‹จ๊ณ„๋Š” ์ˆœ์ฐจ์ , ์ ์ง„์ , ๋ฐ˜๋ณต์  ๋“ฑ ๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

SDLC: 1. Planning ๊ณ„ํš (๋งŒ๋“œ๋Š” ์ด์œ ? ์™œ ์ด ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๊ฐ€?)

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์‹œ (project initiation)

  • Develop/receive a system request: ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์š”์ฒญ์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  • conduct a feasibility analysis: ํ”„๋กœ์ ํŠธ๊ฐ€ ํ˜„์‹ค์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ์ง€ ๋ถ„์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (๋น„์šฉ, ์‹œ๊ฐ„, ๊ธฐ์ˆ ์  ๊ฐ€๋Šฅ์„ฑ, ์‹œ์žฅ ์š”๊ตฌ๋“ฑ์„ ํ‰๊ฐ€)

2. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ (project management)

  • Develop the work plan: ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค.
  • staff the project: ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ํŒ€์„ ๊ตฌ์„ฑํ•˜๊ณ , ํ•„์š”ํ•œ ๊ธฐ์ˆ ๊ณผ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์ธ๋ ฅ์„ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

SDLC: 2. Analysis ๋ถ„์„ (๋ฌด์—‡์„ ๋งŒ๋“œ๋Š”๊ฐ€? ์‹œ์Šคํ…œ์ด ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?)

1. ๋ถ„์„ ์ „๋žต ๊ฐœ๋ฐœ (Develop an analysis strategy)

  • ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์‹œ์Šคํ…œ์„ ๋ถ„์„ํ•˜์—ฌ ๋ฌธ์ œ์ ๊ณผ ๊ฐœ์„ ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ , ํ–ฅํ›„์— ๊ฐœ๋ฐœ๋  ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์˜ ์„ค๊ณ„๋ฅผ ๊ตฌ์ƒํ•ฉ๋‹ˆ๋‹ค.

2. ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ (Gather the requirements)

  • ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ์‹œ์Šคํ…œ ๊ฐœ๋…์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

3. ์‹œ์Šคํ…œ ์ œ์•ˆ์„œ ๊ฐœ๋ฐœ (Develop a system proposal)

  • ์‹œ์Šคํ…œ ์ œ์•ˆ์„œ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํžˆ ์ •์˜ํ•œ ๋ฌธ์„œ๋กœ, ๊ฐœ๋ฐœํ•  ์‹œ์Šคํ…œ์˜ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ๊ณผ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ œ์•ˆ์„œ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ(Requirement Specification)์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์ด ๋ฉ๋‹ˆ๋‹ค.

 

SDLC: 3. Design ์„ค๊ณ„ (์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ?)

1. ์„ค๊ณ„ ์ „๋žต ๊ฐœ๋ฐœ (Develop a design strategy): ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ „์ฒด์ ์ธ ์ „๋žต์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

2. ์•„ํ‚คํ…์ฒ˜์™€ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„ (Design architecture and interfaces): ์‹œ์Šคํ…œ์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ , ์‹œ์Šคํ…œ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํŒŒ์ผ ์‚ฌ์–‘ ๊ฐœ๋ฐœ (Develop databases and file specifications): ์‹œ์Šคํ…œ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ• ์ง€ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

4. ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ (Develop the program design): ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ํ•„์š”ํ•œ์ง€, ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€, ์„ค๊ณ„ ๋ช…์„ธ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

SDLC: 4.  Implementation ๊ตฌํ˜„

1. ์‹œ์Šคํ…œ ๊ตฌ์ถ•(Construct the system): ์„ค๊ณ„๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ๋œ ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2. ์‹œ์Šคํ…œ ์„ค์น˜(Install system): ์™„์„ฑ๋œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์„ค์น˜ํ•˜๊ณ , ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

3. ์‹œ์Šคํ…œ ์ง€์›(Support the system): ์‹œ์Šคํ…œ์ด ์šด์˜๋˜๋ฉด์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋Š” ์œ ์ง€๋ณด์ˆ˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 


SDLC: Methodologies

 

  • ํ”„๋กœ์„ธ์Šค ์ง€ํ–ฅ (Process oriented โ€“ Structured ๋ฐฉ๋ฒ•๋ก ): ์ด ๋ฐฉ๋ฒ•๋ก ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์ผ๋ จ์˜ ์ˆœ์ฐจ์  ๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ํ๋ฆ„์„ ์ค‘์‹œํ•˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ํญํฌ์ˆ˜(Waterfall) ๋ชจ๋ธ์ด ์—ฌ๊ธฐ์— ์†ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ (Data centered โ€“ DB): ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ๋ฐฉ๋ฒ•๋ก ์€ ์‹œ์Šคํ…œ์ด ์ฒ˜๋ฆฌํ•  ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ๊ด€๊ณ„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB) ์„ค๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ์ด ๊ตฌํ˜„๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด ์ง€ํ–ฅ (Object-oriented โ€“ OO ๋ฐฉ๋ฒ•๋ก ): ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก ์€ ์‹œ์Šคํ…œ์„ ๊ฐ์ฒด(Object)๋ผ๋Š” ๋…๋ฆฝ๋œ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋†’์€ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ธฐํƒ€ ๋ฐฉ๋ฒ•๋ก 

 

  • ๋น ๋ฅธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  (Rapid Action Development): RAD๋Š” ์‹ ์†ํ•œ ๊ฐœ๋ฐœ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉฐ, ๋น ๋ฅด๊ฒŒ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์ ์ง„์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ์• ์ž์ผ ๊ฐœ๋ฐœ (Agile Development): ์• ์ž์ผ์€ ๋ฐ˜๋ณต์ ์ด๊ณ  ์ ์ง„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ•์กฐํ•˜๋ฉฐ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์œ ์—ฐํ•˜๊ฒŒ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ง€์†์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ๋น ๋ฅธ ์ฃผ๊ธฐ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ๊ฐœ๋ฐœ ์†๋„์™€ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.