[Refactor]. Sonarqube(소나큐브)를 사용하여 코드 리뷰 받기(only docker image)

jongmin-oh·2023년 11월 13일
0

Background

나는 운이 좋게도?? 개발을하면서 코드 리뷰를 한 번도 받아본적이 없다.
하지만 클린 코드의 중요성은 경험적으로 누구보다 많이 체감하고있다.

기본적으로 Flake8, pylint, pep8 등 여러가지 툴을 사용하여 클린코드를 구현하고있지만
문법적인 부분만 확인을 받고있는 느낌이 들었다.

그러던 중 sonarqube에 대해 알게되었고, 사용해보니 내 코드의 문제점을 잘 찾아주어서
사용법을 공유해보고자한다.

*설치/환경셋팅 방법이 복잡해서 고민하다가, 도커로만 간단하게 할 수 있는 방법을 찾음

What is sonarqube?

https://www.sonarsource.com/products/sonarqube/

SonarQube는 소프트웨어 개발 프로젝트에서 코드 품질을 관리하고 향상시키기 위한 오픈 소스 플랫폼입니다. 이 도구는 정적 코드 분석을 사용하여 소스 코드를 검사하고 다양한 측면에서 코드 품질을 평가합니다. SonarQube는 코드의 보안, 성능, 가독성 등 다양한 측면을 검토하여 프로젝트의 전반적인 품질을 측정하고 시각화합니다.

즉, 코드에 대한 문제점들을 세밀하게 분석해주는 서비스이다.
가장 좋은 점은 역시 무료 버전이 있다는 것!

How to use?

1. Sonarqube 도커로 실행

docker run -d --name sonarqube -p 9000:9000 sonarqube

2. localhost:9000 접속

처음 기본 id/pw는 [ admin / admin ]


3.비번 업데이트

4. Create project manually

5. 프로젝트 이름 입력

프로젝트 이름은 나중에 연동시킬때 필요함.

6. 프로젝트 생성

7. 토큰 생성

발급받은 토큰은 잘 저장해둠.


8. Sonar-Scanner 사용하여 분석

sonarqube 가이드에서 제공하는 방법은 sonar-scanner를 다운로드 받아서 사용하라고 함.
하지만 이것 역시 도커로 실행할 수 있음.

Sonar-Scanner 토커 실행 파일 작성

vi sonarqube.sh

sonarqube.sh

#!/bin/bash

token="sqp_c3e67d580e130c792ae34a1b9c64d377f6f52406"
url="http://127.0.0.1:9000"
project="test"

docker run \
    --rm \
    --net host \
    -e SONAR_HOST_URL=$url \
    -v ${PWD}:/usr/src \
    sonarsource/sonar-scanner-cli \
    --debug \
    -Dsonar.projectKey=$project \
    -Dsonar.sonar.sourceEncoding=UTF-8 \
    -Dsonar.sonar.host.url=$url \
    -Dsonar.sources=/usr/src \
    -Dsonar.login=$token

쉘 파일 권한 변경

chmod 755 *.sh

9. 실행

./sonarqube.sh

10. 결과 확인

정말 잘 찾아주긴 하네요!

결론

sonarqube를 통해서 내 코드에 대한 코드 리뷰를 무료로 받아볼 수 있었다.
사수가 없어서 내 코드가 잘 작성되어있는지 확인하고 싶은 분들은 꼭 사용해보셨으면 좋겠습니다.

오늘은 sonarqube의 정말 기본적인 부분만 사용해보았지만, github를 연동하여 사용하면 더 유용하게 쓸 수 있을 것 같습니다.

profile
스타트업에서 자연어처리 챗봇을 연구하는 머신러닝 개발자입니다.

3개의 댓글

comment-user-thumbnail
2023년 11월 23일

안녕하세요! 질문이 하나 있습니다.

올려주신 글에 맞춰, sonarqube scanner를 docker 환경 안에서 돌렸는데요..

소스코드가 있는 파일 위치를 불러오는 경로 설정이 잘못 되었는지... 결과 값이 나오지 않습니다 ㅠ_ㅠ

소스코드를 불러오는 ' -v ${PWD}:/usr/src ' 이 부분 설정을 잘못한 것 같아요....

점검에 필요한 소스코드(python)는 window pc에 있고, 도커가 돌아가는 서버는 우분투 환경의 pc인데,,

Window pc에 있는 소스코드를 도커가 돌아가는 서버로 불러온 뒤, 해당 소스코드를 소나스캐너를 통해 점검받고자 할 때에는 위치 설정 방법이 다른게 있을까요?ㅠ

좋은 글 감사합니다!

1개의 답글