๐Ÿ“Certificate/Engineer Information Processing

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] - [2๊ณผ๋ชฉ] 2023 (03)

Sun A 2024. 1. 24. 10:20

[์ œ 2๊ณผ๋ชฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ]

- 2023๋…„๋„ 2ํšŒ์ฐจ (03)

RCS(Revision Control System)

โ–ถ ๊ฐœ๋…

: ๋™์‹œ์— ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋œ ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์น˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค.

 

๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ 

โ–ถ ์ข…๋ฅ˜

1. ๋™์น˜ ๋ถ„ํ•  ๊ฒ€์‚ฌ(Equivalence Partitioning Testing)

: ์ž…๋ ฅ ์ž๋ฃŒ์— ์ดˆ์ ์„ ๋งž์ถฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋™๋“ฑ ๋ถ„ํ•  ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

2. ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„(Boundary Value Anaysis)

: ์ž…๋ ฅ ์ž๋ฃŒ์—๋งŒ ์น˜์ค‘ํ•œ ๋™์น˜ ๋ถ„ํ•  ๊ธฐ๋ฒ•์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

3. ์›์ธ-ํšจ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ฒ€์‚ฌ(Cause-Effect Graphing Testing)

: ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„์™€ ์ถœ๋ ฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ƒํ™ฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•œ ๋‹ค์Œ ํšจ์šฉ์„ฑ์ด ๋†’์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์„ ์ •ํ•˜์—ฌ ๊ฒ€์‚ฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

4. ์˜ค๋ฅ˜ ์˜ˆ์ธก ๊ฒ€์‚ฌ(Error Testing)

: ๊ณผ๊ฑฐ์˜ ๊ฒฝํ—˜์ด๋‚˜ ํ™•์ธ์ž์˜ ๊ฐ๊ฐ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ๋ฒ•

5. ๋น„๊ต ๊ฒ€์‚ฌ(Comparison Testing)

: ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋™์ผํ•œ ํ…Œ์ŠคํŠธ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

 

ํ…Œ์ŠคํŠธ ๋“œ๋ผ์ด๋ฒ„(Driver)์™€ ํ…Œ์ŠคํŠธ ์Šคํ…(Stub)
๊ตฌ๋ถ„ ๋“œ๋ผ์ด๋ฒ„(Driver) ์Šคํ…(Stub)
๊ฐœ๋… ํ…Œ์ŠคํŠธ ๋Œ€์ƒ์˜ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๋Š” ๋„๊ตฌ๋กœ, ๋งค๊ฐœ ๋ณ€์ˆ˜(Parameter)๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ํ›„์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•œ๋‹ค. ์ œ์–ด ๋ชจ๋“ˆ์ด ํ˜ธ์ถœํ•˜๋Š” ํƒ€ ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์„ ๋‹จ์ˆœํžˆ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„๊ตฌ๋กœ, ์ผ์‹œ์ ์œผ๋กœ ํ•„์š”ํ•œ ์กฐ๊ฑด๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‹œํ—˜์šฉ ๋ชจ๋“ˆ 
ํ•„์š” ์‹œ๊ธฐ ์ƒ์œ„ ๋ชจ๋“ˆ ์—†์ด ํ•˜์œ„ ๋ชจ๋“ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•˜์œ„ ๋ชจ๋“ˆ ๊ตฌ๋™ ์ƒ์œ„ ๋ชจ๋“ˆ์€ ์žˆ์ง€๋งŒ ํ•˜์œ„ ๋ชจ๋“ˆ์ด ์—†๋Š” ๊ฒฝ์šฐ ํ•˜์œ„ ๋ชจ๋“ˆ ๋Œ€์ฒด
ํ…Œ์ŠคํŠธ ๋ฐฉ์‹ ์ƒํ–ฅ์‹(Bottom Up) ํ…Œ์ŠคํŠธ ํ•˜ํ–ฅ์‹(Top-Down) ํ…Œ์ŠคํŠธ
๊ณตํ†ต์  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณ‘ํ–‰ํ•  ๊ฒฝ์šฐ ์ด์šฉ
์ฐจ์ด์  - ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ•˜์œ„ ๋ชจ๋“ˆ๊ณผ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒ์œ„ ๋ชจ๋“ˆ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค.
- ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ณธ๋ž˜์˜ ๋ชจ๋“ˆ๋กœ ๊ต์ฒด๋œ๋‹ค.
- ์ผ์‹œ์ ์œผ๋กœ ํ•„์š”ํ•œ ์กฐ๊ฑด๋งŒ์„ ๊ฐ€์ง€๊ณ  ์ž„์‹œ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ€์งœ ๋ชจ๋“ˆ์˜ ์—ญํ• ์„ ํ•œ๋‹ค.
- ์‹œํ—˜์šฉ ๋ชจ๋“ˆ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๋“œ๋ผ์ด๋ฒ„๋ณด๋‹ค ์ž‘์„ฑํ•˜๊ธฐ ์‰ฝ๋‹ค.

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•(Big-O Notation)

