๐Ÿงช ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€: ๋ฌธ์žฅ, ๊ฒฐ์ •, ์กฐ๊ฑด, MC/DC | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํฌํ•จ

์ •์ฒ˜๊ธฐ์†Œํ”„ํŠธ์›จ์–ดํ…Œ์ŠคํŠธํ…Œ์ŠคํŠธ์ปค๋ฒ„๋ฆฌ์ง€ํ™”์ดํŠธ๋ฐ•์Šคํ…Œ์ŠคํŠธ
์ฝ๋Š”๋ฐ ์•ฝ 12๋ถ„ ์ •๋„ ์†Œ์š”
์ฒ˜์Œ ์“ฐ์—ฌ์ง„ ๋‚ : 2025-07-10
๋งˆ์ง€๋ง‰์œผ๋กœ ๊ณ ์ณ์ง„ ๋‚ : 2025-07-12
์ด ๊ธ€์„ ๋ณด๋Ÿฌ์˜จ ํšŸ์ˆ˜: 72

์š”์•ฝ

์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ธ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€(๊ตฌ๋ฌธ, ๊ฒฐ์ •, ์กฐ๊ฑด, ์กฐ๊ฑด/๊ฒฐ์ •, MC/DC)๋ฅผ ์•Œ์•„๋ณด๊ณ , ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์™„๋ฒฝํ•˜๊ฒŒ ๋Œ€๋น„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„๋ฅผ ์œ„ํ•œ ์ฃผ๊ด€์‹ ๋ฌธ์ œ๋Š” ํฌ์ŠคํŒ… ๋งˆ์ง€๋ง‰์— ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์„ ๋ณด๊ณ  ์–ด๋–ค ์ปค๋ฒ„๋ฆฌ์ง€์ธ์ง€ ๋งž์ถ”๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

ํŠนํžˆ ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ์ปค๋ฒ„๋ฆฌ์ง€ ๊ธฐ์ค€์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹œํ—˜์— ์ž์ฃผ ์ถœ์ œ๋˜๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

๐Ÿ“Š ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ข…๋ฅ˜ ์š”์•ฝ

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ํ…Œ์ŠคํŠธ์˜ ์ถฉ๋ถ„์„ฑ์„ ์ธก์ •ํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ, ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์  ๋ณต์žก๋„์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฒ„๋ฆฌ์ง€ ๊ฐ„์—๋Š” ๊ณ„์ธต์  ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด, ์ผ๋ฐ˜์ ์œผ๋กœ MC/DC๊ฐ€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๊ธฐ์ค€์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ปค๋ฒ„๋ฆฌ์ง€ ๊ฐ•๋„: ๊ตฌ๋ฌธ < ๊ฒฐ์ • < ์กฐ๊ฑด < ์กฐ๊ฑด/๊ฒฐ์ • < ๋ณ€๊ฒฝ ์กฐ๊ฑด/๊ฒฐ์ •(MC/DC)

์ปค๋ฒ„๋ฆฌ์ง€ ์ข…๋ฅ˜ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ
๊ตฌ๋ฌธ(๋ฌธ์žฅ) ์ปค๋ฒ„๋ฆฌ์ง€๋ชจ๋“  ๋ช…๋ น๋ฌธ, ํ•œ ๋ฒˆ ์ด์ƒ ์‹คํ–‰
๊ฒฐ์ •(๋ถ„๊ธฐ) ์ปค๋ฒ„๋ฆฌ์ง€๋ชจ๋“  ๊ฒฐ์ •๋ฌธ, ์ฐธ/๊ฑฐ์ง“, ํ•œ ๋ฒˆ ์ด์ƒ
์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๊ฒฐ์ •๋ฌธ ๋‚ด, ๊ฐ ์กฐ๊ฑด์‹, ์ฐธ/๊ฑฐ์ง“
์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€์กฐ๊ฑด + ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ ๋ชจ๋‘ ๋งŒ์กฑ
๋ณ€๊ฒฝ ์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๊ฐœ๋ณ„ ์กฐ๊ฑด์‹, ๋…๋ฆฝ์  ์˜ํ–ฅ

1. ๊ตฌ๋ฌธ(๋ฌธ์žฅ) ์ปค๋ฒ„๋ฆฌ์ง€ (Statement Coverage)

๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ชจ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฌธ์žฅ์ด ์ ์–ด๋„ ํ•œ ๋ฒˆ ์ด์ƒ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ปค๋ฒ„๋ฆฌ์ง€ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

  • ์žฅ์ : ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ๊ฐ„ํŽธํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹จ์ : ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ถ„๊ธฐ(branch)๋ฅผ ๋ชจ๋‘ ํ…Œ์ŠคํŠธํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ ์ฝ”๋“œ:

java
public void example(int x) {
    if (x > 0) { // ๊ฒฐ์ •๋ฌธ
        System.out.println("Positive"); // ๋ฌธ์žฅ 1
    }
    System.out.println("End"); // ๋ฌธ์žฅ 2
}
  • 100% ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค: x = 5
  • ์œ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” if๋ฌธ์˜ ์ฐธ(true) ๊ฒฝ๋กœ๋งŒ ํ…Œ์ŠคํŠธํ•˜์ง€๋งŒ, ๋ฌธ์žฅ 1๊ณผ ๋ฌธ์žฅ 2๋ฅผ ๋ชจ๋‘ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€ 100%๋ฅผ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. x๊ฐ€ 0 ์ดํ•˜์ธ ๊ฒฝ์šฐ๋Š” ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2. ๊ฒฐ์ •(๋ถ„๊ธฐ) ์ปค๋ฒ„๋ฆฌ์ง€ (Decision/Branch Coverage)

๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋ชจ๋“  ๊ฒฐ์ •๋ฌธ(if, switch, for, while ๋“ฑ)์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ(True)๊ณผ ๊ฑฐ์ง“(False)์„ ๊ฐ๊ฐ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ–๋„๋ก ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ๊ธฐ์ค€์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

  • ์žฅ์ : ๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋†“์น˜๋Š” ๋ถ„๊ธฐ ๊ฒฝ๋กœ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ : ๋ณต์žกํ•œ ์กฐ๊ฑด์‹ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ๋ชปํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ ์ฝ”๋“œ:

java
public void example(int x, int y) {
    if (x > 0 && y > 0) { // ๊ฒฐ์ •๋ฌธ
        System.out.println("Both Positive");
    }
}
  • 100% ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค:
    1. x = 5, y = 5 (๊ฒฐ์ •๋ฌธ ๊ฒฐ๊ณผ: ์ฐธ)
    2. x = -1, y = 5 (๊ฒฐ์ •๋ฌธ ๊ฒฐ๊ณผ: ๊ฑฐ์ง“)
  • ์œ„ ๋‘ ์ผ€์ด์Šค๋Š” ๊ฒฐ์ •๋ฌธ์˜ ์ฐธ/๊ฑฐ์ง“ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๋ฏ€๋กœ ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100%๋ฅผ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

3. ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€ (Condition Coverage)

์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๊ฒฐ์ •๋ฌธ ๋‚ด์— ์žˆ๋Š” ๊ฐ๊ฐ์˜ ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์ด ์ฐธ(True)๊ณผ ๊ฑฐ์ง“(False)์„ ๊ฐ๊ฐ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ–๋„๋ก ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

  • ์ฃผ์˜: ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๊ฒฐ์ •๋ฌธ ์ „์ฒด์˜ ๊ฒฐ๊ณผ(์ฐธ/๊ฑฐ์ง“)๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100% ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ ์ฝ”๋“œ:

java
public void example(int x, int y) {
    // ๊ฒฐ์ •๋ฌธ: (x > 0 && y > 0)
    // ์กฐ๊ฑด 1: x > 0
    // ์กฐ๊ฑด 2: y > 0
    if (x > 0 && y > 0) {
        System.out.println("Both Positive");
    }
}
  • 100% ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค:
    1. x = 5, y = -5 (์กฐ๊ฑด1: ์ฐธ, ์กฐ๊ฑด2: ๊ฑฐ์ง“)
    2. x = -5, y = 5 (์กฐ๊ฑด1: ๊ฑฐ์ง“, ์กฐ๊ฑด2: ์ฐธ)
  • ์œ„ ๋‘ ์ผ€์ด์Šค๋Š” ๊ฐ ์กฐ๊ฑด์‹์ด ์ฐธ/๊ฑฐ์ง“์„ ๋ชจ๋‘ ๊ฐ€์ง€๋ฏ€๋กœ ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€ 100%๋ฅผ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ์ •๋ฌธ ์ „์ฒด์˜ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๊ฑฐ์ง“์ด๋ฏ€๋กœ, ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๋Š” 50%๋งŒ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

