상세 컨텐츠

본문 제목

정적 분석 툴 비교

Developer/형상 관리

by cepiloth 2018. 12. 15. 23:00

본문

728x90
반응형


2년전 C++ 업무에서 JAVA 로 전향하고 JAVA 에서는 메모리 관리를 개발자가 따로 안해도 JVM 에서 알아서 메모리 관리를 한다고 얄팍한 생각을 하면서 업무를 진행한 적이 있었다. 


허나 이러한 얄팍한 생각은 몇 일 뒤... JAVA 에서 메모리릭을 경험하고 사라졌다.

 

<메모리릭을 경험한 필자의 상태> 부제 - 요행을 바라면 안됬어ㅠㅠ.jpg


사소한 메모리릭을 제거 하기 위해서 꼼꼼한 개발자는 코드의 로직과 사용법을 최적화 작업을 한다. JAVA 쪽에서 숙련되지 않기도 하고 게으른 개발자 이어서 정정 분석 툴로 꼼꼼함을 살리기 위해 정적 분석툴을 찾아 보았다.


FindBugs

웹 사이트 - http://findbugs.sourceforge.net/

버전 - 3.0.0

라이센스 - Lesser GNU Public License

목적 - 잠재적 버그 찾기(자바 소스파일이 아닌 바이트 코드를 이용)

장점 - 실제 결함을 잘 찾아줌 - 찾은 결함이 엉뚱한 결함일 확율이 낮음(정확성이 높음) - 바이트 코드를 읽음으로 속도가 빠름

단점 - 컴파일된 클래스 파일에서 바이트 코드를 읽어서 사용해야하므로 빌드 과정이 필수

규칙 수 - 408

규칙 카테코리 - Correctness Bad practice Dodge code Multithreaded Correctness Performance Malicious Code Vulnerability Security Experimental Internationalization


PMD


웹 사이트 - https://pmd.github.io

버전 - 5.2.2

라이센스 - BSD-style license

목적 - 잠재적인 문제들, 버그 가능성이 있는 부분 사용되지 않았거나 최적화되지 않은 코드들 검색 중복코드 검출

장점 - 종종 실제 결함을 찾아줌 - finds bad practices

단점 - 복제된 코드를 찾는 속도가 느림

규칙 수 - 234

규칙 카테고리 

JSP 

 - Basic JSF 

 - Basic JSP

 XSL 

 - XPath in XSL

 Java 

 - Design 

 - Coupling 

 - Jakarta Commons Logging 

 - Basic 

 - Strict Exceptions 

 - Security Code Guidelines 

 - Java Logging 

 - Android -Controversial 

 - Comments 

 - Type Resolution 

 - Empty Code 

 - String and StringBuffer 

 - Code Size 

 - Braces 

 - Unused Code 

 - Unnecessary 

 - J2EE 

 - JavaBeans 

 - Migration 

 - Import Statements 

 - JUnit 

 - Naming 

 - Finalizer 

 - Optimization 

 - Clone Implementation

 Ecmascript 

 - Basic Ecmascript 

 - Unnecessary 

 - Braces 

 XML 

 - Basic XML


CheckStyle


웹 사이트 - http://checkstyle.sourceforge.net

버전 - 6.1.1

라이센스 - Lesser General Public

목적 - 자바 소스 파일을 읽어서 소스 코드 표준에 위반되는 것들을 검색 e.g. Sun Code Conventions, JavaDoc

장점 - 정해준 코딩 규약에 위반되는 것들을 검사해줌, 직접 코딩 규약을 만들어 사용가능

단점 - 실제 버그를 찾을 수 없음

규칙 수 - 132

규칙 카테고리 -

 Annotations 

 Block Checks 

 Class Design 

 Coding 

 Duplicate Code 

 Headers 

 Imports 

 Javadoc Comments 

 Metrics

 Miscellaneous 

 Modifiers 

 Naming Conventions 

 Regexp 

 Size Violations 

 Whitespace



728x90
반응형

'Developer > 형상 관리' 카테고리의 다른 글

GITHUB - 무료 EBOOK LINK  (0) 2020.01.14
BAMBOO 소개  (0) 2018.12.15
CI 기능 및 특징  (0) 2018.12.15
Commit failed - exit code 128 received, with output:  (0) 2018.12.03
소프트웨어 형상 관리(SCM)  (2) 2018.09.05

관련글 더보기

댓글 영역