[완료]자바 정적 분석기(코드 검사툴) findbug, pmd, hammurapi등의 툴 사용해보신분 있으세요?
글쓴이: sakazin / 작성시간: 금, 2011/01/21 - 5:56오후
Findbug, PMD, Hammurapi등과 같은 툴은 자바코드 정적 분석기이죠~
쉽게말해서 코드 내에 불필요코드, 복잡한 코드,결점 코드, 에러날 가능성이 있는 코드등을 검사해줍니다~
저 위에 세개의 툴이 대표적인 자바 검사툴인데, 물론 coverity의 prevent또한 java를 지원하는 버젼이 이미 나왔죠..
어떤걸 사용해야할지 잘 감이 안잡히네요
여러개의 툴을 보기쉽게 비교해놓은 자료같은거 없을까요??
구글링을 해봤는데 한참 이전자료가 나오거나, 논문들이 나오긴하는데
실험적 데이타를 기준으로해서.. 음.. 자료가 부족한거같네요.
혹시 이에대해서 비교분석자료 같은거 있으신분 있나요? 혹은..
나름 알기쉽게 개념정리가 되어계신분 설명좀 부탁드려요~
이런 상황엔 이게 좋다. 이런 상황엔 저게 좋다. 이런식으로라도
그럼 즐거운 주말 보내시길 바랍니다. ㅋ.ㅋ
Forums:
함께 쓰세요.
Hammurapi는 안서봐서 좀 써봐야겠네요.
Findbug와 PMD는 함께쓰는겁니다.
서로 배타적인게 아니라..
역할이 다르거든요.
Findbug는 소스에서 버그 패턴 찾아주는 거고, PMD도 약간은 비슷할 수 있지만 소스에서 좋지 못한 형태의 소스 찾아주는건데요.
경험상으로 봤을 때, 딴건 몰라도 Findbug 쓰면 효율이 많이 높아집니다.
꼭 하나만 써야겠다면 Findbug 써보세요.
http://kwon37xi.egloos.com
..
저도 Java를 사용할때는 FindBugs 와 PMD를 코딩의 보조적인 수단으로 사용하곤 했습니다.
보조적인 수단으로만 사용해서, 그냥 상식적인 경험만 공유합니다.
단순하게는, FindBugs 는 바이트코드 분석기고, PMD는 룰기반의 소스 코드 분석기 입니다.
그래서 FindBugs 는 컴파일 이후의 class 파일을 분석해서 바이트 코드상 진입하지 않는 로직이나, null 포인터를 잘못쓰거나 하는 부분들을 지적해 줍니다.
(한달에 한번 정도는 놓치는 실수를 잡을수 있었습니다.)
kwon37xi 말씀대로 PMD는 Java 소스 파일을 분석하고 미리 입력된 패턴에서 Bad Smell을 찾아냅니다.
둘다 좋은게, 계속 피해야할 패턴을 학습하게 해주었습니다. 특히, 둘다 Eclipse와 잘 통합되어 있어서 별 노력 들이지 않고 사용할 수 있었습니다. 더군다나 무료이구요.
컴퓨터 파워가 충분하다면 둘다 사용하시는거 추천합니다.
답변감사합니다.
두개가 비슷하긴 한데 역할이 다른 툴이었네요.
무지한 저를 깨우쳐주셔서 감사합니다.
Findbugs와 PMD가 어떤식으로 결함을 찾아내는지에대해 좀더 자세하게 찾아봐야겠네요.
좋은 답변 감사합니다.
댓글 달기