2015년 11월 2일 SQ v5.2가 릴리즈 되었습니다. IT기업 기준으로 fortune 10대 기업 중 7개, Fortune 100대 기업 중 47개 기업, 전세계적으로 50,000개 이상의 고유 인스턴스가 사용되고 있는 SQ는 명실공히 최고 수준의 정적분석 플랫폼이라 할 수 있을 것 같습니다1.

SonarQube를 제작한 SonarSource에서도 공식적인 업그레이드 소식을 전했습니다(원문보기). 크게 다섯가지 로 특징을 들어서 설명해 주었네요. 구버전에서 v5.2로 마이그레이션을 할 때에는 기존 분석 데이터 처리와 관련하여 약간 신경을 써야할 것 같습니다 :) 마이그레이션과 관련된 부분은 차후에 한번 더 포스팅을 할 예정입니다(저도 테스트 중 입니다 ^^)


우리는 이제까지보다 더욱 큰 변화를 포함하고 있는 SonarQube v5.2를 릴리즈하게 된 것을 자랑스럽게 생각합니다. v5.2에는 사용자들이 가장 원하던 기능 중 2위에 랭크된 기능을 포함했습니다. 코드 스캐너code scanner2는 더이상 데이터베이스에 접근하지 않습니다! v5.2에에 포함되어 있는 기능들을 간단히 요약하면 아래와 같습니다:

  • 스캐너<subscanner</sub>는 더이상 데이터베이스에 접근하지 않습니다.
  • 모니터링 기능이 향상되었습니다.
  • 이슈 관리 기능이 향상되었습니다.
  • 글로벌 관리기능의 UI가 개선되었습니다.
  • 기타 몇가지 언급할 만한 것들이 있습니다.

스캐너scanner는 더이상 데이터베이스에 접근하지 않습니다.

v5.2의 변화 중 가장 중요하고 근본적인 변경입니다. v5.2에서는 SonarQube Server와 SonarQube Scanner(SonarQube Runner, Maven, Gradle, …)의 연결성을 제거했습니다. v5.2 이후로 SonarQube 데이터베이스의 인증정보를 더이상 SonarQube Scanner에 전달할 필요가 없습니다. 만약 분석 파라미터에 데이터베이스 연결과 관련된 정보를 포함하고 있는 경우, 다음과 같은 warning log가 나타날 것입니다:

데이터베이스 파라미터들은 무시됩니다.

데이터베이스와의 연결성을 제거함으로써 여러분은 데이터베이스 보안에 관계없이 travis-ci, appveyor, VSO Build와 같은 지속적인 통합 서버에서 SonarQube를 자유롭게 실행할 수 있게 되었습니다. 다만 이러한 구조를 채택함에 따라 분석 결과를 Web application에서 조회하는 데는 약간의 시간이 걸립니다. SonarQube Server에 걸리는 부하에 따라 소요 시간이 조금씩 달라질 수도 있습니다:

하지만 여러분은 SonarQube Server가 실행되고 있는 머신과 데이터베이스가 실행되고 있는 머신 사이의 과도한 네트워크 연결을 고려하지 않아도 되기 때문에, 더욱 유연한 네트워크 구성을 할 수 있게 되었습니다.

분석 리포트가 서버로 보내지면 해당하는 프로젝트의 대시보드에 분석 리포트의 상태가 표시됩니다:



모니터링 기능이 향상되었습니다.

SonarQube 서버사이드에서 처리되는 작업이 더 많아졌기 때문에 모니터링 가능한 정보의 양 역시 증가해 SonarQube에서 어떤 작업이 수행되는지 더 정확하게 이해할 수 있게 되었습니다. 구 버전에서 “Analysis Reports”라는 명창으로 사용되던 기능은 “Background Tasks”로 변경되었으며, 분석 리포트 처리 로그에 접근하는 기능을 포함해 많은 기능들을 제공하는 형태로 새롭게 디자인 되었습니다.:

