μ΄ λ¬Έμλ SonarQube v6.4 κΈ°λ°μ λ¬Έμλ‘ μμΉ΄μ΄λΈ λμμ΅λλ€.
μ΅μ λ¬Έμλ₯Ό μ°Έμ‘°νμμμ€.
νμ§ νλ‘νμΌ
SQ Official Doc Link: https://docs.sonarqube.org/display/SONAR/Quality+Profiles
Table of Contents
κ°μ
νμ§ νλ‘νμΌ(Quality Profile)μ SonarQubeμ ν΅μ¬ μλΉμ€μ λλ€. νμ§ νλ‘νμΌμ μ¬μ©μκ° μ μν μ½λ© κ·μΉμ μ§ν©μ΄κΈ° λλ¬Έμ λλ€(μ: Methods must not have a complexity greater than 10).
μ΄μμ μΈ κ²½μ°, λͺ¨λ νλ‘μ νΈλ νΉμ μΈμ΄μ λν΄ λμΌν νμ§ νλ‘νμΌμ κ°μ ΈμΌ νλ, μ΄λ¬ν μ μ κ° νμ νμ€μ μΈ κ²μ μλλλ€. μλ₯Ό λ€λ©΄, λ€μκ³Ό κ°μ κ²½μ°κ° μμ΅λλ€:
- μ΄ν리μΌμ΄μ μ¬μ΄μ κΈ°μ μ μΈ κ΅¬νμ΄ μμ΄ν κ²½μ°(μλ₯Ό λ€λ©΄, Thread κΈ°λ° νΉμ Non-Threaded κΈ°λ°μ Java applicationμ ꡬννλ κ²½μ° μ½λ© κ·μΉμ΄ μμ΄ν¨)
- νΉμ μ΄ν리μΌμ΄μ μ λμμΌλ‘ λ νκ³ ν κΈ°μ€μ μ μ©νκ³ μ νλ κ²½μ°(μλ₯Ό λ€λ©΄, λ΄λΆ νλ μμν¬ λ±)
- κΈ°ν
μ΄λ κ²½μ°λΌλ μ¬μ©μλ μνλ λ§νΌμ νμ§ νλ‘νμΌμ μ μν μ μμ΅λλ€. νλ‘κ·Έλλ° μΈμ΄λ³λ‘ μ€μ λ νμ§ νλ‘νμΌμ κ΄λ¦¬νλ €λ©΄, Quality ProfilesΒ (top menu) λ©λ΄λ₯Ό μ¬μ©ν©λλ€.
λͺ¨λ νλ‘κ·Έλλ° μΈμ΄ νλ¬κ·ΈμΈμ κΈ°λ³Έ νλ‘νμΌμ λ΄μ₯νκ³ μκΈ° λλ¬Έμ("Sonar way"), νΉλ³ν μ€μ μμ΄λ 곧λ°λ‘ μμ€ μ½λλ₯Ό λΆμν μ μμ΅λλ€. μ¦, μλ‘μ΄ μΈμ΄ νλ¬κ·ΈμΈμ μΆκ°νλ©΄, μ΅μν νλμ νμ§ νλ¬κ·ΈμΈμ μ¬μ©ν μ μμ΅λλ€.
λͺ¨λ νλ‘κ·Έλλ° μΈμ΄λ κΈ°λ³Έ νμ§ νλ‘νμΌμ κ°μ§λλ€("Default" νκ·Έλ‘ νμλ¨). νΉμ ν νμ§ νλ‘νμΌμ ν λΉνμ§ μμ νλ‘μ νΈλ ν΄λΉ μΈμ΄μ κΈ°λ³Έ νλ‘νμΌμ μ¬μ©ν΄ λΆμλ©λλ€.
SonarQubeλ₯Ό μ²μ μ¬μ©νλ€λ©΄, Sonar wayλ₯Ό κΈ°λ³Έ νλ‘νμΌλ‘ μ¬μ©νλ κ²λ μ’μ΅λλ€. Sonar way νλ‘νμΌμ ν΄λΉ μΈμ΄λ‘ μμ±λ λλΆλΆμ νλ‘μ νΈλ€μ μ μ© κ°λ₯ν κ·μΉλ€λ‘ ꡬμ±λμ΄ μμ΅λλ€. νμ§λ§, μ¬μ©μμ νλ‘μ νΈμ μ΅μ μΈ νλ‘νμΌμ μ¬μ©νκ³ μ νλ κ²½μ°μλ μλ‘μ΄ νλ‘νμΌμ λ§λ€ κ²μ κΆμ₯ν©λλ€(Sonar wayλ₯Ό 볡μ¬νμ¬ νλ‘νμΌμ μμ±ν μ μμ΅λλ€). μ΄ λ°©λ²μ μ¬μ©νλ©΄ Sonar wayλ₯Ό νμ§ νλ‘νμΌμ κΈ°μ€μ μΌλ‘ νμ©ν΄, μ¬μ©μκ° μμ±ν νλ‘νμΌμ λ³κ²½ λ΄μμ μΆμ ν μ μκΈ° λλ¬Έμ λλ€. λν, Sonar wayμλ νλ¬κ·ΈμΈμ μ κ· λ²μ μ΄ λ¦΄λ¦¬μ€ λ λλ§λ€ μλ‘μ΄ κ·μΉμ΄ μΆκ°λκΈ°λ νκ³ , κΈ°μ‘΄ κ·μΉμ μ¬κ°λκ° μ‘°μ λκΈ°λ ν©λλ€. Sonar wayλ₯Ό 볡μ¬ν΄μ μμ±ν νμ§ νλ‘νμΌμ μ΄λ¬ν λ³κ²½ μ¬νμ΄ μλμΌλ‘ μ μ©λμ§λ μμ§λ§, μμ±ν νμ§ νλ‘νμΌμ μ λ°μ΄νΈνλ€λ©΄, μλ‘μ΄ Sonar wayμ μ΄λ€ κ·μΉλ€μ΄ μΆκ°λμλμ§ λΉκ΅ν΄λ³Ό μ μμ΅λλ€("λ΄κ° λ§λ νλ‘νμΌμ νμν μ κ· κ·μΉλ€μ λͺ¨λ μΆκ°νλμ§ μκ³ μΆλ€λ©΄?" νλͺ© μ°Έμ‘°).
μ΄λ° κ²½μ°μλ μ΄λ»κ²...
ν νλ‘νμΌμμ λ€λ₯Έ νλ‘νμΌλ‘ κ·μΉλ€μ 볡μ¬νκ³ μΆλ€λ©΄?
λ§μ μ¬μ©μλ€μ΄ μ€μ λ‘ λ΄μ₯λ νλ‘νμΌμ μ λ°μ΄νΈ νμ§ μμ μ±λ‘ ν΄λΉ νλ‘νμΌμ μ¬μ©νκ³ μΆμ΄ ν©λλ€. μ΄λ¬ν κ²½μ°, Quality Profiles νμ΄μ§μμ μ€λ¦¬μ§λ νλ‘νμΌ(SourceλΌκ³ λΆλ¦ λλ€)μ κ·μΉ μ«μλ₯Ό ν΄λ¦ν©λλ€. μ΄μ΄ λνλλ Rules νμ΄μ§λ ν΄λΉ νλ‘νμΌμ ν¬ν¨λ κ·μΉλ€λ§μ νμν©λλ€. Bulk Activate λ²νΌμ ν΄λ¦νκ³ λμ νλ‘νμΌμ μ ννλ©΄ ν΄λΉ κ·μΉλ€μ λμ νλ‘νμΌμμ λͺ¨λ νμ±ν ν μ μμ΅λλ€.
ν νλ‘νμΌμ λ³κ²½ μ¬νμ νμΈνκ³ μΆλ€λ©΄?
SonarQubeλ νμ¬ λΆμμμ μ¬μ©ν νμ§ νλ‘νμΌκ³Ό, μ΄μ λΆμμμ μ¬μ©ν νμ§ νλ‘νμΌμ΄ λ€λ₯΄λ€λ κ²μ κ°μ§νλ©΄ Quality Profile μ΄λ²€νΈλ₯Ό νλ‘μ νΈμ μ΄λ²€νΈ λ‘κ·Έμ μΆκ°ν©λλ€. νλ‘νμΌμ λ³κ²½ μ¬νμ νμΈνκ³ μ νλ κ²½μ°, Quality Profiles >Β 'Project Name'μΌλ‘ μ΄λν΄ Changelogλ₯Ό μ νν©λλ€. νλ‘νμΌ λ³κ²½μ΄ λΆμ κ²°κ³Όμ λ―ΈμΉ μν₯μ νμΈν μ μμ΅λλ€μΌλ‘ μΈν΄ λΆμ κ²°κ³Όμ λ―ΈμΉ μ¬ν₯μ νμΈν μ μμ΅λλ€.Β
ν SonarQube μΈμ€ν΄μ€μμ λ€λ₯Έ SonarQube μΈμ€ν΄μ€λ‘ νλ‘νμΌμ 볡μ¬νκ³ μΆλ€λ©΄?
Back up κΈ°λ₯μ μ¬μ©ν΄ νμ§ νλ‘νμΌμ XML νμΌλ‘ μΆμΆν μ μμ΅λλ€. λμ μΈμ€ν΄μ€μμ Restore Profile κΈ°λ₯μ μ¬μ©ν΄ XML νμΌμ μν¬νΈν μ μμ΅λλ€. λ€λ§, Back up/ Restore Profile κΈ°λ₯μλ μ ν μ¬νμ΄ μμ΅λλ€:
νλ‘μ νΈμ ν΅μ¬ κ·μΉ μ κ³Ό μΆκ° κ·μΉμ μ μ©νκ³ μΆλ€λ©΄?
μ¬μ©μμ μ‘°μ§μ λͺ¨λ νλ€μ΄ λ°λμ μ€μν΄μΌ νλ μ΅μνμ μ½λ© κ·μΉμ΄ μ‘΄μ¬νλ€κ³ κ°μ ν©λλ€. μ¬λ¬λΆμ μ¬λ¬λΆμ΄ κ°λ°μ μ°Έμ¬νλ νλ‘μ νΈμμ μ¬μ©νλ νΉμ ν κΈ°μ κ³Ό κ΄λ ¨λ κ·μΉλ€μ μΆκ°νκΈ°λ₯Ό μν©λλ€. ν΄λΉ κ·μΉλ€μ μ¬λ¬λΆμ νμλ μλ―Έμμ§λ§, λ€λ¦ νμκ²λ μ ν μλ―Έκ° μκ±°λ μ¬μ§μ΄ μλͺ»λ νλ¨μ μΌκΈ°νλλ‘ ν μλ μμ΅λλ€. μ΄λ¬ν κ²½μ°μλ μμ(inheritance) κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€. ν΅μ¬μ μΈ κ·μΉ μ μΌλ‘ λ² μ΄μ€λΌμΈ νλ‘νμΌ(Root)μ μ€μ ν©λλ€. λ€μμΌλ‘ μμ νλ‘νμΌ(Sprout)λ₯Ό μμ±ν©λλ€. Sproutμ μ ννκ³ Change parent λ²νΌμ ν΄λ¦ν ν, Rootλ₯Ό μ νν©λλ€. κ·Έ ν, νμν κ·μΉλ€μ μΆκ°ν©λλ€.
λΉ-κΈ°λ³Έ νλ‘νμΌμ΄ νλ‘μ νΈμ μ μ©λμλμ§ νμΈνκ³ μΆλ€λ©΄?
λͺ¨λ νλ‘κ·Έλλ° μΈμ΄λ νλμ κΈ°λ³Έ νμ§ νλ‘νμΌ(defaultλ‘ νκΈ°)μ κ°μ§λλ€. νΉλ³ν μ€μ μ΄ μλ κ²½μ°, νλ‘κ·Έλλ° μΈμ΄λ ν΄λΉ μΈμ΄μ κΈ°λ³Έ νμ§ νλ‘νμΌμ μ¬μ©ν΄ λΆμλ©λλ€. λΉ-κΈ°λ³Έ νλ‘νμΌμ μ¬μ©ν΄ νλ‘μ νΈλ₯Ό λΆμνκ³ μ νλ κ²½μ°, Quality Profiles λ©λ΄μμ μ¬μ©νκ³ μ νλ νλ‘νμΌμ μ νν©λλ€. μΈν°νμ΄μ€μ Projects μμμμ ν΄λΉ νλ‘νμΌμ μ μ©ν νλ‘μ νΈλ₯Ό μ νν μ μμ΅λλ€.
λ΄κ° λ§λ νλ‘νμΌμ νμν μ κ· κ·μΉλ€μ λͺ¨λ μΆκ°νλμ§ νμΈνκ³ μΆλ€λ©΄?
νλ‘κ·Έλλ° μΈμ΄ νλ¬κ·ΈμΈμ΄ 릴리μ¦λλ κ²½μ°, μλ‘μ΄ κ·μΉλ€μ΄ μΆκ°λλ ν΄λΉ κ·μΉλ€μ μ¬μ© μ€μΈ νλ‘νμΌμ μ μ©λμ§ μμ΅λλ€. Β Sonar wayμ κ°μ λ΄μ₯ νλ‘νμΌ μ¬μ©νλ€λ©΄, Restore Build-in Profiles μ΅μ μ μ¬μ©ν΄ ν΄λΉ νλ‘νμΌμ μ€μΉ μ΄κΈ° μνλ‘ λ³κ²½ν μ μμ΅λλ€.
κΈ°λ³Έ νλ‘νμΌμ μ¬μ©νμ§ μλ κ²½μ°μλ, νλ‘νμΌμ μ볡νλ κ³Όμ μμ 첫 μμμ ν μ μμ΅λλ€. μ΄ν, μ¬μ©μ νλ‘νμΌκ³Ό λ΄μ₯ νλ‘νμΌμ λΉκ΅ν΄ μ κ· κΈ°λ³Έ κ·μΉμ λλ½ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€.
λλ,Β Rules νμ΄μ§μμ Available Since κ²μ 쑰건μ νμ©ν΄ νλ¬κ·ΈμΈ μ λ°μ΄νΈ μ΄νμ λ³κ²½ λ΄μ©μ νμΈν μλ μμ΅λλ€.
λ§μ§λ§μΌλ‘, νλ‘νμΌ μΈν°νμ΄μ€ μ€λ₯Έμͺ½μ Latest New Rules λ²νΌμ νμ©ν΄ νΉμ νλ‘νμΌμ μ κ· μΆκ°λ κ·μΉλ€μ νμΈν μ μμ΅λλ€.
λ νλ‘νμΌμ λΉκ΅νκ³ μΆλ€λ©΄?
Quality Profiles νμ΄μ§μμ λΉκ΅νκ³ μ νλ νλ‘νμΌ μ€ νλλ₯Ό μ νν©λλ€. Actions > Compare μΈν°νμ΄μ€μμ λΉκ΅νκ³ μ νλ λλ¨Έμ§ νλ‘νμΌμ μ νν΄, νλ‘νμΌμ λΉκ΅ν μ μμ΅λλ€.
λ΄ νλ‘νμΌμ λΆνμν(deprecated) κ·μΉμ΄ μλμ§ νμΈνκ³ μΆλ€λ©΄?
Rules μΈν°νμ΄μ€μ Deprecated Rules μΉμ μ κ·Έ μμ²΄λ‘ λΆνμν κ·μΉμ΄ νλ‘νμΌμ μ‘΄μ¬νμ§ μλμ§ μλ €μ£Όλ 첫 λ¨κ³μ λλ€. λΆνμμ λ°°κ²½μΌλ‘ νμλλ μμμ νμ¬ νλ‘νμΌμ μ‘΄μ¬νλ λΆνμν(deprecated) κ·μΉλ€μ λν μ 보(νλ‘νμΌ λ³ κ·μΉ μ)λ₯Ό 보μ¬μ€λλ€. ν΄λΉ μμμ ν΄λ¦νλ©΄ νλ‘νμΌμ μμ ν μ μλ Rules νμ΄μ§λ‘ μ΄λν©λλ€.
λ€λ₯Έ λ°©λ²μΌλ‘ νλ‘νμΌμ ν¬ν¨λ κ·μΉλ€μ Rules Β νμ΄μ§μμ κ²μν μ μμ΅λλ€(μ§μ κ²μ νΉμ Quality Profiles νμ΄μ§μμ ν΄λ¦μ ν΅ν΄). Status κ²μ κΈ°λ₯μ νμ©ν΄ νμν κ·μΉμ νμΈν μ μμ΅λλ€.
보μ
Quality Profiles μλΉμ€μλ anonymous μ¬μ©μλ₯Ό ν¬ν¨ν λͺ¨λ μ¬μ©μκ° μ κ·Όν μ μμ΅λλ€. λͺ¨λ μ¬μ©μλ νλ‘νμΌμ μ΄ν΄λ³Ό μ μμ΅λλ€. μ¦, λͺ¨λ μ¬μ©μλ νλ‘νμΌμ ν¬ν¨λ κ·μΉμ νμΈν μ μμ΅λλ€. μ΄λ€ κ·μΉλ€μ΄ μμ λμλμ§, νλ‘νμΌλ€μ΄ μ΄λ»κ² λ²Όκ²½λμλμ§ νμΈν μ μκ³ , νλ‘νμΌλΌλ¦¬ λΉκ΅ν μλ μμ΅λλ€.
κ·μΉ νλ‘νμΌμ λ³κ²½(μμ±, μμ νΉμ μμ )νκ³ μ νλ κ²½μ°, ν΄λΉ μ¬μ©μλ Administer Quality Profiles and GatesΒ κΆνμ λΆμ¬λ°μμΌ ν©λλ€.
Project administratorλ κ΄λ¦¬ κ°λ₯ν νλ‘μ νΈμ μ μ©ν νλ‘νμΌμ μ νν μ μμ΅λλ€. μμΈν λ΄μ©μ Β νλ‘μ νΈ μ€μ νμ΄μ§λ₯Ό μ°Έμ‘°ν©λλ€.
Related content
Β© 2017-2018 Moses Kim.
λ³λμ μΈκΈμ΄ μλ ν, μ΄ μ€νμ΄μ€μ 컨ν
μΈ λ ν¬λ¦¬μμ΄ν°λΈ μ»€λ¨Όμ¦ μ μμνμ-λΉμ리-λμΌμ‘°κ±΄λ³κ²½νλ½ 4.0 κ΅μ λΌμ΄μ μ€μ λ°λΌ μ΄μ©ν μ μμ΅λλ€.
SONARQUBEλ SonarSource SAμ νΈλ μ΄λ λ§ν¬μ
λλ€. λͺ¨λ νΈλ μ΄νΈ λ§ν¬ λ° μ μκΆμ κ° μμ μμ μμ λ¬Όμ
λλ€.
::: SonarQube κ΄λ ¨ λ¬Έμ : μ΄λ©μΌ :::