2016년 1월 11일 SonarQube v5.3이 릴리즈 되었습니다. 지난 2015년 11월 2일의 v5.2 릴리즈 이후 2개월만의 비교적 빠른 버전 업데이트 입니다. 이번 업데이트에서는 SonarQube에서 주요하게 다루는 ‘소프트웨어 품질의 7개 축’고 과 관련된 정보를 보다 손쉽게 볼 수 있도록 UI/UX가 일신된 점, 그리고 Cross Product Duplication 기능이 다시 돌아온 점이라고 할 수 있겠네요. SonarQube는 IT기업 기준으로 fortune 10대 기업 중 7개, Fortune 100대 기업 중 47개 기업, 전세계적으로 50,000개 이상의 고유 인스턴스가 사용되고 있는 SQ는 명실공히 최고 수준의 정적분석 플랫폼이라 할 수 있을 것 같습니다1.

SonarQube를 제작한 SonarSource에서 공식적인 업그레이드 소식을 전했습니다(원문보기). 이 글은 SonarQube 블로그에 게제된 글을 번역한 것입니다.


소나큐브 개발팀은 SonarQube v5.3을 릴리즈하게 된 것을 자랑스럽게 생각합니다. 이 버전은 기존의 패러다임을 한 단계 진화시켰습니다. 중요한 신규 기능들이 추가되었으며 이전 버전인 v5.2에서 제공되지 않았던 주요한 기능을 복원했습니다:

  • Quality Gate, Leak Period에 중점을 둔 새로운 프로젝트 스페이스를 도입했습니다
  • 인증된 분석을 위한 사용자 토큰을 사용해 비밀번호를 입력하지 않도록 했습니다
  • 빌드 실패build breaker 전략을 지원하는 새로운 웹 서비스를 추가했습니다
  • 프로젝트 간 중복 검출Cross-product duplication이 돌아왔습니다!

Quality Gatge, Leak Period에 중점을 둔 새로운 프로젝트 스페이스


v5.3에서 가장 크게 변경된 부분입니다. 기본 프로젝트 대시보드를 완전히 새롭고 고정된 프로젝트 스페이스로 변경하였습니다. 프로젝트 대시보드는 네 가지 최상위 영역의 데이터를 표시합니다:

  • 기술 부채technical debt
  • 커버리지coverage
  • 코드 중복duplications
  • 구조Structures (사이즈, 복잡도를 포함)

Leak Period 동안 증가한 기술 부채를 잘 관리하는 것은 매우 중요합니다. 이를 지원하기 위해 새롭게 디자인된 프로젝트 홈페이지(대시보드)는 leak period(프로젝트 레벨에서 오버라이드 가능한 첫번째 디퍼런셜 기간) 정보를 제공하며, 현재 지표와 디퍼런셜 기간의 지표가 각각 모두 텍스트와 그래픽으로 표시됩니다:

4개의 각 도메인은 별도의 세부 페이지를 제공하며, Project Space에서 more 옵션을 사용하거나, project menu item을 선택하여 진입할 수 있습니다:

Technical Debt Coverage
Duplications Structures

각 도메인 페이지는 현재 지표(클릭 가능한 파란 글씨)와 leak period 동안의 변경 지표(노란 배경)의 조합으로 표시되며, 세부적인 수치와 그래픽을 통해 현황을 보다 신속하게 파악할 수 있도록 돕습니다.

SonarSource는 이 새로운 프로젝트 스페이스와 도메인 페이지(수정 불가)에 많은 가치를 느낍니다. 이전 버전과 동일한 “Dashboards” 메뉴를 제공하며, 이 대시보드는 여전히 자유롭게 설정할 수 있습니다.

비밀번호가 필요없는 분석용 사용자 토근


v5.2에서는 분석과 데이터베이스와의 연결 고리를 끊었습니다. 그 결과 분석 리포트가 서버로 전송되며 모든 데이터 베이스 업데이트는 서버 사이드에서 실행됩니다. v5.3에서 후속 작업으로 인증 토근을 통한 보안 분석 기능을 제공하게 되었습니다.

SonarQube 관리자는 모든 사용자에게 인증 토큰을 발행할 수 있습니다.

토큰은 분석은 물론 웹서비스 로그인 시 활용할 수 있습니다. 로그인 시 토큰을 사용하면 비밀번호를 입력하지 않아도 됩니다.

사용자 토큰 리스트의 이름(토큰 값이 아닙니다!)는 쉽게 확인할 수 있으며, 만들어진 토근은 언제든 쉽게 재생성할 수 있습니다:

사용자가 스스로 토큰을 생성하는 기능은 곧 제공될 예정입니다.

빌드 실패 전략을 지원하는 새로운 웹 서비스


지속적인 점검 전략Continuous Inspection strategy을 수립하면서, 많은 사람들이 Jenkins와 같은 지속적인 통합Continuous Integration 서버를 사용해 소나큐브를 활용하고, 새로운 코드가 Quality Gate를 만족하지 못하는 경우 빌드를 실패하도록 구성하기를 원합니다. 시간적인 이유로 v5.2에서는 기존에 이 목적을 위해 사용하던 훅hooks을 제거했고, 이를 대체할 만한 방법을 추가하지 못했습니다. v5.3에서 이 기능을 복원을 우선적으로 진행했으며, v.5.1.2에서와 같이 빌드 실패 전략을 사용할 수 있게 되었습니다.

클라이언트 사이드 스캐너 작업이 완료되면, 서버 사이드 프로세싱 상태를 호출하기 위한 URL을 데이터 파일에 기록합니다.

프로세싱이 성공적으로 완료되면,

Analysis IDㄹㄹ 사용해 Quality Gate 상태 정보를 확인할 수 있습니다.



프로젝트 간 중복 검출Cross-project duplicatoin 기능이 돌아왔습니다.


v5.2에서의 API 업데이트로 인한 문제가 많았습니다. 결과적으로 프로젝트 간 중복 검출 기능을 사용할 수 없었으며 v5.3에서는 이 기능을 복원하는 것에 중점을 두었습니다.

v5.3에서는 우선적으로 프로젝트 간 중복 검출 기능만을 복원하였으며, ‘프로젝트 내 모듈 간 중복 검출 기능’은 v5.4에서 지원될 예정 입니다.

자 이제 모두 설명드린 것 같습니다!


이제 v5.2를 다운로드 받고 사용해 보십시오. 사용하기 전 반드시 설치 가이드업그레이드 가이드를 확인하시기 바랍니다.


  1. SonarQube User Conference 2015 통계 기준. http://www.sonarqube.org/mainstream-noun-the-principal-or-dominant-course-tendency-or-trend/