SonarQube 개념 & 서버 생성

Violet_Evgadn·2023년 4월 25일
0

CI&CD 자동화

목록 보기
25/28

SonarQube란?

코드의 품질을 높이기 위해 코드를 분석하여 문제가 있는 부분을 찾는 도구이다.

이렇게 Application을 실행시키지 않고 순수한 코드만을 분석해 코드 품질을 높이는 도구를 "정적 분석 도구"라고 하며 이 중 대표적인 도구가 Sonarqube이다.

정적 분석 도구가 필요한 이유는 Code가 Build 및 Test 하는 과정에 문제가 없더라도 코드 상에 취약점이나 문제점이 존재할 수 있다. 이런 코드 상에서만 발견할 수 있는 문제점을 진단하기 위해 정적 분석 및 동적 분석을 항상 동시에 수행해야 하는 것이다.

Sonarqube의 대표적 기능은 아래와 같다.

  • 코드 상 나타날 수 있는 버그를 찾음
  • 보안 상 취약점이 존재하는 코드를 찾음
  • Code Smell(코드 내 불필요한 코드)를 찾음
  • Code Quality를 Metric을 통해 표현
  • ...

Sonarqube는 IDE, 빌드도구나 CI 도구와 통합하여 사용할 수 있으며 Java, C#, Python, Kotlin 등 많은 프로그래밍 언어 분석을 지원하고 있다.

개인적으로 정적 분석 도구는 개념적 설명보다는 실습을 통해 느끼는 게 더 좋다고 생각하기에 다른 Section과는 다르게 이론적 설명보다는 바로 실습을 진행하도록 하겠다.


SonarQube 설치

Docker Desktop에 SonarQube를 위한 Server를 생성해보자.

1. Docker Image 다운

docker pull sonarqube

2. SonarQube Container 생성

docker run --rm -p 9000:9000 --name sonarqube sonarqube
--rm 옵션은 Container를 일회성으로 실행할 때 활용한다.

Container가 종료될 때 컨테이너와 관련된 리소스(파일 시스템, Volume 등)까지 완벽하게 제거해준다.

--rm은 굳이 활용하지 않아도 된다.

실제로 필자는 "docker run -d ~"를 통해 이전에 생성했던 Container와 유사한 방식으로 SonarQube 서버를 생성할 것이다.

우리는 위 명령어를 통해 sonarqube Container를 9000 Port를 통해 접속할 수 있음을 알 수 있다.

3. localhost:9000을 통해 SonarQube Server 접속

초기 ID는 admin, 초기 Password도 admin이다.

로그인을 수행한 이후 Password를 원하는 값으로 변경해주자.

접속 성공!

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글