PVS-Studio 7.04์ ์ถ์๋ Jenkins์ฉ Warnings Next Generation 6.0.0 ํ๋ฌ๊ทธ์ธ์ ์ถ์์ ๋์์ ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ Warnings NG ํ๋ฌ๊ทธ์ธ์ PVS-Studio ์ ์ ๋ถ์๊ธฐ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ์ Jenkins์ ์ปดํ์ผ๋ฌ ๋๋ ๊ธฐํ ๋ถ์ ๋๊ตฌ์ ๊ฒฝ๊ณ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํฉ๋๋ค. ์ด ๋ฌธ์์์๋ PVS-Studio์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด ์ด ํ๋ฌ๊ทธ์ธ์ ์ค์น ๋ฐ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ํด ์์ธํ ์ค๋ช
ํฉ๋๋ค.
Jenkins์ ์ฐจ์ธ๋ ๊ฒฝ๊ณ ํ๋ฌ๊ทธ์ธ ์ค์น
๊ธฐ๋ณธ์ ์ผ๋ก Jenkins๋ ๋ค์ ์์น์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ "ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ" ํญ๋ชฉ์ ์ ํํ๊ณ "์ฌ์ฉ ๊ฐ๋ฅ" ํญ์ ์ฝ๋๋ค.
ํํฐ ํ๋์ ์ค๋ฅธ์ชฝ ์๋จ์ "Warnings Next Generation"์ ์ ๋ ฅํฉ๋๋ค.
๋ชฉ๋ก์์ ํ๋ฌ๊ทธ์ธ์ ์ฐพ์ ์ผ์ชฝ ์์๋ฅผ ์ ํํ ํ "๋ค์ ์์ํ์ง ์๊ณ ์ค์น"๋ฅผ ํด๋ฆญํ์ธ์.
ํ๋ฌ๊ทธ์ธ ์ค์น ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค. ์ฌ๊ธฐ์๋ ํ๋ฌ๊ทธ์ธ ์ค์น ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
Jenkins์์ ์ ์์ ๋ง๋ค๊ธฐ
์ด์ ๋ฌด๋ฃ ๊ตฌ์ฑ์ผ๋ก ์์ ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. Jenkins ๋ฉ์ธ ํ์ด์ง์์ โ์ ํญ๋ชฉโ์ ์ ํํฉ๋๋ค. ํ๋ก์ ํธ ์ด๋ฆ(์: WTM)์ ์ ๋ ฅํ๊ณ โFreestyle projectโ ํญ๋ชฉ์ ์ ํํฉ๋๋ค.
"ํ์ธ"์ ํด๋ฆญํ๋ฉด ์์ ์ค์ ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค. ์ด ํ์ด์ง ํ๋จ์ "๋น๋ ํ ์์ " ํญ๋ชฉ์์ "๋น๋ ํ ์์ ์ถ๊ฐ" ๋ชฉ๋ก์ ์ฝ๋๋ค. ๋ชฉ๋ก์์ "์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ๋ฐ ์ ์ ๋ถ์ ๊ฒฐ๊ณผ ๊ธฐ๋ก"์ ์ ํํฉ๋๋ค.
"๋๊ตฌ" ํ๋์ ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ "PVS-Studio"๋ฅผ ์ ํํ ๋ค์ ์ ์ฅ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์์ ํ์ด์ง์์ "์ง๊ธ ๋น๋"๋ฅผ ํด๋ฆญํ์ฌ ์์ ์ ์ํด Jenkins์ ์์ ๊ณต๊ฐ์ ํด๋๋ฅผ ๋ง๋ญ๋๋ค.
ํ๋ก์ ํธ ๋น๋ ๊ฒฐ๊ณผ ์ป๊ธฐ
์ค๋ ์ ๋ Github ํธ๋ ๋์์ dotnetcore/WTM ํ๋ก์ ํธ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. Github์์ ๋ค์ด๋ก๋ํ์ฌ Jenkins์ WTM ๋น๋ ๋๋ ํฐ๋ฆฌ์ ๋ฃ๊ณ PVS-Studio ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ Visual Studio์์ ๋ถ์ํ์ต๋๋ค. Visual Studio์์ PVS-Studio๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ค๋ช
์ ๊ฐ์ ์ด๋ฆ์ ๋ฌธ์์ ๋์ ์์ต๋๋ค.
์ ๋ Jenkins์์ ํ๋ก์ ํธ ๋น๋๋ฅผ ๋ช ๋ฒ ์คํํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ Jenkins์ WTM ์์ ํ์ด์ง ์ค๋ฅธ์ชฝ ์๋จ์ ๊ทธ๋ํ๊ฐ ๋ํ๋๊ณ ์ผ์ชฝ์๋ ๋ฉ๋ด ํญ๋ชฉ์ด ๋ํ๋ฉ๋๋ค. PVS-Studio ๊ฒฝ๊ณ :
์ฐจํธ๋ ์ด ๋ฉ๋ด ํญ๋ชฉ์ ํด๋ฆญํ๋ฉด Warnings Next Generation ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ PVS-Studio ๋ถ์๊ธฐ ๋ณด๊ณ ์๋ฅผ ์๊ฐํํ ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค.
๊ฒฐ๊ณผ ํ์ด์ง
ํ์ด์ง ์๋จ์ ๋ ๊ฐ์ ์ํ ์ฐจํธ๊ฐ ์์ต๋๋ค. ์ฐจํธ ์ค๋ฅธ์ชฝ์๋ ๊ทธ๋ํ ์ฐฝ์ด ์์ต๋๋ค. ์๋๋ ํ์ ๋๋ค.
์ผ์ชฝ ์ํ ์ฐจํธ๋ ๋ค์ํ ์ฌ๊ฐ๋ ์์ค์ ๊ฒฝ๊ณ ๋น์จ์ ๋ณด์ฌ์ฃผ๊ณ , ์ค๋ฅธ์ชฝ ์ํ ์ฐจํธ๋ ์๋ก์ด ๊ฒฝ๊ณ , ์์ ๋์ง ์์ ๊ฒฝ๊ณ , ์์ ๋ ๊ฒฝ๊ณ ์ ๋น์จ์ ๋ณด์ฌ์ค๋๋ค. ์ธ ๊ฐ์ง ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ํ์๋ ๊ทธ๋ํ๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ํ์ดํ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฉ๋๋ค. ์ฒ์ ๋ ๊ทธ๋ํ๋ ์ฐจํธ์ ๋์ผํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ์ธ ๋ฒ์งธ ๊ทธ๋ํ๋ ๊ฒฝ๊ณ ์์ ๋ณํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ฐจํธ ํฌ์ธํธ๋ก ์ด์ ๋ธ๋ฆฌ๋ ๋ ์ง๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
ํน์ ๊ธฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ํด ์ฐจํธ์ ์๊ฐ ๋ฒ์๋ฅผ ์ขํ๊ณ ํ์ฅํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ํ ๋ฒ๋ก์์ ์ธก์ ํญ๋ชฉ ์ง์ ์ ํด๋ฆญํ์ฌ ํน์ ์ธก์ ํญ๋ชฉ์ ๊ทธ๋ํ๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค.
'์ผ๋ฐ' ์ธก์ ํญ๋ชฉ์ ์จ๊ธด ํ ๊ทธ๋ํ:
์๋๋ ๋ถ์๊ธฐ ๋ณด๊ณ ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ํ์ ๋๋ค. ์ํ ์ฐจํธ์ ํ ์นํฐ๋ฅผ ํด๋ฆญํ๋ฉด ํ ์ด๋ธ์ด ํํฐ๋ง๋ฉ๋๋ค.
ํ ์ด๋ธ์๋ ๋ฐ์ดํฐ ํํฐ๋ง์ ์ํ ์ฌ๋ฌ ํญ์ด ์์ต๋๋ค. ์ด ์์์๋ ๋ค์์คํ์ด์ค, ํ์ผ, ์นดํ ๊ณ ๋ฆฌ(๊ฒฝ๊ณ ์ด๋ฆ)๋ณ๋ก ํํฐ๋ง์ด ๊ฐ๋ฅํฉ๋๋ค. ํ์์ ํ ํ์ด์ง์ ํ์ํ ๊ฒฝ๊ณ ์(10, 25, 50, 100)๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
"๊ฒ์" ํ๋์ ์ ๋ ฅ๋ ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค. "Base"๋ผ๋ ๋จ์ด๋ก ํํฐ๋งํ๋ ์:
'๋ฌธ์ ' ํญ์์ ํ ํ ์์ ๋ถ๋ถ์ ์๋ ๋ํ๊ธฐ ๊ธฐํธ๋ฅผ ํด๋ฆญํ๋ฉด ๊ฒฝ๊ณ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช ์ด ํ์๋ฉ๋๋ค.
๊ฐ๋ตํ ์ค๋ช ์๋ ์ด ๊ฒฝ๊ณ ์ ๋ํ ์์ธํ ์ ๋ณด๊ฐ ์๋ ์น์ฌ์ดํธ ๋งํฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
"ํจํค์ง", "๋ฒ์ฃผ", "์ ํ", "์ฌ๊ฐ๋" ์ด์ ๊ฐ์ ํด๋ฆญํ๋ฉด ์ ํํ ๊ฐ์ผ๋ก ํ ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ํํฐ๋ง๋ฉ๋๋ค. ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ํํฐ๋ง:
"๊ธฐ๊ฐ" ์ด์๋ ์ด ๊ฒฝ๊ณ ์์ ์ด์๋จ์ ๋น๋ ์๊ฐ ํ์๋ฉ๋๋ค. Age ์ด์ ๊ฐ์ ํด๋ฆญํ๋ฉด ์ด ๊ฒฝ๊ณ ๊ฐ ์ฒ์ ๋ํ๋ ๋น๋ ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค.
"ํ์ผ" ์ด์ ๊ฐ์ ํด๋ฆญํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํจ ์ฝ๋๊ฐ ์๋ ์ค์ ์๋ ํ์ผ์ ์์ค ์ฝ๋๊ฐ ์ด๋ฆฝ๋๋ค. ํ์ผ์ด ๋น๋ ๋๋ ํฐ๋ฆฌ์ ์๊ฑฐ๋ ๋ณด๊ณ ์๊ฐ ์์ฑ๋ ํ ์ด๋๋ ๊ฒฝ์ฐ ํ์ผ์ ์์ค ์ฝ๋๋ฅผ ์ด ์ ์์ต๋๋ค.
๊ฒฐ๋ก
Warnings Next Generation์ Jenkins์ ๋งค์ฐ ์ ์ฉํ ๋ฐ์ดํฐ ์๊ฐํ ๋๊ตฌ๋ก ๋ฐํ์ก์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ์ ํตํ PVS-Studio ์ง์์ด ์ด๋ฏธ PVS-Studio๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๋ถ๋ค์๊ฒ ํฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ, ๋ค๋ฅธ Jenkins ์ฌ์ฉ์๋ค์ ์ ์ ๋ถ์์ ๋ํ ๊ด์ฌ๋ ๋ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ๋ถ์๊ธฐ๋ก PVS-Studio๋ฅผ ์ ํํ์ ๋ค๋ฉด ๋งค์ฐ ๊ธฐ์ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ์ด๋ํฉ๋๋ค
์ด ๊ธฐ์ฌ๋ฅผ ์์ด๊ถ ์ฒญ์ค๊ณผ ๊ณต์ ํ๋ ค๋ฉด Valery Komarov ๋ฒ์ญ ๋งํฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์ถ์ฒ : habr.com