์ฝ๋ ๋ทฐ์ด
SQ Official Docs Link: https://docs.sonarqube.org/display/SONAR/Code+Viewer
Table of Contents
์ฝ๋ ๋ทฐ์ด(code viewer)๋ SonarQube์ ํต์ฌ์ ๋๋ค. ํ์ผ์ ์์ค ์ฝ๋(์์ค ๋ฐ ํ ์คํธ ํ์ผ) ๋ฐ ํด๋น ํ์ผ์ ์์ ํต๊ณ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค:
- ๋ผ์ธ(Lines)
- ์ด์(Issues): ํ์ง ํ๋กํ์ผ์ ํ์ฑํ ๋ ๊ท์น์ ๋ํ ์๋ฐ ์ฌํญ
- ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง(Test coverage)ย : ๋จ์ ํ
์คํธ ๋ฐ ํตํฉ ํ
์คํธ ๋ณ ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง
- ์ฝ๋ ์ค๋ณต(Duplications): ๋์ผ ํ์ผ ํน์ ๋ค๋ฅธ ํ์ผ ์ฌ์ด์ ์ฝ๋ ์ค๋ณต
- SCM ์ ๋ณด(SCM information): ํด๋น ๋ผ์ธ์ ๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐํ ์ฌ๋๊ณผ ์ปค๋ฐํ ๋ ์ง
- ํ ์คํธ ํ์ผ์ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค(tests)ย ๋ฐ ํด๋น ํ ์คํธ ์ผ์ด์ค์ ์คํ ์๊ฐ, ์คํ ์ํ
์ฝ๋ ๋ทฐ์ด ํ๋ฉด์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค:
- Measures ๋ฐ Code ํ์ด์ง๋ก๋ถํฐ ๋ค๋ฆด ๋ค์ด
- Issues page ์์ ์ด์ ํด๋ฆญ
- ์น ์ธํฐํ์ด์ค ์ต์๋จ ์ค๋ฅธ์ชฝ์ ๊ฒ์ ์ฐฝ์์ ํน์ ํ ํ์ผ์ ๊ฒ์
์ฝ๋ ๋ทฐ์ด๋ ํ์ฌ ํ์ผ(current file)๊ณผ ๊ณ ์ ํ์ผ(pinned file)์ ๋ ๊ฐ์ง ๋ทฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ฌ ํ์ผ
๋ ์ด์์
์ฝ๋ ๋ทฐ์ด๋ 2๊ฐ ํํธ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
- ํค๋(header)๋ ํ์ผ ๋งจ ์ ๋ถ๋ถ์ ์์นํ๋ฉฐ, ์ ์ฉํ ์ ๋ณด๋ฅผ ํ์ํ๊ณ , ๋ฐ์ฝ๋ ์ด์ (decoration) ๋ฐ ํํฐ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์์ค ์ฝ๋(source code)๋ ์ค์์ ์์นํ๋ฉฐ, ํค๋์์ ์ค์ ํ ๋ฐ์ฝ๋ ์ด์ ์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ค์ ํจ๊ป ํ์ํฉ๋๋ค.
ํค๋
ํค๋(header)๋ ์ต๋ 4๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ํ์ํ ์ ์์ผ๋ฉฐ, ๋ผ์ธ(Lines), ์ด์(Issues), ์ปค๋ฒ๋ฆฌ์ง ํ์ธํ๊ธฐ(์์ค ํ์ผ์ ๊ฒฝ์ฐ) ํน์ ํ ์คํธ ์ผ์ด์ค(ํ ์คํธ ํ์ผ์ ๊ฒฝ์ฐ), ์ฝ๋ ์ค๋ณต์ ํ์ํฉ๋๋ค. ํ์ฌ ํ์ผ๊ณผ ๊ด๊ณ ์๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ํ์๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด, ํ๋ก์ ํธ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ปค๋ฒ๋ฆฌ์ง ๋ฐ์ดํฐ๋ ์๋ต๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ฝ๋ ์ค๋ณต์ด ์๋ ๊ฒฝ์ฐ, ์ฝ๋ ์ค๋ณต ๋ธ๋ญ๋ ํ์ํ์ง ์์ต๋๋ค.
์์ค ์ฝ๋
์ฝ๋ ๋ทฐ์ด์ ์ฃผ ๋ชฉ์ ์ ์์ค ์ฝ๋ ๋ฐ ํด๋น ์ด์๋ฅผ ์์ ํ๋ ๋ฐ ์์๋๋ ๊ณต์๋ฅผ ํ์ํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด์, ์ฝ๋ ์ค๋ณต ๋ฐ ํ ์คํธ ์ผ์ด์ค ๋ฐ์ฝ๋ ์ด์ ์ ํญ์ ํ์๋ฉ๋๋ค. ํ์ง๋ง ์ด์์ ๊ฒฝ์ฐ Issue ํ์ด์ง์์ ์ฝ๋ ๋ทฐ์ด๋ก ์ ๊ทผํด์ผ๋ง ํผ์ณ์ง ์ํ๋ก ๋ณด์ฌ์ง๋ฉฐ, ์ ๊ท ์ฝ๋์ ๊ฒฝ์ฐ ์ฐจ์ด(differential) ๊ธฐ๋ฅ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ์๋ง ํ์๋ฉ๋๋ค:
์ถ๊ฐ ์ก์
์ฝ๋ ๋ทฐ์ด ํค๋์ ์ฐ์ธก ์์ฅ์ ์์นํ ์ก์ ๋ฉ๋ด๋ฅผ ํตํด ์ถ๊ฐ ์ต์ ์ ์ ํํ ์ ์์ต๋๋ค:ย
"Shot Details" ๋ฉ๋ด๊ฐ ๊ฐ์ฅ ๋์ ๋๋ ๊ธฐ๋ฅ์ด๋ฉฐ, ํด๋น ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ ํํ ํ์ผ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ํฌํจํ ๋ชจ๋ฌ ํ์ ์ด ํ์๋ฉ๋๋ค:
๊ณ ์ ํ์ผ(Pinned Files)
์์ค ํ์ผ ๋ฐ ๊ท์น ์ค๋ช ์ ์ง์ ๊ณ ์ ํ๊ฑฐ๋(pin):
ํน์ ๋ค๋ฅธ ํ์ผ์ ์ฝ๋ ์ค๋ณต ์์ธ ํ์ ์์ ๊ณ ์ ํ ์ ์์ต๋๋ค.ย
ํ์ฌ ์กํฐ๋ธ ์ํ๋ก ๊ณ ์ ๋ ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ ์ถ์/ํ๋ํ๊ฑฐ๋ ์๋์ฐ๋ฅผ ๋ซ์ ์ ์์ต๋๋ค. ํ์ฌ ์กํฐ๋ธ ์ํ์ธ ์๋์ฐ๋ ์ปจํ ์คํธ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ํ์ผ์ ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ต์ํ๋ฉ๋๋ค.
๊ด๋ จ ์ ๋ณด
์ฝ๋ ๋ทฐ์ด์ ๊ด๋ จํ ๋ ๋ง์ ์ ๋ณด๋ ์๋ ํ์ด์ง๋ฅผ ์ฐธ์กฐํฉ๋๋ค:
Related content
ยฉ 2017-2018 Moses Kim.
๋ณ๋์ ์ธ๊ธ์ด ์๋ ํ, ์ด ์คํ์ด์ค์ ์ปจํ
์ธ ๋ ํฌ๋ฆฌ์์ดํฐ๋ธ ์ปค๋จผ์ฆ ์ ์์ํ์-๋น์๋ฆฌ-๋์ผ์กฐ๊ฑด๋ณ๊ฒฝํ๋ฝ 4.0 ๊ตญ์ ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค.
SONARQUBE๋ SonarSource SA์ ํธ๋ ์ด๋ ๋งํฌ์
๋๋ค. ๋ชจ๋ ํธ๋ ์ดํธ ๋งํฌ ๋ฐ ์ ์๊ถ์ ๊ฐ ์์ ์์ ์์ ๋ฌผ์
๋๋ค.
::: SonarQube ๊ด๋ จ ๋ฌธ์ : ์ด๋ฉ์ผ :::