/
์ฝ”๋”ฉ ๊ทœ์น™ - ์ข…๋ฅ˜์™€ ์‹ฌ๊ฐ๋„

์ฝ”๋”ฉ ๊ทœ์น™ - ์ข…๋ฅ˜์™€ ์‹ฌ๊ฐ๋„

Table of Contents

๊ทœ์น™๋“ค์€ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

SonarQube Quality Model์€ ๊ทœ์น™์„ ๋ฒ„๊ทธ(Bugs), ๋ณด์•ˆ ์ทจ์•ฝ์ (Security Vulnerabilities) ๋ฐ ์ฝ”๋“œ ์•…์ทจ(Code Smalls)์˜ ์„ธ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ทœ์น™๋“ค์€ ๋‹ค์Œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๊ฐ ๋ถ„๋ฅ˜๋กœ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค:

์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์ด ๋ช…๋ฐฑํ•œ ์ž˜๋ชป์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ํ˜น์€ ๋ณด๋‹ค ์ž˜๋ชป๋œ ์ธก์— ์†ํ•ฉ๋‹ˆ๊นŒ?

์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด "๋„ค"์ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ๊ทœ์น™์€ ๋ฒ„๊ทธ(Bugs) ๋ถ„๋ฅ˜์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ...

์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์ด ํ•ด์ปค์— ์˜ํ•œ ์ฐฉ์ทจ์™€ ๊ด€๋ จ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด "๋„ค"์ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ๊ทœ์น™์€ ์ทจ์•ฝ์ (Vulnerability) ๋ถ„๋ฅ˜์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ...

์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์ด ๋ฒ„๊ทธ(Bugs)๋‚˜ ์ทจ์•ฝ์ (Vulnerability)์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์‹ฌ๊ฐ๋„๋Š” ์–ด๋–ป๊ฒŒ ํ• ๋‹น๋ฉ๋‹ˆ๊นŒ?

๊ทœ์น™์— ์‹ฌ๊ฐ๋„(severity)๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด, ๋ช‡๊ฐ€์ง€ ์งˆ๋ฌธ์„ ๊ณ„์† ๋˜์ง‘๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์จฐ ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

์ด ์ผ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ตœ์•…์˜ ์ƒํ™ฉ์œผ๋กœ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ๋˜์ง€๋Š” ๊ณผ์ •์—์„œ, ์•„๋ฉ”๊ฒŒ๋ˆ(Armageddon)์„ ์˜ˆ์ธกํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋จธํ”ผ์˜ ๋ฒ•์น™(Murphy's Law)์„ ๊ณ ๋ คํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ ์šฐ๋ฆฌ๋Š” ์ตœ์•… ์ƒํ™ฉ๊ณผ ๊ด€๋ จ๋œ ์˜ํ–ฅ๋„(impact) ๋ฐ ๊ฐ€๋Šฅ์„ฑ(likelihood)๋ฅผ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜, ์‹ฌ๊ฐ๋„์™€ ๊ฐ€๋Šฅ์„ฑ์€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค). ๋†’์Œ(high)๊ณผ ๋‚ฎ์Œ(low)์œผ๋กœ ๊ฐ ์š”์†Œ๋ฅผ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค:


ย 

impact

likelihood

Blocker

(plus)(plus)
Critical(plus)(minus)
Major(minus)(plus)
Minor(minus)(minus)

์‹ฌ๊ฐ๋„์™€ ๊ฐ€๋Šฅ์„ฑ์€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ ๊ทœ์น™์˜ ์‹ฌ๊ฐ๋„์™€ ์˜ํ–ฅ๋„๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๊ฐ€์žฅ ์ตœ์•…์˜ ์ƒํ™ฉ(์‹ฌ๊ฐ๋„๋Š” ์–ด๋–ป๊ฒŒ ํ• ๋‹น๋ฉ๋‹ˆ๊นŒ? ์ฐธ์กฐ)์—์„œ ์‹œ์ž‘ํ•ด ๋ถ„๋ฅ˜ ๋ณ„๋กœ ์งˆ๋ฌธ์„ ๋˜์กŒ์Šต๋‹ˆ๋‹ค.

๋ฒ„๊ทธ(Bugs)

์‹ฌ๊ฐ๋„: ์ตœ์•…์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํฌ๋ž˜์‹œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์†์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€๋Šฅ์„ฑ: ์ตœ์•…์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ์–ผ๋งˆ๋‚˜ ๋ฉ๋‹ˆ๊นŒ?

์ทจ์•ฝ์ (Vulnerabilities)

์‹ฌ๊ฐ๋„: ์‹œ์Šคํ…œ ์ฐฉ์ทจ๋กœ ์ธํ•ด ์ตœ์•…์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž์‚ฐ ํ˜น์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์‹ฌ๊ฐํ•œ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ํ–ฅ๋„: ํ•ด์ปค๋กœ ์ธํ•ด ์ตœ์•…์˜ ์ƒํ™ฉ์— ์ค€ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ์–ผ๋งˆ๋‚˜ ๋ฉ๋‹ˆ๊นŒ?

์ฝ”๋“œ ์•…์ทจ(Codeย Smells)

์‹ฌ๊ฐ๋„: ์ตœ์•…์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ์†Œํ”„ํŠธ์›จ์–ด ์œ ์ง€๋ณด์ˆ˜๋‹ด๋‹น์ž๊ฐ€ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋ฅผ ์œ ์ž…์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ํ–ฅ๋„: ์ตœ์•…์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ์–ผ๋งˆ๋‚˜ ๋ฉ๋‹ˆ๊นŒ?

ยฉ 2017-2018 Moses Kim.

๋ณ„๋„์˜ ์–ธ๊ธ‰์ด ์—†๋Š” ํ•œ, ์ด ์ŠคํŽ˜์ด์Šค์˜ ์ปจํ…์ธ ๋Š” ํฌ๋ฆฌ์—์ดํ‹ฐ๋ธŒ ์ปค๋จผ์ฆˆ ์ €์ž‘์žํ‘œ์‹œ-๋น„์˜๋ฆฌ-๋™์ผ์กฐ๊ฑด๋ณ€๊ฒฝํ—ˆ๋ฝ 4.0 ๊ตญ์ œ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
SONARQUBE๋Š” SonarSource SA์˜ ํŠธ๋ ˆ์ด๋“œ ๋งˆํฌ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํŠธ๋ ˆ์ดํŠธ ๋งˆํฌ ๋ฐ ์ €์ž‘๊ถŒ์€ ๊ฐ ์†Œ์œ ์ž์˜ ์†Œ์œ ๋ฌผ์ž…๋‹ˆ๋‹ค.

::: SonarQube ๊ด€๋ จ ๋ฌธ์˜ : ์ด๋ฉ”์ผ :::