: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ์ตœ์•…์ผ ๋•Œ๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์‹ ๋ขฐ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์ด๋‚˜ ํ‰๊ฐ€ํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์šด ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์— ๋น„ํ•ด ์„ฑ๋Šฅ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์šฉ์ดํ•˜์—ฌ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.

O(1) ์ž…๋ ฅ๊ฐ’(n)์— ๊ด€๊ณ„์—†์ด ์ผ์ •ํ•˜๊ฒŒ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•˜๋‚˜์˜ ๋‹จ๊ณ„๋งŒ์„ ๊ฑฐ์นœ๋‹ค. 
→์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ˆ˜์— ๊ด€๊ณ„์—†์ด ์ผ์ •ํ•˜๊ฒŒ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•˜๋‚˜์˜ ๋‹จ๊ณ„๋งŒ์„ ๊ฑฐ์นœ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ
์˜ˆ) ์Šคํƒ์˜ ์‚ฝ์ž…(Push), ์‚ญ์ œ(Pop)
O(log2n) ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ ์ž…๋ ฅ๊ฐ’(n) ๋˜๋Š” ์กฐ๊ฑด์— ์˜ํ•ด ๊ฐ์†Œํ•œ๋‹ค.
์˜ˆ) ์ด์ง„ ํŠธ๋ฆฌ, ์ด์ง„ ๊ฒ€์ƒ‰
O(n) ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ ์ž…๋ ฅ๊ฐ’(n)๊ณผ 1:1์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
์˜ˆ) for ๋ฌธ
O(nlog2n) ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ n(log2n)๋ฒˆ๋งŒํผ ์ˆ˜ํ–‰๋œ๋‹ค.
์˜ˆ) ํž™ ์ •๋ ฌ, 2-Way ํ•ฉ๋ณ‘ ์ •๋ ฌ
O(n^2) ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ ์ž…๋ ฅ๊ฐ’(n)์˜ ์ œ๊ณฑ๋งŒํผ ์ˆ˜ํ–‰๋œ๋‹ค.
์˜ˆ) ์‚ฝ์ž… ์ •๋ ฌ, ์‰˜ ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ, ํ€ต ์ •๋ ฌ
O(2^n) ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ 2์˜ ์ž…๋ ฅ๊ฐ’(n) ์ œ๊ณฑ๋งŒํผ ์ˆ˜ํ–‰๋œ๋‹ค.
์˜ˆ) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด

 

์ˆœํ™˜ ๋ณต์žก๋„(cyclomatic) ๊ณ„์‚ฐ

1.  ์˜์—ญ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

[๋‚ด๋ถ€์˜์—ญ + ์™ธ๋ถ€ ์˜์—ญ]

2. E(ํ™”์‚ดํ‘œ ์ˆ˜) - N(๋…ธ๋“œ ์ˆ˜) + 2

 

ํด๋ฆฐ ์ฝ”๋“œ(Clean Code) ์ž‘์„ฑ ์›์น™
๊ฐ€๋…์„ฑ - ๋ˆ„๊ตฌ๋“ ์ง€ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•œ๋‹ค.
- ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ธฐ๋Šฅ ๋“ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋‹จ์ˆœ์„ฑ - ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.
- ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ/ํ•จ์ˆ˜ ๋“ฑ์„ ์ตœ์†Œ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
์˜์กด์„ฑ ๋ฐฐ์ œ - ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
- ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์˜ํ–ฅ์ด ์—†๋„๋ก ์ž‘์„ฑํ•œ๋‹ค.
์ค‘๋ณต์„ฑ ์ตœ์†Œํ™” - ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
- ์ค‘๋ณต๋œ ์ฝ”๋“œ๋Š” ์‚ญ์ œํ•˜๊ณ  ๊ณตํ†ต๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ถ”์ƒํ™” - ์ƒ์œ„ ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ/ํ•จ์ˆ˜์—์„œ๋Š” ๊ฐ„๋žตํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ด๊ณ , ์ƒ์„ธ ๋‚ด์šฉ์€ ํ•˜์œ„ ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ/ํ•จ์ˆ˜์—์„œ ๊ตฌํ˜„ํ•œ๋‹ค.

 

SMTP(Simple Mail Transfer Protocol)

: ์ „์ž ์šฐํŽธ์„ ๊ตํ™˜ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค. (์ธํ„ฐํŽ˜์ด์Šค ๋ณด์•ˆ๊ณผ๋Š” ๋ฌด๊ด€ํ•˜๋‹ค.)

: ์ธํ„ฐํŽ˜์ด์Šค ๋ณด์•ˆ์„ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์˜์—ญ์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. (์ด 3๊ฐ€์ง€ ์กด์žฌ)

 

๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)

: ์ •์ ์—์„œ ์ž์‹ ๋…ธ๋“œ ๋ฐฉํ–ฅ์œผ๋กœ ์šดํ–‰ํ•˜๋ฉด์„œ ํ˜•์ œ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์šฐ์„  ํƒ์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ•

: ์ž์‹ ๋…ธ๋“œ์˜ ํƒ์ƒ‰์ด ๋ชจ๋‘ ๋๋‚˜๋ฉด ๋‹ค์‹œ ํ˜•์ œ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹

: ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•œ๋‹ค.