서론
Static Code Analysis Tool, 정적코드분석툴로 불리는 이 툴은
보통 개발자가 개발을 하고 배포하기 전에 프로젝트 소스 코드에 문제가 있는지, 있다면 어떠한 문제가 있는지
분석하고 체크하기 위해 필요한 툴이다.
다양한 툴이 존재하지만 오늘 소개할 툴은 SonarQube로 다수의 블로그나 커뮤니티에서 가장 많이 추천하는 툴이다.
이름이 비슷한 SonarLint의 경우 코드를 치는 순간 그 코드가 어떤 문제가 있는지 알려주는 일종의 보조툴이고
SonarQube는 프로젝트 전체를 한꺼번에 분석해서 그럴싸한 리포트까지 뽑아주는 툴이므로 필요에 맞게, 용도에 맞게
사용하면 될 것 같다.
준비물
- Windows OS
- Java JDK 11 이상
- SonarQube
- SonarScanner
- 분석할 프로젝트 소스코드
https://www.sonarsource.com/products/sonarqube/downloads/
위 링크에서 Community Edition을 다운로드 받고
https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/
위 링크에서 Windows 64-bit 버전을 다운로드 받으면 된다.
다운로드 받은 파일들을 설치 및 압축해제할 때 두 파일들을 한 폴더에 두면 편하다.
1. SonarQube 서버 띄우기
SonarQube를 실행하기 위해선 위 경로에 들어가서 StartSonar이라는 bat 파일을 실행하면 된다.
실행하면 웬 명령프롬프트가 뜨는데 ElasticSearch를 키고 있다는 메세지가 뜬다.
좀 기다리다보면
프로세스가 up 됐고 SonarQube가 Operational 이라고 뜬다.
로컬 서버가 올라간 것이므로 아래 정보로 접속하면 된다.
http://localhost:9000
아이디 / 비밀번호: admin / admin
*기본 비밀번호로 접속할 수 없다고 뜨면 비밀번호를 변경하면 된다.
2. SonarQube GUI 에서 토큰 생성 및 SonarScanner 설정
Projects 탭에서 Create Project를 누르면, 이미 프로젝트가 있는 사람은 아래와 같이 뜰 것이고
처음 만드는 사람은 아래와 같이 뜰 것이다.
아무튼 한번 해본 사람은 More을 선택한 뒤 프로젝트의 소스코드가 있는 위치를 선택하면 된다. (테스트의 경우 로컬에 있는 소스코드를 수동으로 분석할 것이기 때문에 Manually) 프로젝트 이름, 키, 브랜치 이름등을 입력하면 된다.
새 코드에 대한 설정을 마치고 (모르겠으면 기본 설정)
소스코드 경로 지정해주고 (이번 테스트의 경우 로컬)
이제 토큰을 발행할 것이다.
만료기간 정해두고 우측에 Generate 버튼을 눌러주면 토큰이 생성된다.
생성된 토큰은 제대로 보관해놓고 continue 를 누른다.
빌드언어, OS 각자 알맞게 고르고
스캐너 실행 명령을 복사한다 ( 스캐너를 사전에 다운받지 않았으면 링크를 타고 다운로드)
https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/
3. 복사한 스캐너 명령어 프로젝트가 있는 최상위 폴더 경로에서 실행시키기
먼저 CMD or 파워쉘 관리자 권한으로 킨 다음에
프로젝트가 있는 최상위 폴더 경로로 경로 변경해주고
위에서 복사한 스캐너 명령어를 붙여준다.
프로젝트 소스코드의 양에 따라 걸리는 시간이 있는데 보통 10분 내외로 분석 및 GUI(리포트) 생성이 완료된다.
CLI에서는 완료되었다고 뜨는데 왜 안뜨지? 초조해하지 말고 완료되었다고 해도 한 몇분 더 기다렸다가
다시 들어가보면 뭐 이런식으로 뜬다.
완성된 리포트에서 다양한 분석항목에 들어가서 어떤 것들이 버그로, 취약점으로 걸렸는지 확인할 수 있으며
Issues라는 전용 탭에서 확인할 수도 있다.
각 언어에 맞게 어떤 Rule들이 분석에 들어가있는지 확인할 수 있고
이러한 Rule 모음을 하나의 프로필로 만든 것도 Quality Profiles (해당 언어에 맞는 default Rules 템플릿) 에서 확인된다.
커스터마이징을 위해 우측 상단의 Create 버튼으로 프로필 직접 생성할 수 도 있다.
마지막으로 특정 폴더하위 파일들은 분석에서 빼고싶다면?
위 그림처럼 Administration의 Source File Exclusions에서 제외하고 싶은 소스코드의 최상의 경로를 지정해줄 수 있다.
끗.
'개발자 전향 프로젝트' 카테고리의 다른 글
(파이썬 장고) CSV 를 Django를 이용해 DB에 집어넣기 (0) | 2023.11.19 |
---|---|
(파이썬 장고) DB 테이블 CSV 로 출력하기 (0) | 2023.11.18 |
로컬 컨테이너에 백업 DB 구축하기 (feat. Docker, Postgre) (0) | 2023.07.15 |
[Windows] Kafka란? Kafka + Filebeat 설치 및 ELK 연동까지 (2) | 2023.06.14 |
[Windows] Filebeat에서 Logstash로 로그 수집 및 전송 (0) | 2023.06.05 |