HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🏪
TS Store
/
🏩
SonarCube, FlyWay
🏩

SonarCube, FlyWay

Person
완료율%
상태
완료
나의 블로그
https://leather-lily-79b.notion.site/x-f56419e54f9449c393cf43bc76962963
Think Sharing (TS)
🧶
SonarCube, FlyWay
주제목차내용소나 큐브CI : 지속적 통합📌 소나 큐브 다운로드🧀 소나 큐브 실행하기 (도커 x) ⛔ 에러🐾 Intellij 설정 🌟 설정 다 하고 나면 이슈 클릭 시Code
 

주제

 

목차

 

내용

소나 큐브

  • 지속적으로 코드의 품질을 높이고 유지 보수하는데 도움을 주는 정적 분석 애플리케이션
  • 탁월한 분석기능으로 개선 사항을 자세히 알려주고 코딩 컨벤션부터 잠재적 위험 사항까지 안내해 줍니다.
  • CI 엔진과 통합되어 분석이 가능합니다.

CI : 지속적 통합

  • 개발을 진행하면서도 품질을 관리할 수 있도록 하는 것
  • 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음
  • 개발자가 빌드와 테스트를 직접 하지 않고도 수정한 코드를 브랜치에 병합하기만 하면 자동으로 빌드와 테스트를 검증할 수 있다.
⇒ 버그를 신속하게 찾아 해결하고 소프트웨어 품질을 개선하고 새로운 소프트웨어 업데이트를 검증하고 릴리즈하는데에 걸리는 시간을 단축할 수도 있다.
 

📌 소나 큐브 다운로드

Download | SonarQube
Used and loved by 200,000+ companies FREE & OPEN SOURCE Download for free All the following features: Static code analysis for 17 languages Java, C#, JavaScript, TypeScript, CloudFormation, Terraform, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML and VB.NET Detect Bugs & Vulnerabilities Review Security Hotspots Track Code Smells & fix your Technical Debt Code Quality Metrics & History CI/CD integration Extensible, with 50+ community plugins
Download | SonarQube
https://www.sonarqube.org/downloads/
Download | SonarQube
  • sh sonar.sh console 사용해서 실행합니다. (Linux 사용)
  • 각 운영체제에 맞게 실행하면 됩니다.
 

🧀 소나 큐브 실행하기 (도커 x)

  1. http://http://localhost:9000 에 접속합니다. (id 와 pw 둘 다 admin)
notion image
 
  1. 프로젝트 create 창이 나옵니다.
    1. ⇒ 저희는 데브옵스가 따로 없기 때문에 manually 를 선택해줍니다.
notion image
 
  1. 아래와 같은 창이 뜨고 project name과 project key를 정하면 됩니다.
notion image
 
  1. display name을 작성하면 project key도 자동으로 완성됩니다.
    1. ⇒ 나중에 사용할 것 이니 project key도 기억하는 게 좋을 것 같습니다.
notion image
 
  1. 저희는 로컬에 있는 프로젝트이기 때문에 Locally를 눌러줍니다.
notion image
 
  1. 이후 Token name이 뜨면 generate 해줍니다.
notion image
 
  1. project token을 따로 copy 합시다 ! (user token과는 별개입니다 !)
notion image
 
  1. 이후 본인의 빌드 도구에 맞는 명령어를 copy 합니다. 빌드할 때 사용할 명령어입니다. copy해서 사용합시다 !
notion image
 

⛔ 에러

notion image
  • 빌드 중 위의 에러가 난다면 jdk 16과 maven 3.6.1이 호환되지 않아 발생하는 에러입니다.
  • 해당 링크를 따라해주세용
Ubuntu Maven 최신버전 설치(Unable to load cache item 에러 해결 방법)
실행가능한 jar 파일을 만들기 위해 maven 명령어 mvn package를 사용하였는데 아래와 같은 에러가 발생하였습니다. [ERROR] Error executing Maven. [ERROR] java.lang.IllegalStateException: Unable to load cache item [ERROR] Caused by: Unable to load cache item [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper 검색을 통해 알게된 내용은 우분투 패키지 관리 툴인 apt 에서 제공하는 maven 버전이 낮아 시스템에 설치된 자바 16버전과 호환이 안되어 발생한 에러였습니다.
Ubuntu Maven 최신버전 설치(Unable to load cache item 에러 해결 방법)
https://mech2cs.tistory.com/entry/Ubuntu-Maven-%EC%B5%9C%EC%8B%A0%EB%B2%84%EC%A0%84-%EC%84%A4%EC%B9%98Unable-to-load-cache-item-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95
Ubuntu Maven 최신버전 설치(Unable to load cache item 에러 해결 방법)

🐾 Intellij 설정

// maven <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement>
 
  1. SonarLint에 들어간 후 위에서 제일 왼쪽에 아이콘 중 공구 모양을 클릭합니다.
notion image
 
 
  1. CONFIGURE THE CONNECTION 들어가기
notion image
  1. + 버튼을 눌러서 connection 을 추가해봅시다.
notion image
 
  1. URL에 http://localhost:9000 을 입력해줍니다.
notion image
 
  1. 발급받은 uer token을 입력해주면 됩니다. (id, pw 도 가능합니다)
notion image
 
  1. create를 눌러줍시다
notion image
 
  1. 앞에서 저희가 작성했던 Project key 를 입력해주면 됩니다. !
notion image
 
  1. 설정 후 앞에서 copy 했던 빌드 명령어를 입력해주면 build 됩니다 !
⇒ 그러고 소나큐브 페이지에 가면 분석이 되어있습니다 끝 !
notion image
 

🌟 설정 다 하고 나면

notion image
  • 제 프로젝트의 severity 입니다. severity의 종류는 아래의 표를 함께 보면 좋을 것 같습니다.
  • 제가 test 코드를 시그니처만 작성하고 안의 코드를 작성하지 않아 해당 이슈를 보여주고 있습니다.
notion image
notion image
  • 심각성 이외의 다른 지표의 기준들이 나와있습니다.
지표 정의
SonarQube에서 제공하는 모든 메트릭을 다루지는 않습니다. 여러분이 사용하는 SonarQube 인스턴스에서 제공하는 전체 메트릭 리스트를 확인하고자 하는 경우 metrics search web service 를 참조합니다. Blocker 운영/보안 리스크(risk) : 이 이슈는 실제 환경에서 운용되는 어플리케이션 전체를 불안정하게 만들 수 있습니다.
지표 정의
https://sonarqubekr.atlassian.net/wiki/spaces/SON/pages/395311
지표 정의
 

이슈 클릭 시

notion image
  • Where is th issue 와 Why is this an issue 를 통해 이슈의 위치와 이슈의 이유를 알 수 있습니다.
 

Code

notion image
  • Code에 들어가면 폴더 구조에 해당하는 코드의 LOC, Bugs, Code Smells 등등 다양한 지표를 확인 할 수 있습니다.