이 문서는 Sonarqube와 다른 정적분석도구를 비교한 내용을 공유하기 위해 작성되었다.
정적 분석 도구 비교 요약표
| 항목 | SonarQube | Fortify | CodeQL | Sparrow | PMD |
|---|---|---|---|---|---|
| 개발사/출처 | SonarSource | OpenText (Micro Focus) | GitHub (Microsoft) | Southcode (국산) | 오픈소스 (Community 기반) |
| 도입 목적 | ✅ 품질 + 보안 + 기술 부채 + DevOps 통합 | 🔒 보안 취약점 탐지 | 🔍 보안 쿼리 기반 탐지 | 🔒 보안 감리 및 컴플라이언스 | ⚙️ Java 코드 품질 점검 |
| 지원 언어 수 | ✅ 30개 이상 | 20개 이상 | 약 10개 | 20개 이상 | Java, Apex, Kotlin, XML 등 |
| 라이선스/비용 | 무료 Community + 유료 확장 | 유료 (고가) | 무료 (GitHub Advanced Security 필요) | 유료 (기관용) | 완전 무료 (Apache License) |
| CI/CD 통합 | ✅ GitHub, Jenkins, GitLab 등 다양 | Jenkins, Bamboo 등 | GitHub Actions | 일부 | Jenkins, GitHub Actions 등 |
| IDE 통합 | ✅ Eclipse, IntelliJ, VS Code 등 | 일부 | 일부 | 제한적 | Eclipse, IntelliJ 등 일부 연동 가능 |
| 정책 설정/룰 커스터마이징 | ✅ 룰/중요도 조정 가능 | 보안 정책 기반 설정 | QL 쿼리 기반 룰 직접 작성 | 고정된 정책 기반 | XML 기반 룰 구성 가능 |
| 보안 취약점 탐지 | ✅ OWASP Top 10 (Dev Edition 이상) | ✅ 강력 (SAST) | ✅ 쿼리 작성으로 가능 | ✅ (CC 인증 기준) | ❌ 보안보다 코드 스타일 중심 |
| 코드 품질 지표 | ✅ 중복도, 복잡도, 커버리지, 기술 부채 등 | ❌ | ❌ | ❌ | 일부 품질 룰 (e.g., Dead Code, Unused Imports 등) |
| 보고서 제공 | 웹 대시보드, PDF, PR 코멘트 | PDF, Word 등 정식 보고서 | GitHub UI 또는 CLI 로그 | PDF 리포트 중심 | HTML, XML, Text 등 기본 출력 |
| 수정 가이드 제공 | ✅ 예제, 라인 근거, 설명 포함 | 일부 | 제한적 | 일부 | 제한적 (룰 설명 위주) |
| DevOps 연동 및 자동화 | ✅ Webhook, API, Jira, Slack 등 | 제한적 | GitHub 플랫폼 기반 | 일부 가능 | 기본적인 CI 연동 |
| 기술 부채/정량화 | ✅ 기술 부채 수치화 및 추적 | ❌ | ❌ | ❌ | ❌ |
| 사용 난이도 | 매우 쉬움 (GUI 기반) | 중간 이상 | 상 (쿼리 작성 필요) | 중간 (설정 위주) | 쉬움 (경량, 설정만으로 사용 가능) |
기능 지원 체크리스트
| Category | Item | Description | SonarQube | Fortify | CodeQL | Sparrow | PMD |
|---|---|---|---|---|---|---|---|
| 기능 및 탐지 성능 | 언어 지원 | Java, Python, C#, Go 등 주요 언어 지원 여부 | 지원 | 지원 | 지원 | 일부 지원 | Java 등 일부 지원 |
| 보안 규칙 | OWASP, CWE 등 표준 보안 룰셋 제공 여부 | 지원 | 지원 | 지원 | 지원 | 일부 지원 | |
| 커스터마이징 | 사용자 정의 규칙 추가 및 편집 가능 여부 | 지원 | 지원 | 복잡한 편 | 제한적 | 지원 | |
| 탐지 정확도 | 오탐/미탐 비율 등 탐지 성능 | 보통 | 우수 | 우수 | 우수 | 보통 | |
| 정적 분석 외 기능 | 코드 품질, 코드 스멜 등 부가기능 제공 | 우수 | 제한적 | 제한적 | 제한적 | 보통 | |
| 개발 환경과의 통합성 | CI/CD 통합 | Jenkins, GitLab 등 CI/CD 도구와의 연동 여부 | 지원 | 지원 | 지원 | 지원 | 지원 |
| SCM 연동 | Git, Bitbucket 등 형상관리 도구와의 연동 여부 | 지원 | 지원 | 지원 | 일부 지원 | 일부 지원 | |
| IDE 플러그인 | VS Code, IntelliJ 등 IDE 플러그인 지원 여부 | 지원 | 지원 | 일부 지원 | 제한적 | 미지원 | |
| ALM 도구 연동 | Jira, ServiceNow 등 티켓 시스템과 연동 가능 여부 | 지원 | 지원 | 지원 | 일부 지원 | 일부 지원 | |
| 운영 및 관리 | 사용자/권한 관리 | 역할 기반 권한 설정, LDAP/SSO 지원 여부 | 우수 | 일부 지원 | 일부 지원 | 제한적 | 일부 지원 |
| 대시보드 | 보안 현황 대시보드 제공 여부 | 지원 | 지원 | 일부 지원 | 제한적 | 지원 | |
| 정책 설정 | 조직 정책 기반 설정 가능 여부 | 지원 | 지원 | 제한적 | 제한적 | 제한적 | |
| 경고/알림 | 이메일, 슬랙 등 경고 알림 제공 여부 | 지원 | 지원 | 일부 지원 | 제한적 | 제한적 | |
| 사용성 및 도입 용이성 | 설치 및 배포 | 온프레미스/클라우드 배포 가능 여부 | 지원 | 지원 | 제한적 | 제한적 | 미지원 |
| 인터페이스 | 직관적인 UI/UX 및 다국어(한글) 지원 여부 | 지원 | 지원 | 일부 지원 | 지원 | 제한적 | |
| 학습 곡선 | 문서, 튜토리얼 등 학습 리소스 제공 여부 | 지원 | 제한적 | 보통 | 우수 | 제한적 | |
| 확장성 및 유연성 | 대규모 프로젝트 지원 | 수백개 프로젝트 분석 시 성능/안정성 | 지원 | 제한적 | 일부 지원 | 우수 | 미지원 |
| 플러그인 생태계 | 서드파티 플러그인 제공 및 확장성 | 지원 | 지원 | 지원 | 지원 | 미지원 | |
| API 제공 | REST API 제공 여부 및 자동화 가능성 | 우수 | 우수 | 보통 | 우수 | 제한적 | |
| 지원 및 유지보수 | 기술지원 체계 | SLA, 지원 채널(이메일, 포럼 등) 제공 여부 | 우수 | 보통 | 제한적 | 보통 | 미지원 |
| 버전 업데이트 주기 | 업데이트 주기 및 보안 패치 제공 여부 | 지원 | 지원 | 일부 지원 | 지원 | 제한적 | |
| 커뮤니티/레퍼런스 | 사용자 커뮤니티, 고객 사례 등 제공 여부 | 지원 | 지원 | 일부 지원 | 지원 | 제한적 | |
| 비용/라이선스 | 라이선스 정책 | 가격 구조의 명확성(사용자/라인수 기준 등) | 지원 | 지원 | 지원 | 지원 | 제한적 |
| 가격대비 성능 | 기능 대비 가격 효율성 | 지원 | 지원 | 지원 | 지원 | 미지원 | |
| 무료 체험 | 커뮤니티/체험판 제공 여부 | 지원 | 지원 | 지원 | 제한적 | 미지원 |
BMT 체크 리스트
요약별 장단점
| 도구 | 장점 | 단점 |
|---|---|---|
| SonarQube | ✅ 품질+보안+DevOps 통합, 쉬운 도입, 다양한 언어, 무료 시작 가능 | 일부 보안 기능은 유료 (Developer 이상) |
| Fortify | 🔒 정밀 보안 분석, 고위험 환경(금융/국방) 적합 | 비용 높고 Dev 친화도 낮음 |
| CodeQL | 💡 GitHub Actions 기반 자동 분석, 쿼리로 유연한 보안 룰 설정 가능 | 학습 곡선 높고 GitHub 외 연동은 복잡 |
| Sparrow | 🇰🇷 CC 인증 기반 보안 분석, 보고서 및 감리 대응 최적화 | 개발 중 실시간 피드백 제공 미약 |
| PMD | ⚙️ 가볍고 빠름, Java 코드 스타일과 기본 버그 감지 | 언어 제한, UI 없음, 보안/DevOps 기능 없음 |
결론
SonarQube: 개발 품질과 DevOps 자동화를 동시에 강화하고 싶은 팀에 최적. 정적 분석 도구 중 가장 실용적이고 균형 잡힌 선택.
Fortify/Sparrow: 보안 감리·컴플라이언스 대응이 우선인 조직에 추천.
CodeQL: 보안 쿼리 기반 고급 보안 분석을 원하는 GitHub 중심 개발팀에 적합.
PMD: Java 프로젝트에 빠르게 정적 분석을 적용하고 싶은 소규모/경량 팀에게 적합.