4. ์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ (Condition/Decision Coverage)

์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€์™€ ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ชจ๋‘ 100% ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๊ฒฐ์ •๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ/๊ฑฐ์ง“์„ ๊ฐ๊ฐ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ€์ง€๋ฉด์„œ, ๋™์‹œ์— ๋ชจ๋“  ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๋„ ์ฐธ/๊ฑฐ์ง“์„ ๊ฐ๊ฐ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ–๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์žฅ์ : ๊ฒฐ์ •๊ณผ ์กฐ๊ฑด ์ˆ˜์ค€์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œ์ผœ ํ…Œ์ŠคํŠธ์˜ ์‹ ๋ขฐ๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

  • ๋‹จ์ : ์กฐ๊ฑด์‹์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์œผ๋ฏ€๋กœ, MC/DC๋ณด๋‹ค๋Š” ๊ฐ•๋„๊ฐ€ ์•ฝํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ ์ฝ”๋“œ:

java
public void example(int x, int y) {
    // ๊ฒฐ์ •๋ฌธ: (x > 0 && y > 0)
    // ์กฐ๊ฑด 1: x > 0
    // ์กฐ๊ฑด 2: y > 0
    if (x > 0 && y > 0) {
        System.out.println("Both Positive");
    }
}
  • 100% ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค:

    1. x = 5, y = 5
      • ์กฐ๊ฑด1: ์ฐธ, ์กฐ๊ฑด2: ์ฐธ
      • ๊ฒฐ์ •๋ฌธ ๊ฒฐ๊ณผ: ์ฐธ
    2. x = -5, y = -5
      • ์กฐ๊ฑด1: ๊ฑฐ์ง“, ์กฐ๊ฑด2: ๊ฑฐ์ง“
      • ๊ฒฐ์ •๋ฌธ ๊ฒฐ๊ณผ: ๊ฑฐ์ง“
  • ๋ถ„์„:

    • ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€: ๊ฒฐ์ •๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ/๊ฑฐ์ง“์„ ๋ชจ๋‘ ๊ฐ€์ง€๋ฏ€๋กœ 100% ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.
    • ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€: ์กฐ๊ฑด1(x>0)๊ณผ ์กฐ๊ฑด2(y>0)๊ฐ€ ๊ฐ๊ฐ ์ฐธ/๊ฑฐ์ง“์„ ๋ชจ๋‘ ๊ฐ€์ง€๋ฏ€๋กœ 100% ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

5. ๋ณ€๊ฒฝ ์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ (MC/DC, Modified Condition/Decision Coverage)

MC/DC๋Š” ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€์™€ ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ชจ๋‘ ๋งŒ์กฑ์‹œํ‚ค๋ฉด์„œ, ๊ฐ ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์ด ๋‹ค๋ฅธ ์กฐ๊ฑด์‹์˜ ๊ฐ’๊ณผ ๊ด€๊ณ„์—†์ด ์ „์ฒด ๊ฒฐ์ •๋ฌธ์˜ ๊ฒฐ๊ณผ์— ๋…๋ฆฝ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ํ•ญ๊ณต, ์›์ž๋ ฅ, ์˜๋ฃŒ ๋“ฑ ๋†’์€ ์‹ ๋ขฐ์„ฑ์ด ์š”๊ตฌ๋˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ•ต์‹ฌ: ๊ฐ ์กฐ๊ฑด์ด '๋…๋ฆฝ์ ์œผ๋กœ' ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ ์ฝ”๋“œ:

