티스토리 뷰

코드를 작성하다보면 내가 코드를 제대로 작성하는지, 어디를 고쳐야할지 잘 모르는 경우가 있다.

이는 자만이라기보다는 계속 코드를 보다보면 결국 코드에 익숙해져서 고칠 점을 못 찾는 것이데, 이럴 때 개발자들은 코드리뷰를 하곤 한다.

 

하지만 일일이 시간을 잡아서 누군가에게 코드 리뷰를 해달라고 할 여건이 안 될 경우에는 코드 리뷰를 잘 못한다.

그래서 자동으로 코드를 분석하고 코드의  수정할 점을 알려주는 앱들이 이것저것 세상에 나왔다.

그 중 하나가 Sonalint이다.

 

SonarLint란

Sonalint, 소나린트는 코드를 분석해서 어디를 고치면 좋을 지 등 단순한 코드 리뷰를 해주는 앱이라고 생각하면 된다.

전체적인 로직에 대한 분석은 불가하고 코드 자체에 대한 정적인 분석만 진행하는 앱으로 단순히 말해 쓸모 없는 변수가 있다거나 변수의 값을 체크하는 로직이 부족한다거나 하는 등 보편적인 개발 룰에 맞춰 코드를 리뷰해준다.

 

https://www.sonarlint.org/

 

SonarLint | Free and Open Source Code Quality & Security IDE Extension

Find and fix Code Quality and Security issues as you code, directly in your IDE of choice, including JetBrains, Eclipse, Visual Studio and VS Code.

www.sonarlint.org

 

 

 

IntelliJ에 Sonarlint 설치하고 사용해보기

소나린트는 여러 IDE에 설치해서 사용할 수 있다.

여기서는 인텔리제이에 소나린트는 설치하는 방법을 설명해보겠다.

 

1. 인텔리제이에서 command + Space를 눌러 Plugins을 검색해서 들어가거나 Preferences에서 Plugins을 선택해서 마켓플레이스에 들어가 sonarlint를 검색하다.

 

2. sonarlint앱을 선택해 install을 누르면 설치가 되고 설치 완료 시 IDE를 restart 하라는 버튼이 나타난다. 이 버튼을 눌러 IDE를 restart한다.

 

3. IDE를 restart 하고 좌측 하단을 확인해보면 sonarlint라는 탭이 생긴 것을 확인할 수 있다. 설치가 완료된 것이다.

 

4. 코드 분석을 할 파일을 열고 sonarlint 탭을 누르면 소나린트가 코드를 간략하게 분석해준다. 자동으로 분석해주긴 하지만 만일 자동으로분석되지 않는다면 sonarlint 탭 화면에서 좌측 첫번째의 재생버튼 같은 Analyze with Sonarlint 버튼을 클릭한다.

 

 

SonarLint에서 분석해주는 예

소나린트에서 분석해준 결과를 보면 결과는 Major, Minor, Info 같이 등급이 나뉜다.

Major는 빨간색 아이콘으로 나타나며 위험할 수 있는 허점이 있는 코드에 대한 리뷰를 나타낸다.

Minor는 초록색 아이콘으로 위험성은 없지만 이렇게 고치면 더 좋다~라는 식의 리뷰를 나타낸다.

마지막으로 Info는 단순 코드의 정보에 대해 알려주는 리뷰이다.

 

그리고 오른쪽 Rule, Locations 탭을 통해 각 리뷰에 해당하는 코딩 룰과 코드를 알려준다.

물론 코드파일에도 어떤 코드에 대한 리뷰인지 위치를 표시해주고, Sonarlint 탭의 리뷰 리스트에서 리뷰를 더블클릭하면 해당하는 코드로 커서가 이동한다.

 

리뷰들을 보면 소나린트는 정말 기본적인 룰에 부적합한지를 리뷰해주고 대안을 제시해준다.

예를 들면 아래와 같이 작성한 코드에 대해 소나린트는 @PostMapping을 사용하면 어떨지에 대해 제안한다.

@RequestMapping(value = "/test", method = RequestMethod.POST, produces = "application/json")

 

하지만 이러한 소나린트의 리뷰는 진짜 코드 그대로를 기본적인 룰에 맞는지 정도만 체크하는거라서 소나린트의 제안을 무조건 따르지 않아도 된다.

예를 들어 나의 경우 테스트를 위해 안의 로직은 구현하지 않고 형태만 잡아준 메소드에 대해 메소드 파라미터에 불 필요한 파라미터가 있다고 제거하라는 결과가 나왔다. 하지만 아직 메소드 안의 로직을 구현 안 해서 사용하지 않을 메소드 파라미터일 뿐이지 지워야하는 파라미터는 아니었다.

이럴 경우 소나린트의 제안은 그냥 넘기면 된다.

 

또한 소나린트를 사용하고 있는 상태에서 커밋을 하면 소나린트에서 커밋하는 파일들에 대해 코드 분석을 해서 이슈가 있을 경우 알려준다.

물론 이는 Commit Anyway 버튼을 눌러서 무시하고 커밋할 수 있다.

 

 

 

 

https://www.sonarlint.org/

 

SonarLint | Free and Open Source Code Quality & Security IDE Extension

Find and fix Code Quality and Security issues as you code, directly in your IDE of choice, including JetBrains, Eclipse, Visual Studio and VS Code.

www.sonarlint.org

 

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함