NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 소프트웨어 정적 분석을 위한 소나큐브 설치하기 - 3부

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 소프트웨어 코드 정적 분석 마지막 시간이네요. [ 1부 ]와 [ 2부 ]를 먼저 설정하고 이 글을 보셔야 합니다. SonarQube에 로그인한 후 새로운 프로젝트를 생성합니다. 처음 생성하는 경우 화면 중앙에 "Add Project" 버튼이 표시됩니다. 저는 이미 프로젝트를 만들었기 때문에 우측 상단에 "Add Project" 버튼이 표시되고 있습니다.

    ※ 소나큐브 접속 주소는 "localhost:9000" 입니다.

    YrHOIQP.png

     

     

    처음 설치의 경우 여러가지 메뉴들이 보이는데요. 로컬 환경이기 때문에 Manualy를 선택하세요. 아래 정보를 입력하고 Set Up을 클릭하세요.

    • Project key: myproject
    • Display name: MyProject

    nK0jpTI.png

     

     

    "NGMsoftware"를 입력하고, Generate를 클릭하세요.

    ywnhQdi.png

     

     

    "Provide a token"이 생성되었습니다. 이 값은 프로젝트를 식별하는 고유키인데요. 저장되어 있으니 따로 보관하지 않아도 됩니다. "Continue"를 클릭하세요.

    ZaLEAHY.png

     

     

    아래 가이드에 따라 설정을 마무리하면 됩니다. 저같은 경우는 C#을 이용하기 때문에 ".NET"을 선택하고, ".NET Framework"를 선택했습니다. 소나큐브 스캐너를 설치하기 위해 아래 경로로 이동하세요.

    [ 소나큐브 스캐너 다운로드 ]

    IJmBZmI.png

     

     

    자신에게 맞는 .NET을 다운로드 합니다.

    n31fdAH.png

     

     

    다운로드 받은 소나큐브 스캐너를 압축 해제하고, 소나큐브 폴더 아래에 복사합니다.

    EjEiG8Q.png

     

     

    시스템 속성으로 이동한 후 환경 변수를 클릭합니다.

    Mt069yM.png

     

     

    시스템 변수의 "%PATH%"에 아래 2개를 추가해주세요.

    • C:\sonarqube-8.9.1.44547\sonar-scanner-msbuild-5.2.1.31210-net46
    • C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin

    BfiEbHO.png

     

     

    관리자 권한으로 CMD를 실행하고, 프로젝트의 루트로 이동합니다. 아래 명령을 순차적으로 실행하세요.

    h4vix0G.png

     

     

    작업이 완료되면 프로젝트 분석 내용을 확인할 수 있습니다.

    a4woH4W.png

     

     

    다음에는 젠킨스를 설치하고 소나큐브 확장 도구를 이용해서 대시보드를 구성해보겠습니다. 대시보드를 이용하면 여러가지 도움이되는 정보들을 시각화하여 빠르게 현재 상태를 확인할 수 있습니다. 이외에도 여러가지 방법들이 존재하는데요. 가장 일반적인 조합으로 가는게 좋겠죠? 아무튼, 위 내용을 보면 Coverage가 0%인게 마음에 걸립니다. 우선은, Duplications(중복도)를 낮추기 위해 Common 모듈을 추가해서 파편화된 코드들을 중앙에 집중 시키고 참조하도록 작업해야겠습니다. 그리고, 잠재적 위험을 나타내는 항목들을 하나씩 처리해 나가야겠네요. 프로젝트 코드를 정적 분석하는 방법은 그렇게 어렵지 않은데요. 여러분들도 소나큐브를 이용해서 코드 품질을 높이는데 활용하면 좋겠습니다.

    1. Blocker: 즉시 수정 필요 (메모리 누수, 파괴되지 않은 객체, 닫히지 않은 연결 - FTP, DB등등)
    2. Critical: 즉시 검토 필요 (비어 있는 캐치 블록, SQL 오류, 잘못된 접근)
    3. Major: 시간을 두고 검토 필요 (중복 코드, 사용되지 않는 맴버, 사용되지 않는 매개변수)
    4. Minor: 잠재적인 품질 결함 (복잡도가 높은 코드, 너무 긴 함수, 3뎁스 이상 호출)
    5. Info: 버그는 아니지만, 개발자가 인지해야 할 품질 규칙 또는 코드

    n684eRT.png

     

     

    즐거운 코딩되세요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    [이 게시물은 엔지엠소프트웨어님에 의해 2021-06-23 21:08:47 팁 앤 테크에서 이동 됨]
    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.