์ด ๋ฌธ์๋ SonarQube v6.4 ๊ธฐ๋ฐ์ ๋ฌธ์๋ก ์์นด์ด๋ธ ๋์์ต๋๋ค.
์ต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์งํ ์ ์
SQ Official Doc Link: https://docs.sonarqube.org/display/SONAR/Metric+Definitions
Table of Contents
SonarQube์์ ์ ๊ณตํ๋ ๋ชจ๋ ๋ฉํธ๋ฆญ์ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ด ์ฌ์ฉํ๋ SonarQube ์ธ์คํด์ค์์ ์ ๊ณตํ๋ ์ ์ฒด ๋ฉํธ๋ฆญ ๋ฆฌ์คํธ๋ฅผ ํ์ธํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ metrics search web service๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
๋ณต์ก๋(Complexity)
Name | Key | Description |
---|---|---|
Complexity | complexity | ์ฝ๋์ด ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐํ ๋ณต์ก๋์ ๋๋ค. ์ํํธ์จ์ด ๊ธฐ๋ฅ์ ๋ก์ง ํ๋ฆ์ ๋ถ๊ธฐ๊ฐ ๋ฐ์ํ ๋๋ง๋ค, ๋ณต์ก๋ ๊ฐ์ 1์ฉ ์ฆ๊ฐํฉ๋๋ค. ๊ฐ ํจ์์ ๋ณต์ก๋๋ ์ต์ 1์ ๋๋ค. ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ํค์๋keyword ๋ฐ ๊ธฐ๋ฅfunctionality๊ฐ ์์ดํ์ฌ, ๋ณต์ก๋ ๊ณ์ฐ ์ ๋ณด๋ ์ฝ๊ฐ ์์ดํ ์ ์์ต๋๋ค. |
Complexity /class | class_complexity | class ๋ณ ํ๊ท ๋ณต์ก๋ |
Complexity /file | file_complexity | file ๋ณ ํ๊ท ๋ณต์ก๋ |
Complexity /method | function_complexity | function ๋ณ ํ๊ท ๋ณต์ก๋ |
๋ฌธ์ํ(Documentation)
Name | Key | Description | |
---|---|---|---|
Comment lines | comment_lines | ์ค์ ์ฃผ์ ํน์ ์ฃผ์ ์ฒ๋ฆฌ๋ ์ฝ๋์ ๋ผ์ธ ์์ ๋๋ค. ์๋ฏธ ์๋non-significant ์ฝ๋ฉํธ ๋ผ์ธ(๋น ์ฝ๋ฉํธ๋ผ์ธ, ํน์ ๋ฌธ์๋ง ์กด์ฌํ ๋ผ์ธ ๋ฑ)์ ์ฃผ์ ๋ผ์ธ ์๋ฅผ ์ฆ๊ฐ์ํค์ง ์์ต๋๋ค. ๋ค์ ์ฝ๋๋ 9 ์ฃผ์ ๋ผ์ธ์ ํฌํจํ๊ณ ์์ต๋๋ค:
| |
Comments (%) | comment_lines_density | ์ฃผ์ ๋ผ์ธ ๋ฐ๋ =ย ์ฃผ์ ๋ผ์ธ ์ย / (์ฝ๋ ๋ผ์ธ ์ย +ย ์ฃผ์ ๋ผ์ธ ์) * 100 ์์ ์์ ๋ฐ๋ผ:
| |
Public documented API (%) | public_documented_api_density | ๋ฌธ์ํ ๋ ๊ณต์ฉ API ๋ฐ๋ = (๊ณต์ฉ API ์ ์ฒด ์ - ๋ฌธ์ํ ๋์ง ์์ ๊ณต์ฉ API ์) /ย ๊ณต์ฉ API ์ ์ฒด ์ย * 100 | |
Public undocumented API | public_undocumented_api | ์ฃผ์ ํค๋๊ฐ ์๋ ๊ณต์ฉ API ์ | |
Commented-out LOC | commented_out_code_lines | ์ฃผ์ ์ฒ๋ฆฌ ๋ ๋ผ์ธ ์ |
์ฝ๋ ์ค๋ณต(Duplications)
Name | Key | Description |
---|---|---|
Duplicated blocks | duplicated_blocks | ์ค๋ณต๋ ๋ผ์ธ ๋ธ๋ก์ ์. ๋ค์์ ๊ฒฝ์ฐ ์ค๋ณต๋ ๋ธ๋ก์ผ๋ก ํ๋จํฉ๋๋ค:
์ฝ๋ ์ค๋ณต ์๋ณ์, ๋ค์ฌ์ฐ๊ธฐ(indentation) ๋ฐ ์คํธ๋ง ๋ฌธ์์ด(string literal)๋ ๊ฒ์ฌ ๋ฒ์์์ ์ ์ธํฉ๋๋ค. |
Duplicated files | duplicated_files | ์ค๋ณต๊ณผ ์ฐ๊ด๋ ํ์ผ ์ |
Duplicated lines | duplicated_lines | ์ค๋ณต๊ณผ ์ฐ๊ด๋ ์ฝ๋ ๋ผ์ธ ์ |
Duplicated lines (%) | duplicated_lines_density | ์ฝ๋ ์ค๋ณต ๋ฐ๋ =ย ์ค๋ณต๋ ๋ผ์ธ ์ย /ย ์ ์ฒด ๋ผ์ธ ์ย * 100 |
์ด์(Issues)
Name | Key | Description |
---|---|---|
New issues | new_violations | ์ ๊ท ์ด์ ์ |
New xxxxx issues | new_xxxxx_violations | xxxxx ์ฌ๊ฐ๋์ ์ ๊ท ์ด์ ์ (xxxxx๋ blocker, critical, major, minor ํน์ info ์) |
Issues | violations | ์ด์ ์ ์ฒด ์ |
xxxxx issues | xxxxx_violations | xxxxx ์ฌ๊ฐ๋์ ์ด์ ์ ์ฒด ์ (xxxxx๋ blocker, critical, major, minor ํน์ info ์) |
False positive issues | false_positive_issues | false positive ์ด์ ์ |
Open issues | open_issues | Open ์ํ์ ์ด์ ์ |
Confirmed issues | confirmed_issues | Confirmed ์ํ์ ์ด์ ์ |
Reopened issues | reopened_issues | Reopened ์ํ์ ์ด์ ์ |
์ฌ๊ฐ๋(Severity)
Severity | Description |
---|---|
Blocker | ์ด์/๋ณด์ ๋ฆฌ์คํฌ(risk): ์ด ์ด์๋ ์ค์ ํ๊ฒฝ์์ ์ด์ฉ๋๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฒด๋ฅผ ๋ถ์์ ํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์: ๊ฐ๋น์ง ์ปฌ๋ ํฐ ํธ์ถ, ์์ผ ๋ซ์ง ์์ ๋ฑ |
Critical | ์ด์ ๋ณด์ ๋ฆฌ์คํฌ(risk): ์ด ์ด์๋ ์ค์ ํ๊ฒฝ์์ ์ด์ฉ๋๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฒด์ ๋ฌด๊ฒฐ์ฑ(integrity)์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์์์น ๋ชปํ ํ๋์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์: NullPointerException, ์๋ชป ์ฒ๋ฆฌํ ์ต์ ์ , ๋จ์ ํ ์คํธ ๋ถ์กฑ ๋ฑ |
Major | ์ด ์ด์๋ ์์ฐ์ฑ(productivity)์ ์ฃผ์ํ(substantial) ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์: ๋๋ฌด ๋ณต์กํ ๋ฉ์๋, ํจํค์ง ์ฌ์ดํด ๋ฑ |
Minor | ์ด ์ด์๋ ์์ฐ์ฑ(productivity)์ ์ ์ฌ์ ์ด๊ฑฐ๋ ๋ฏธ๋ฏธํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์: ๋ค์ด๋ฐ ์ปจ๋ฒค์ , finalizer๊ฐ ์์ ํด๋์ค์ finalizer๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๊ณ ์๋ฌด ๋์๋ ํ์ง ์๋ ๋ฑ |
Info | ์ด ์ด์๋ ์๋ ค์ง์ง ์์๊ฑฐ๋ ์ ์ ์๋์ง ์์ ๋ณด์ ๋ฆฌ์คํฌ ํน์ ์์ฐ์ฑ์ ๋ํ ์ํฅ์ ์๋ฏธํฉ๋๋ค. |
์ ์ง๋ณด์์ฑ(Maintainability)
Name | Key | Description |
Code Smells | code_smells | ์ฝ๋ ์ ์ทจ์ ์. |
New Code Smells | new_code_smells | ์ ๊ท ์ฝ๋ ์ ์ทจ์ ์. |
Maintainability Ratingย (formerly SQALE Rating) | sqale_rating | ๊ธฐ์ ๋ถ์ฑ ๋น์จ(Technical Debt Ratio) ๊ฐ์ ๋ฐ๋ฅธ ํ๋ก์ ํธ ๋ฑ๊ธ. ๊ธฐ๋ณธ ์ ์ง๋ณด์์ฑ ๋ฑ๊ธ(Maintainability Rating)์ ๊ทธ๋ฆฌ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: A=0~0.05, B=0.06~0.1, C=0.11~0.20, D=0.21~0.5, E=0.51~1 ์ ์ง๋ณด์์ฑ ๋ฑ๊ธ์ ํ์ํ ๊ฐ์ ๋น์ฉ(remediation cost)์ผ๋ก ๋์ ํํํ ์ ์์ต๋๋ค:
|
Technical Debt | sqale_index | ๋ชจ๋ ์ ์ง๋ณด์์ฑ ๊ด๋ จ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ณต์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ธก์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ ๋จ์๋ก ์ ์ฅ๋ฉ๋๋ค. |
Technical Debt on new code | new_technical_debt | ์ ๊ท ์ฝ๋์ ๊ธฐ์ ๋ถ์ฑ(Technical Debt). |
Technical Debt Ratio | sqale_debt_ratio | ์ํํธ์จ์ด ๊ฐ๋ฐ ๋น์ฉ๊ณผ ์์ ๋น์ฉ์ ๋น์จ๋ก, ๊ธฐ์ ๋ถ์ฑ ๋น์จ(Technical Debt Ratio)์ ๋ค์ ์์ ๋ฐ๋ผ ๊ณ์ฐํฉ๋๋ค:
์ ๊ณต์์ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค:
์ฝ๋ 1 ๋ผ์ธ ๊ฐ๋ฐ ๋น์ฉ์ 0.06์ผ(day)์ ๋๋ค. |
Technical Debt Ratio on new code | new_sqale_debt_ratio | ๋ฆญ ํผ๋ฆฌ์ด๋(leak period)์ ๋ณ๊ฒฝ๋ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋น์ฉ๊ณผ ํด๋น ์ฝ๋์ ๊ด๋ จ๋ ์ด์ ์ฒ๋ฆฌ ๋น์ฉ์ ๋น์จ์ ๋๋ค. |
ํ์ง ๊ฒ์ดํธ(Quality Gates)
Name | Key | Description |
---|---|---|
Quality Gate Status | alert_status | ํ๋ก์ ํธ์ ๊ด๋ จ๋ ํ์ง ๊ฒ์ดํธ(Quality Gate)์ ์ํ. ERROR , WARN ๋ฐ OK ๊ฐ์ ๊ฐ์ง๋๋ค. |
Quality Gates Details | quality_gate_details | ๋ชจ๋ ํ์ง ๊ฒ์ดํธ์ ์๊ณ ์กฐ๊ฑด(condition)์ ๋ํด, ๊ฐ ์กฐ๊ฑด์ ์ฑ๊ณต ๋ฐ ์คํจ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. |
์ ๋ขฐ์ฑ(Reliability)
Name | Key | Description |
---|---|---|
Bugs | bugs | ๋ฒ๊ทธ ์. |
New Bugs | new_bugs | ์ ๊ท ๋ฒ๊ทธ ์. |
Reliability Rating | reliability_rating | A = ๋ฒ๊ทธ ์ 0๊ฐ |
Reliability remediation effort | reliability_remediation_effort | ๋ชจ๋ ๋ฒ๊ทธ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ณต์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ธก์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ ๋จ์๋ก ์ ์ฅํฉ๋๋ค. |
Reliability remediation effort on new code | new_reliability_remediation_effort | ๋ฆญ ํผ๋ฆฌ์ด๋(leak period)์์ ๋ณ๊ฒฝ๋ ์ฝ๋์ ๋ํ ์ ๋ขฐ์ฑ ๊ฐ์ ๊ณต์(Reliability remediation effort)์ ๋์ผํฉ๋๋ค. |
๋ณด์์ฑ(Security)
Name | Key | Description |
---|---|---|
Vulnerabilities | vulnerabilities | ์ทจ์ฝ์ (vulnerabilities) ์. |
New Vulnerabilities | new_vulnerabilities | ์ ๊ท ์ทจ์ฝ์ ์. |
Security Rating | security_rating | A = ์ทจ์ฝ์ 0๊ฐ |
Securityย remediation effort | security_remediation_effort | ๋ชจ๋ ์ทจ์ฝ์ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ณต์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ธก์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ ๋จ์๋ก ์ ์ฅํฉ๋๋ค. |
Securityย remediation effort on new code | new_security_remediation_effort | ๋ฆญ ํผ๋ฆฌ์ด๋(leak period)์์ ๋ณ๊ฒฝ๋ ์ฝ๋์ ๋ํ ๋ณด์์ฑ ๊ฐ์ ๊ณต์(Security remediation effort)์ ๋์ผํฉ๋๋ค. |
ย
ย
Metric | Key | Description |
---|---|---|
Classes | classes | ํด๋์ค ์(์ค์ฒฉ๋ ํด๋์ค(classes ), ์ธํฐํ์ด์ค(interfaces ), ์ด๋(enums ) ๋ฐ ์ ๋ํ
์ด์
(annotations ) ํฌํจ). |
Directories | directories | ๋๋ ํ ๋ฆฌ ์. |
Files | files | ํ์ผ ์. |
Lines | lines | ๋ฌผ๋ฆฌ์ ์ธ ๋ผ์ธ ์(์บ๋ฆฌ์ง ๋ฆฌํด(carriage returns) ์). |
Lines of code | ncloc | ๊ณต๋ฐฑ(whitespace), ํญ๋ฌธ์(tabulation) ํน์ ์ฃผ์์ ์ผ๋ถ๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ต์ํ ํ ๋ฌธ์ ์ด์ ํฌํจํ ๋ฌผ๋ฆฌ์ ์ธ ๋ผ์ธ ์. |
Lines of code per language | ncloc_language_distribution | ์ธ์ด๋ณ ๋น ์ฃผ์ ์ฝ๋ ๋ผ์ธ ๋ถํฌ |
Methods | functions | ํจ์ ์. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฐ๋ผ ํจ์( |
Projects | projects | ๋ทฐ์ ํ๋ก์ ํธ ์. |
Public API | public_api | ํผ๋ธ๋ฆญ ํด๋์ค( |
Statements | statements | ๊ตฌ๋ฌธ(statement) ์. |
ํ ์คํธ(Tests)
Metric | Key | Description | |
---|---|---|---|
Condition coverage | branch_coverage | ์กฐ๊ฑด ์ปค๋ฒ๋ฆฌ์ง(Condition coverage)๋ ๋ถ๋ฆฌ์ธ ํํ์์ ๊ฐ์ง ๋ชจ๋ ์ฝ๋ ๋ผ์ธ์ ๋ํด, '๊ฐ ๋ถ๋ฆฌ์ธ ํํ์ด ์ฐธ๊ณผ ๊ฑฐ์ง์ผ๋ก ํ๊ฐ๋์๋๊ฐ?'๋ฅผ ํ๋จํฉ๋๋ค. ์ด๋ ๋จ์ ํ ์คํธ๋ฅผ ์คํํ๋ ๋์ ํ๋ฆ ์ ์ด(flow control)์ ์ด ๊ตฌ์กฐ์ ์กด์ฌ ๊ฐ๋ฅํ ์กฐ๊ฑด์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
| |
Condition coverage on new code | new_branch_coverage | ์กฐ๊ฑด ์ปค๋ฒ๋ฆฌ์ง(Condition coverage)์ ๋์ผํ๋, ์ ๊ท ํน์ ์ ๋ฐ์ดํธ ํ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํฉ๋๋ค. | |
Condition coverage hits | branch_coverage_hits_data | ์ปค๋ฒ ๋ ์กฐ๊ฑด ๋ฆฌ์คํธ. | |
Conditions by line | conditions_by_line | ์ฝ๋ ๋ผ์ธ ๋น ์กฐ๊ฑด ์. | |
Covered conditions by line | covered_conditions_by_line | ์ฝ๋ ๋ผ์ธ ๋น ์ปค๋ฒ๋ ์กฐ๊ฑด ์. | |
Coverage | coverage | ๋ผ์ธ ์ปค๋ฒ๋ฆฌ์ง(Line coverage)์ ์กฐ๊ฑด ์ปค๋ฒ๋ฆฌ์ง(Condition coverage)๋ฅผ ์กฐํฉํ ์งํ. ์ด ์งํ๋ '๋จ์ ํ ์คํธ๋ก ์ผ๋ง๋ ๋ง์ ์ฝ๋๋ฅผ ์ปค๋ฒํ๋๊ฐ?'์ ๋ํ ๋ต์ ์ป๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
| |
Coverage on new code | new_coverage | ์ปค๋ฒ๋ฆฌ์ง(Coverage)์ ๋์ผํ๋, ์ ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๋ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํฉ๋๋ค. | |
Line coverage | line_coverage | ๋ผ์ธ ์ปค๋ฒ๋ฆฌ์ง(Line coverage)๋ ์ฃผ์ด์ง ์ฝ๋ ๋ผ์ธ์ ๋ํด '๋จ์ ํ ์คํธ๋ฅผ ์ํํ๋ ๋์, ์ด ์ฝ๋ ๋ผ์ธ์ด ์คํ๋์๋๊ฐ?'๋ฅผ ํ๋จํ๋ฉฐ, ๋จ์ ํ ์คํธ๊ฐ ์ปค๋ฒํ ๋ผ์ธ์ ๋น์จ์ ์๋ฏธํฉ๋๋ค:
| |
Line coverage on new code | new_line_coverage | ๋ผ์ธ ์ปค๋ฒ๋ฆฌ์ง(Line coverage)์ ๋์ผํ๋, ์ ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๋ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํฉ๋๋ค. | |
Line coverage hits | coverage_line_hits_data | ์ปค๋ฒ๋ ๋ผ์ธ ๋ชฉ๋ก. | |
Lines to cover | lines_to_cover | ๋จ์ ํ ์คํธ์ ์ํด ์ปค๋ฒ๋ ์ฝ๋ ๋ผ์ธ ์(์: ๋น ๋ผ์ธ ํน์ ์ ์ฒด ์ฃผ์ ๋ผ์ธ์ ์ปค๋ฒํด์ผ ํ ๋ผ์ธ์ผ๋ก ๊ณ์ฐํ์ง ์์). | |
Lines to cover on new code | new_lines_to_cover | ์ปค๋ฒํด์ผ ํ ๋ผ์ธ์ ์(Lines to cover)์ ๋์ผํ๋, ์ ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๋ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํฉ๋๋ค. | |
Skipped unit tests | skipped_tests | ์คํตํ ๋จ์ ํ ์คํธ ์. | |
Uncovered conditions | uncovered_conditions | ๋จ์ ํ ์คํธ๋ก ์ปค๋ฒ๋์ง ์์ ์กฐ๊ฑด์ ์. | |
Uncoveredย conditionsย on new code | new_uncovered_conditions | ์ปค๋ฒ๋์ง ์์ ์กฐ๊ฑด์ ์(Uncovered conditions)์ ๋์ผํ๋, ์ ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๋ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํจ. | |
Uncovered lines | uncovered_lines | ๋จ์ ํ ์คํธ๋ก ์ปค๋ฒ๋์ง ์์ ์ฝ๋ ๋ผ์ธ ์. | |
Uncovered lines on new code | new_uncovered_lines | ์ปค๋ฒ๋์ง ์์ ๋ผ์ธ ์(Uncovered lines)์ ๋์ผํ๋, ์ ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๋ ์ฝ๋๋ก ๋ฒ์๋ฅผ ํ์ ํจ. | |
Unit tests | tests | ๋จ์ ํ ์คํธ ์. | |
Unit tests duration | test_execution_time | ๋ชจ๋ ๋จ์ ํ ์คํธ๋ฅผ ์ํํ๊ธฐ ์ํด ํ์ํ ์๊ฐ. | |
Unit test errors | test_errors | ์คํจํ ๋จ์ ํ ์คํธ ์. | |
Unit test failures | test_failures | ์์ํ์ง ์์ ์ต์ ์ ์ผ๋ก ์คํจํ ๋จ์ ํ ์คํธ ์. | |
Unit test success density (%) | test_success_density | ํ ์คํธ ์ฑ๊ณต ๋ฐ๋(Test success density) = (Unit testsย - (Unit test errorsย +ย Unit test failures)) /ย Unit testsย * 100 |
ํตํฉ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง(Integration tests coverage) ๋ฐ ์ ์ฒด ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง(Overall tests coverage = Units tests + Integration tests) ์งํ์ ๋ํด์๋ ๋์ผํ ๋ฉํธ๋ฆญ์ ์ ๊ณตํฉ๋๋ค.
๋จ, ํตํฉ ํ ์คํธ์ ์ ์ฒด ํ ์คํธ์ ๋ํ ํ ์คํธ ์คํ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
Related content
ยฉ 2017-2018 Moses Kim.
๋ณ๋์ ์ธ๊ธ์ด ์๋ ํ, ์ด ์คํ์ด์ค์ ์ปจํ
์ธ ๋ ํฌ๋ฆฌ์์ดํฐ๋ธ ์ปค๋จผ์ฆ ์ ์์ํ์-๋น์๋ฆฌ-๋์ผ์กฐ๊ฑด๋ณ๊ฒฝํ๋ฝ 4.0 ๊ตญ์ ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค.
SONARQUBE๋ SonarSource SA์ ํธ๋ ์ด๋ ๋งํฌ์
๋๋ค. ๋ชจ๋ ํธ๋ ์ดํธ ๋งํฌ ๋ฐ ์ ์๊ถ์ ๊ฐ ์์ ์์ ์์ ๋ฌผ์
๋๋ค.
::: SonarQube ๊ด๋ จ ๋ฌธ์ : ์ด๋ฉ์ผ :::