오늘이라도

[기술] 정적 분석과 Sonarlint 본문

개발 공부/도구

[기술] 정적 분석과 Sonarlint

upcake_ 2021. 8. 2. 14:51
반응형

0. 선 3줄 요약

  ① 정적 분석이란 실제 실행 없이 소프트웨어를 분석하는 것

  ② Sonarlint는 정적 분석을 자동으로 해주는 도구

  ③ 정적 분석을 통해 좋은 코딩 습관을 들이도록 하자! 

 

1. 코딩 습관 교정, 정적 분석(Static Analysis)을 해야만 하는 이유

 정적 분석이란 실제 실행 없이 소프트웨어를 분석하는 것을 말합니다.

요구사항 누락과 오해, 예외 처리 누락, 코딩 실수 등등 적은 노력으로 많은 이득을 얻을 수 있지만,

제 포스트에서는 이런 프로그램적인 부분은 다루지 않겠습니다.

 제가 생각하기에 정적 분석이 가장 필요한 이유는 바로 코딩 습관 교정입니다.

혼자서 코딩을 공부하셨거나 학원에서 속성으로 코딩을 배우신 분들은 코딩을 해서 작동은 해도,

이게 올바른 건지 맞게 코딩한 건지 채점할 기회가 없었을 텐데, 이것을 정적 분석과 Sonarlint를 통해 할 수 있습니다.

 

2. 정적 분석 도구 : Sonarlint

실무 프로젝트에 Sonarlint를 적용해본 모습, 눈앞이 캄캄해진다

현재 저희 회사에서 운영중인 프로젝트에 Sonarlint를 적용해본모습입니다.

많은 사람들 손을 거치다 보니 교정해야 할 건이 21231건이나 되네요.

 

Sonarlint에서는 오류뿐만이 아니라, 에러가 날 수 있을법한 곳(코드 스멜), 틀린 문법 등을 가르쳐줍니다.

처음이야 피곤하겠지만 하나하나 교정해가다 보면 나중에는 오류 없이 깔끔해진 코드 습관을 들일수 있을 거라고 생각합니다.

 

3. Sonarlint 설치법

이클립스 기준으로 Eclipse Marketplace를 통해 설치할 수 있습니다.

다른 애드온과 같은 방법으로 설치하면 되니 자세히 설명하지는 않겠습니다.

 

※ 참조한 곳

https://siwan.dev/2019/06/01/%E1%84%8C%E1%85%A5%E1%86%BC%E1%84%8C%E1%85%A5%E1%86%A8%E1%84%87%E1%85%AE%E1%86%AB%E1%84%89%E1%85%A5%E1%86%A8%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B5%E1%86%AF%E1%84%8B%E1%85%AD%E1%84%92%E1%85%A1%E1%86%AB%E1%84%8B%E1%85%B5%EC%9C%A0.html

 

정적 분석이 필요한 이유

아주 정상적으로 잘 동작하는 소프트웨어가 있다고 해보자. 잘 동작한다고 모두 좋은 소프트웨어 일까? 마블의 영화 “블랙팬서”에서 내가 인상 깊게 본 장면이 있다. “잘 만들었어도 얼마든

siwan.dev

 

https://ko.wikipedia.org/wiki/%EC%A0%95%EC%A0%81_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8_%EB%B6%84%EC%84%9D

 

정적 프로그램 분석 - 위키백과, 우리 모두의 백과사전

정적 프로그램 분석(static program analysis)은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 대부분의 경우에 분석은 소스 코드의 버전 중 하나의 형태로 수행되며, 가끔은 목적 파일 

ko.wikipedia.org

 

반응형