SonarQube란?
Java, JavaScript, Python, C, Kotlin 등 다양한 언어의 코드 품질을 분석하고,
버그, 코드 스멜(Code Smell), 보안 취약점(Security Vulnerability) 등을 자동으로 탐지해주는 도구.
SonarQube특징
- 정적 분석 기반 자동 품질 점검
- 보안 취약점 자동 탐지 (XSS, SQLi 등)
- 팀 개발 시 품질 기준 공유 가능
- CI/CD 파이프라인에 쉽게 연동 가능
- 무료 Community Edition도 충분히 강력
SonarQube 설치
1. 다운로드
- https://www.sonarsource.com/products/sonarqube/downloads/
- Community Edition(무료)으로 시작 가능
2. 압축 해제 후 실행
# Windows
StartSonar.bat
# macOS/Linux
./bin/linux-x86-64/sonar.sh start
3. 접속
브라우저에서 다음 주소로 접속
http://localhost:9000

4. project 생성 ( create project > manually)

5. 토큰 생성
프로젝트 생성 후 Locally 선택 후 토큰 생성하기


6. 분석 할 프로젝트 빌드 도구 선택

명령어 복사(명령어를 복사하고 한줄로 만든다음 백슬래쉬 \ 이거 다 지워야함)
mvn clean verify sonar:sonar -Dsonar.projectKey=demo -Dsonar.host.url=http://localhost:9000 -Dsonar.login=sqp_40aa9e619c5662adaa06dd5417cfa77995b6b332
Maven 프로젝트와 연동하기
1. pom.xml 설정
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.1.2184</version> <!-- 최신 버전 확인 권장 -->
</plugin>
</plugins>
</build>
2. 분석 실행 명령어
mvn clean verify sonar:sonar -Dsonar.projectKey=project-name -Dsonar.host.url=http://localhost:9000 -Dsonar.login=your_token
3. 명령어 실행 결과

4. 분석 결과
| 분석 항목 | 설명 |
| Bugs | 실제 프로그램 오류 가능성 |
| Vulnerabilities | 보안 취약점 (예: SQL Injection, XSS) |
| Code Smells | 유지보수 어려운 코드 |
| Coverage | 테스트 코드 커버리지 |
| Duplications | 중복 코드 비율 |

SonarQube가 알려주는 보안 취약점 예시
- 하드코딩된 비밀번호
- 입력값 검증 없는 SQL 쿼리
- 사용자 입력을 통한 HTML 출력 (XSS)
- 자바의 취약한 암호화 알고리즘 사용 등
'개발일지' 카테고리의 다른 글
| vscode-server 서버에 설치 후 web으로 접근하기 (2) | 2025.05.15 |
|---|---|
| SpringBoot .pfx 인증서 적용하기 (1) | 2025.05.07 |
| [시큐어 코딩] 파일 업로드 취약점 (1) | 2025.05.01 |
| [시큐어 코딩] XSS와 CSRF (3) | 2025.04.30 |
| [시큐어 코딩] SSRF(Server-Side Request Forgery) 서버사이드 요청위조 (1) | 2025.04.29 |