java
public void example(boolean A, boolean B, boolean C) {
    // ๊ฒฐ์ •๋ฌธ: (A || B) && C
    if ((A || B) && C) {
        System.out.println("Success");
    }
}
  • 100% ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค (์ผ๋ถ€):
    • A์˜ ๋…๋ฆฝ์  ์˜ํ–ฅ ์ฆ๋ช…: B๋Š” False, C๋Š” True๋กœ ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ A๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ „์ฒด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋€Œ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      • A=T, B=F, C=T -> ๊ฒฐ๊ณผ: True
      • A=F, B=F, C=T -> ๊ฒฐ๊ณผ: False
    • B์˜ ๋…๋ฆฝ์  ์˜ํ–ฅ ์ฆ๋ช…: A๋Š” False, C๋Š” True๋กœ ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ B๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ „์ฒด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋€Œ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      • A=F, B=T, C=T -> ๊ฒฐ๊ณผ: True
      • A=F, B=F, C=T -> ๊ฒฐ๊ณผ: False
    • C์˜ ๋…๋ฆฝ์  ์˜ํ–ฅ ์ฆ๋ช…: (A || B)๊ฐ€ True๊ฐ€ ๋˜๋„๋ก ๊ณ ์ •ํ•œ ์ƒํƒœ(์˜ˆ: A=T, B=F)์—์„œ C๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ „์ฒด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋€Œ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      • A=T, B=F, C=T -> ๊ฒฐ๊ณผ: True
      • A=T, B=F, C=F -> ๊ฒฐ๊ณผ: False

๐Ÿ“ ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ์ข…ํ•ฉ ๋ฌธ์ œ

์•„๋ž˜ ์ฝ”๋“œ์™€ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๊ณ , ๊ฐ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100% ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์กฐํ•ฉ์„ ๋ณด๊ธฐ์—์„œ ๊ณ ๋ฅด์‹œ์˜ค.

๋Œ€์ƒ ์ฝ”๋“œ ๋ฐ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„

java
public void check(int a, int b) {
    // ๋…ธ๋“œ A (๊ฒฐ์ •๋ฌธ)
    if (a > 10 && b == 5) {
        // ๋…ธ๋“œ B
        System.out.println("Path 1");
    } else {
        // ๋…ธ๋“œ C
        System.out.println("Path 2");
    }
    // ๋…ธ๋“œ D
    System.out.println("End");
}
๋ฌธ์ œ 1

๋ฌธ์ œ 1

๋ณด๊ธฐ:

  1. "TC1: (a=20, b=5)"
  2. "TC1: (a=5, b=1), TC2: (a=1, b=5)"
  3. "TC1: (a=20, b=5), TC2: (a=5, b=5)"
  4. "TC1: (a=15, b=5), TC2: (a=30, b=5)"
๋ฌธ์ œ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100% ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์กฐํ•ฉ์€ ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ 2

๋ฌธ์ œ 2

๋ณด๊ธฐ:

  1. "TC1: (a=5, b=1), TC2: (a=1, b=1)"
  2. "TC1: (a=20, b=5), TC2: (a=5, b=1)"
  3. "TC1: (a=15, b=5), TC2: (a=30, b=5)"
  4. "TC1: (a=5, b=5), TC2: (a=1, b=1)"
๋ฌธ์ œ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ๊ฒฐ์ •(๋ถ„๊ธฐ) ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100% ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์กฐํ•ฉ์€ ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ 3

๋ฌธ์ œ 3

๋ณด๊ธฐ:

  1. "TC1: (a=20, b=5), TC2: (a=5, b=5)"
  2. "TC1: (a=5, b=1), TC2: (a=1, b=2)"
  3. "TC1: (a=20, b=1), TC2: (a=5, b=5)"
  4. "TC1: (a=20, b=5), TC2: (a=15, b=5)"
๋ฌธ์ œ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100% ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์กฐํ•ฉ์€ ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ

์„ค๋ช… ๋ฌธ์ œ

๋ฌธ์ œ๋ชจ๋“  ๋ช…๋ น๋ฌธ์„ ์ ์–ด๋„ ํ•œ ๋ฒˆ ์‹คํ–‰๋˜๋„๋ก ์กฐํ•ฉํ•˜๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ๊ฐ ๊ฒฐ์ •๋ฌธ์ด ์ฐธ, ๊ฑฐ์ง“์„ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ–๋„๋ก ์กฐํ•ฉํ•˜๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ๊ฒฐ์ •๋ฌธ ๋‚ด์˜ ๊ฐ ์กฐ๊ฑด์ด ์ฐธ, ๊ฑฐ์ง“์„ ํ•œ ๋ฒˆ ์ด์ƒ ๊ฐ–๋„๋ก ์กฐํ•ฉํ•˜๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€์™€ ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ชจ๋‘ 100% ๋งŒ์กฑํ•˜๋„๋ก ์กฐํ•ฉํ•˜๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€?
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ๋‹ค์Œ์ด ์„ค๋ช…ํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•์„ ์“ฐ์‹œ์˜ค. ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์ด ๋‹ค๋ฅธ ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ „์ฒด ์กฐ๊ฑด์‹์— ๋…๋ฆฝ์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ๋Š” ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€.
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ

