AI로 생성한 코드 재확인(SonarQube Community)

SonarQube Community 이미지를 서버에 올려 사용하게 되면, 생성한 코드를 한번 더 점검 할 수 있다.



필요사항
- Sonarqube community edition 도커 이미지
- nginx
- vscode sonarqube 확장 및 서버에 연결
- Sonarqube self-hosted 서버에서 localproject token발급
- cli 실행
SonarQube 역할
SonarQube를 Python 프로젝트에 연동하면 정적 코드 분석을 통해 다음과 같은 이점을 얻을 수 있습니다:
- 버그(Bugs) 발견
• 잠재적인 런타임 에러(예: None 참조, 잘못된 인자 전달 등)
• 잘못된 API 사용 - 보안 취약점(Security Vulnerabilities) 탐지
• SQL 인젝션, 명령어 삽입 등
• 외부 입력 미검증 문제
• 민감 정보(비밀번호·토큰) 하드코딩 검색 - 코드 스멜(Code Smells) 진단
• 중복 코드(Duplications)
• 지나치게 복잡한 함수·클래스(Cyclomatic Complexity)
• 불필요하게 긴 메서드
• 일관성 없는 네이밍, 포맷팅 이슈 - 유지보수성(Maintainability) 측정
• 복잡도·라인 수·중복도 기반 모듈별 유지보수 점수 제공
• 리팩토링 우선순위 가이드 - 테스트 커버리지 연동
• coverage.py로 생성한 리포트를 SonarQube에 업로드
• 라인·조건 커버리지 수치 확인 - 품질 게이트(Quality Gate) 설정
• 빌드 또는 CI 파이프라인에서 임계치(버그 수, 복제율, 커버리지 등) 미충족 시 실패 처리
• PR(풀 리퀘스트) 분석 결과에 따라 병합 여부 결정 - 브랜치 및 PR 분석(Developer Edition 이상)
• 기능 브랜치·풀 리퀘스트별 이슈 리포트
• 코드 변경점에 대한 인라인 코멘트 - VS Code 연동 (SonarLint)
• 실시간으로 에디터 안에서 이슈 표시
• 오프라인 상태에서도 규칙 위반 사항 즉시 확인
구현 방법 개요
- SonarQube 서버에 Python용 플러그인 설치
- 프로젝트 루트에 sonar-project.properties 파일 생성
└ sonar.projectKey, sonar.sources, sonar.python.coverage.reportPaths 등 설정 - 로컬 또는 CI 환경에서 sonar-scanner 실행
- SonarQube 웹 UI에서 이슈·메트릭·품질 게이트 결과 확인
- (선택) VS Code에 SonarLint 확장 설치 → 실시간 피드백
이를 통해 코드 품질을 체계적으로 관리·개선하고, 팀 차원에서 표준화된 검증 기준을 유지할 수 있습니다.