
품질 게이트, 다중 언어 스캐닝, CI/CD 워크플로우에서 취약점 및 유지보수성 문제를 탐지하는 보안 중심 규칙을 갖춘 코드 품질 및 정적 분석 플랫폼입니다.
SonarQube는 코드 품질과 보안을 위한 알고리즘 기반 검증 플랫폼입니다. 정적 분석은 심볼릭 실행, 데이터 및 제어 흐름 분석과 같은 기법을 적용하여 코드를 검사하고, 버그, 취약점, 구조적 문제를 찾아내며, IDE, 풀 리퀘스트, CI 파이프라인에서 무엇을 왜 수정해야 하는지 정확히 알려줍니다.
이 저장소는 SonarQube 플랫폼의 무료 오픈 소스 에디션인 SonarQube Community Build의 소스를 담고 있습니다. SonarQube 제품 라인 전반에서 사용되는 동일한 분석을 공유합니다.
AI는 팀이 검토할 수 있는 속도보다 빠르게 코드를 작성하여 검증 부채(verification debt)를 만들어냅니다. 즉, 누구도 그 동작을 확인하기 전에 코드가 프로덕션에 도달하는 것입니다. SonarQube는 개발자가 작성했든 에이전트가 작성했든 모든 코드 라인에 동일하고 일관되며 설명 가능한 분석을 적용합니다. 먼저 바이브(vibe), 그다음 검증(verify): 빠르게 생성하고, 프로덕션에 도달하는 것을 검증하세요. 이는 Agent Centric Development Cycle의 검증 단계로, 외부 CI 검증 루프에서 실행되어 코드가 병합되기 전에 검증합니다.
SonarQube 플랫폼은 40개 이상의 프로그래밍 언어와 프레임워크를 분석하며, Community Build는 그중 일부를 지원합니다. 분석은 반복 가능하고, 감사 가능하며, 설명 가능합니다. 동일한 코드는 항상 동일한 결과를 생성하고, 모든 결과는 추적 가능하며, 각 결과는 문제가 무엇이고 왜 중요한지 알려줍니다.
SonarQube Server와 SonarQube Cloud는 Community Build의 모든 기능을 포함하고 다음을 추가합니다.
더 많이 탐지
전체 워크플로 분석
거버넌스, 보고, 팀 전반의 가시성
수정
일부 기능은 SonarQube Advanced Security 애드온의 일부입니다. 자세한 내용은 제품 라인을 참조하세요.
Quality Gate는 새 코드에 대한 통과 또는 실패 검사입니다. 표준을 한 번 설정하면 SonarQube가 모든 풀 리퀘스트와 파이프라인에서 자동으로 이를 적용하므로, 프로덕션에서 발견되는 대신 병합되기 전에 이슈가 잡힙니다.
Community Build는 무료이며 오픈 소스입니다. 더 넓은 SonarQube 라인은 워크플로 전반에 동일한 분석을 적용합니다.
적절한 제품과 배포 모델을 선택하려면 SonarQube 요금제 및 가격을 비교하세요.
Community Build는 무료인가요? 예. 무료이며 오픈 소스이고, 이 저장소가 그 소스입니다.
Community Build와 SonarQube Server의 차이는 무엇인가요? Community Build는 무료 자체 관리형 엔진입니다. SonarQube Server와 SonarQube Cloud는 상용 에디션입니다. 이들은 더 많은 언어를 지원하고 브랜치 및 풀 리퀘스트 분석, 소프트웨어 구성 분석(SCA), 아키텍처 관리, 오염 분석(SAST)을 통한 고급 보안, 시크릿 탐지, 코드형 인프라(IaC) 분석, 검증된 수정 풀 리퀘스트를 위한 SonarQube Remediation Agent, 엔터프라이즈 보고를 추가합니다. 일부 기능은 SonarQube Advanced Security 애드온의 일부입니다. 자세한 내용은 제품 라인을 참조하세요.
AI가 생성한 코드에서도 작동하나요? 예. SonarQube는 개발자가 작성했든 에이전트가 작성했든 모든 코드에 동일한 분석을 적용합니다.
지원 질문("어떻게 하나요?", "이 오류가 발생했는데 왜죠?", ...)의 경우 먼저 문서를 읽어보신 후 SonarSource Community로 이동하세요. 질문에 대한 답변이 이미 있을 가능성이 높습니다! 🤓
이 포럼은 커뮤니티이므로 일반적인 인사말("안녕하세요", "감사합니다", ...)은 예상됩니다. 그리고 스레드에 답변이 없으면 최소 3일은 기다린 후에 다시 올려주세요. 운영자가 대기하고 있지 않습니다. 😄
새로운 기능을 보고 싶거나 버그를 보고하려면 포럼에 새 스레드를 만들어 주세요.
저희는 기능 기여를 적극적으로 찾고 있지 않다는 점을 유의해 주세요. 사실 SonarSource 외부의 누군가가 저희 로드맵과 기대에 부합하기는 매우 어렵습니다. 따라서 일반적으로 사소한 외형 변경과 오타 수정만 받아들입니다.
이를 염두에 두고, 코드 기여를 제출하고 싶으시다면 이 저장소에 풀 리퀘스트를 만들어 주세요. 이 변경을 기여하려는 동기를 설명해 주세요: 어떤 문제를 해결하려는지, 어떤 개선을 하려는지.
코드 스타일을 따르고 모든 테스트가 통과하는지 확인하세요(각 풀 리퀘스트마다 GitHub Actions 빌드가 실행됩니다).
SonarSource 제품에 기여하고 싶으신가요? 저희는 세계적 수준의 코드 품질 솔루션을 구축하는 데 도움을 줄 똑똑하고 열정적이며 숙련된 인재를 찾고 있습니다. 현재 채용 공고를 확인해 보세요!
로컬에서 소스를 빌드하려면 다음 지침을 따르세요.
-x test를 추가하여 비활성화할 수 있음(테스트를 실행하지 않고 빌드만 하려는 경우 유용)프로젝트 기본 디렉터리에서 실행:
./gradlew build
zip 배포 파일은 sonar-application/build/distributions/에 생성됩니다. 압축을 풀고 다음을 실행하여 서버를 시작하세요:
# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat
프로젝트를 한 번도 빌드한 적이 없다면 평소처럼 빌드하거나(이전 섹션 참조) 더 빠른 명령을 사용하세요:
./gradlew ide
그런 다음 IntelliJ 또는 Eclipse에서 루트 파일 build.gradle을 프로젝트로 여세요.
| ./gradlew command | Description |
|---|---|
dependencies | list dependencies |
spotlessApply | fix source headers by applying HEADER |
wrapper --gradle-version <version> | upgrade wrapper |
SonarQube UI(또는 웹앱)는 다른 저장소에 있습니다: sonarqube-webapp.
sonarqube 저장소를 빌드할 때 웹앱은 Maven Central에서 종속성으로 자동 다운로드되므로, 웹앱을 신경 쓰지 않고 백엔드 변경 사항을 기여할 수 있습니다.