이 페이지는 프로젝트 관리자 레벨에서도 접근할 수 있습니다:

서버 로그들은 UI에서도 접근할 수 있고, 로그의 레벨 역시 자유롭게 설정할 수 있습니다:



이슈 관리 기능이 향상되었습니다.

더 풍부한 양질의 정보를 제공하기 위해, 이슈 리포팅 기능 역시 향상되었습니다. 가장 먼저 이슈 하이리아팅의 정확성을 높였으며, 추가적인 이슈 위치와 메시지들을 표시합니다:

추가적인 하이라이트와 메시지들은 이슈와 함께 표시됩니다. 따라서 “추가된 정보를 확인하기 위해서는 해당 이슈를 선택해야 합니다:

이 기능은 SonarQube 플랫폼과 분석 언어 엔진이 함께 제공해야 합니다. 현재까지 추가적인 위치 및 메시지 기능은 Java plugin에만 적용되어 있습니다.

이와 함께 이슈를 이슈의 개수와 기술 부채technical debt로 표시할 수 있게 되었습니다:

이슈 페이지 진입시 시스템 이슈 필터와 사용자 이슈 필터 결과로의 접근 페이지가 추가되었습니다:

필터와 관련해서 새로운 이슈 필터 위젯issue filter widget이 추가 되었습니다. 이 필터를 사용하면 이슈 검색 결과를 자유롭게 대시보드에 항상 표시할 수 있습니다:

마지막으로 알림 기능을 개선했습니다. “나의 새로운 이슈My New Isses” 알림 기능은 로그인 한 사용자와 관련있는 이슈만을 표시합니다. 우리는 프로젝트의 기본 이슈 담당자를 지정하기 위해 이 기능을 추가했습니다. 이 기능은 SonarQube가 소스 코드 형상 관리 시스템SCM, Source Code Management의 정보를 기반으로 새롭게 발생한 이슈를 자동으로 할당하지 못하는 경우 사용할 수 있습니다.

글로벌 관리기능의 UI가 개선되었습니다.

보다 일관적인 사용자 경험을 위해 v5.2에서는 많은 페이지들의 디자인이 갱신되었습니다. Quality Profile 페이지는 다음과 같이 바뀌었습니다:

또한 많은 관리 페이지들의 디자인이 갱신되었습니다. Security 기능의 하위 페이지를 모두 변경하엿습니다:

Update Center 페이지도 변경되었습니다:

Project Management 페이지 역시 변경되었습니다:

위와 같은 변경사항이 적용됨에 따라 부가적으로 위의 페이지들에 사용하는 모든 데이터를 웹 서비스를 통해 얻어낼 수 있습니다. 여러분의 서버의 api_documentation이나 Nemo 프로젝트의 api_documentation을 참조하여 세부적인 내용을 확인하시시오.

기타 몇가지 언급할 만한 것들이 있습니다.

SonarQube의 분석과 Database를 분리함에 따라 부가적으로 API가 변경되었기 때문에, 몇몇 플러그인들–소스 파일로부터 직접 Line 넘버와 이슈 정보를 뽑아내서 데이터 처리를 하던 플러그인들–은 수정이 필요합니다. 향후 이런 모든 작업은 서버 측에서 행해지게 됩니다.

설계와 관련된design-related 모든 기능들은 v5.2에서 삭제되었습니다(세부사항은 SONAR-6553을 참조). 이 기능들에는 Package Tangle Index 및 관련 메트릭이 포함됩니다.

또한 v5.2에서는 잠시 사라졌지만, v5.3에서 cross-module/project dupolication detecion이 다시 추가될 것입니다. 왜냐구요? 해당 기능을 구현할 시간이 충분하지 않았기 때문이죠 ^^

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

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


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

  2. 옮긴이_‘Scanner’는 이전 버전까지 ‘SonarQube Clinet’라고 불렸던 것으로, SoanrQube Server에 분석을 Triggering하는 매개체 역학을 합니다.