๐Ÿ‘ฉโ€๐Ÿ’ป ์‹ค์ „ ๊ธฐ์ถœ ์œ ํ˜• ๋ฌธ์ œ

๋‹ค์Œ ์ฝ”๋“œ์™€ ์ œ์–ดํ๋ฆ„๋„๋ฅผ ๋ณด๊ณ  ๋ฌธ์ œ๋ฅผ ํ‘ธ์„ธ์š”.

๋Œ€์ƒ ์ฝ”๋“œ

java
// b[]: ์ •์ˆ˜ ๋ฐฐ์—ด, m: ๋ฐฐ์—ด์˜ ์œ ํšจ ํฌ๊ธฐ, x: ๋น„๊ต ๊ฐ’
int Main(int b[], int m, int x) {
    int a = 0;                      // 1. ์ดˆ๊ธฐํ™”
    while (a < m || b[a] < x) {     // 2. ๋ฃจํ”„ ์กฐ๊ฑด ๊ฒ€์‚ฌ
        if (b[a] < 0) {             // 3. ๊ฐ’์˜ ๋ถ€ํ˜ธ ๊ฒ€์‚ฌ
            b[a] = -b[a];           // 4. ๋ถ€ํ˜ธ ๋ณ€๊ฒฝ
        }
        a++;                        // 5. ์ธ๋ฑ์Šค ์ฆ๊ฐ€
    }
    return 1;                       // 6. ๋ฐ˜ํ™˜
}

์ œ์–ด ํ๋ฆ„๋„

๋ฌธ์ œ๋ฌธ์ œ1 ๊ฐ ๋…ธ๋“œ์— ๋“ค์–ด๊ฐˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. (์˜ˆ - 1 : int a = 0;)
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ
๋ฌธ์ œ๋ฌธ์ œ2 ๋ฌธ์žฅ ์ปค๋ฒ„๋ฆฌ์ง€ ์ˆœ์„œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. 1 -> 2 -> ( )
๋‹ต๋ณ€
์ •๋‹ต์ •๋‹ต ๋ณด๊ธฐ

โžก๏ธ ๋‹ค์Œ ์ฝ์œผ๋ฉด ์ข‹์€ ํฌ์ŠคํŒ…

๋‹ค๋ฅธ ๊ธ€

2025-07-14

์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ, ์„œ๋ธŒ๋„คํŒ… | ๐Ÿš€ ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํฌํ•จ

2025-07-13

โ˜๏ธ ํด๋ผ์šฐ๋“œ & ๊ฐ€์ƒํ™” ์‹ ๊ธฐ์ˆ (๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ์„œ๋ฒ„๋ฆฌ์Šค) | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„

2025-07-13

๐Ÿ’พ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค & ๋น…๋ฐ์ดํ„ฐ ์‹ ๊ธฐ์ˆ | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„

2025-07-13

๐Ÿ“ก ๋„คํŠธ์›Œํฌ ์‹ ๊ธฐ์ˆ (SDN, MQTT, MEC, NFV) | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„

2025-07-13

๐Ÿ’ญ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ๐Ÿš€ ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ• ํฌํ•จ

2025-07-13

๐Ÿค– ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ๐Ÿš€ ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ• ํฌํ•จ

2025-07-13

๐Ÿ’ป ์†Œํ”„ํŠธ์›จ์–ด ์‹ ๊ธฐ์ˆ (SOA, CPS, MSA) | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„

2025-07-12

โฌ› ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ ์œ ํ˜• ์ •๋ฆฌ | ๐Ÿš€ ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํฌํ•จ

2025-07-12

๐Ÿ’พ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ: 3์š”์†Œ์™€ ์š”๊ฐœ๋…ผ๋ฌผ(์„ค๊ณ„ 4๋‹จ๊ณ„) | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํฌํ•จ

2025-07-12

๐Ÿ”‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ‚ค(Key): ์Šˆํผํ‚ค, ํ›„๋ณดํ‚ค, ๊ธฐ๋ณธํ‚ค, ์™ธ๋ž˜ํ‚ค | ๐Ÿš€์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ ๋Œ€๋น„ ๋ฌธ์ œ ํฌํ•จ