[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ] - [2๊ณผ๋ชฉ] 2023 (03)
[์ 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)
: ์ ์ ์์ ์์ ๋ ธ๋ ๋ฐฉํฅ์ผ๋ก ์ดํํ๋ฉด์ ํ์ ๋ ธ๋์ ์์ ๋ ธ๋๊ฐ ์์ ๋ ์์ ๋ ธ๋๋ฅผ ์ฐ์ ํ์ํ๋ ๊ธฐ๋ฒ
: ์์ ๋ ธ๋์ ํ์์ด ๋ชจ๋ ๋๋๋ฉด ๋ค์ ํ์ ๋ ธ๋๋ถํฐ ํ์ํ๋ ๋ฐฉ์
: ๋ชจ๋ ๋ ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํด์ผ ํ๋ค.