FIF's 코딩팩토리

CheckStyle, PMD, FindBugs, Ant 정리 본문

Back-End/Java(자바)

CheckStyle, PMD, FindBugs, Ant 정리

FIF 2019. 6. 17. 17:13
반응형

CheckStyle, PMD, FindBugs

공통 목적 : 코딩 스타일 통일, 정적 분석으로 빠른 문제점 인지

 

CheckStyle : 코딩 스타일 규칙을 정의하여 체크해줌. 프로젝트 완료 후 유지보수시 많은 문제중 하나가 프로그래머들이 여려명이다 보니 프로그래머의 취향에 따라 변수명, 메소드명, 작성법등이 다른 관계로 많은 문제가 발생할 수 있는데 이러한 문제를 해결하기 위해 만들어짐

 

PMD(Programing Mistake Detector) : 응용 프로그램에서 발견된 문제를 보고하는 오픈 소스 정적 Java 소스 코드 분석기. 문법적으로 오류 가능성이 높은 항목들을 체크해서 알려줌

 

FindBugs : 정적 분석 제공 툴. 기본적으로 발생할 수 있는 결함을 확인하고 Report해줌.

 

 

 

 

 

 

 

 

PMD 사용법

코드를 분석할 프로젝트 or 패키지 or  클래스파일을 누르고 오른쪽 버튼 누른고 PMD 누르고

Check Code 누르기.

 

 

 

 

 

 

하단에 Violations Outline을 보면 간략한 위반 규칙 내용 확인 가능.

 

PMD는 규칙의 우선순위를 1단계에서 5단계로 분류하며 값이 낮을수록 높은 위험을 가짐.

 

각 세부 규칙 위반에 대한 내용을 확인하기 위해서는 Violation Outline뷰에서 규칙 선택 후 오른쪽 팝업 메뉴에서 [Show details] 클릭

 

Description 부분을 보면 어떤 규칙에 위배 됐는지 볼 수 있다.

여기선 클래스 이름이 너무 짧다고 함. 5글자 이상은 하래

 

 

Ant

 Java 기반의 build 도구로서, file형식은 XML이다.

make 와는 달리 플랫폼 독립적인 Java 클래스를 사용하기 때문에 OS에 독립적이다.

이클립스는 Ant 플러그인을 기본으로 내장하므로 따로 설치할 필요는 없다.

 

빌드란?

예를들어 윈도우를 개발하는 것 까지가 개발이고, 이걸 개인들 컴퓨터에 설치되어서 실행 되기까지의 단계를 모두 빌드라 한다.

 

그런데 보통 내 pc나 노트북에서 이클립스나 에딧플러스로 개발하고 실행하는건 '빌드' 라는게 필요 없어 보인다.

소스코드를 짜놓고 '실행' 버튼을 누르면 'Hello World!'가 출력되기 때문이다.

개인이 개발해서 실행하는 거면 DVD를 구워 배송해서 설치하는 과정은 필요 없다.

하지만, 우리가 개발을 하는 목적은 우리가 만든 프로그램(App이 될 수도 있고, 특정 코드가 될 수도 있고..)을 사용자가 사용할 수 있도록 만드는 것이다.

그런데, 사용자가 사용할 수 있도록 만들려면 '빌드(Build)'라는 과정을 거쳐야 한다.

그래서 서버에 내가 개발한 프로그램을 올려서 전 세계 모든 사람들이 인터넷 주소를 치고 들어오면 내가 만든 web app을 사용할 수 있도록 하려면 빌드를 해야만 한다.

보통 jsp/servlet 기반의 app을 빌드하게 되는데, 이 과정에 포함되는 것은 아래와 같다.

 

1. 내가 만든 소스코드를 hellWorld.war로 압축한다.

2. helloWorld.war 을 tomcat이 깔려 있는 원격 서버(http://oceanfog.iptime.org:8080/admin/)에 올린다.

 

이 두 과정이라 할 수 있다.

 

이걸 ant로 작성해 놓으면 'Export - next - next - tomcat접속 - admin접속 - war file선택 - deploy클릭'등 과정을 마우스 클릭 한번으로 해결 할 수 있다.

매우 간편하지 않은가?

테스트를 해보려면 직접 user가 되어 보는 것과 동일한 환경에서 해보는 경우가 많은데 프로그램을 수정하고 빌드하고 수정하고 빌드하고 이짓을 하루에 2~30번씩 한다고 생각하면...끔찍하다.

그래서 ant를 사용해 빌드하는 것이다.

 

 

Ant와 비슷한 make에 대해 알아보고 가자.

파일 관리 유틸리티.

파일 간의 종속관계를 파악하여 Makefile(기술파일)에 적힌 대로 컴파일러에 명령하여 SHELL 명령이 순차적으로 실행될 수 있게 함.

 

make를 쓰는 이유 ?

의문점 : 컴파일러로 컴파일 하면 되지 굳이 Makefile을 만들고 make명령어를 하나?

make를 씀으로써 얻는 장점

1)    각 파일에 대한 반복적 명령의 자동화로 시간 절약

2)    프로그램의 종속 구조를 빠르게 파악할 수 있으므로 관리 용이

3)    단순 반복 작업 및 재작성을 최소화

 

 

 

 

ant 사용법

빌드하고자 하는 프로젝트 오른쪽버튼 누른다음 ‘Export…’

 

 

 

 

 

 

General -> Ant Buildfiles

 

 

 

 

 

 

Build할 프로젝트 선택 하고 ‘Creat target to compile project using Eclipse compier’ 선택해제 후

finish

 

 

build.xml 파일이 생김.

xml파일을 입맛에 맞게 조작한다.

 

 

 

 

 

 

Window-Show View-Others…-Ant-Ant

빨간 네모클릭

 

 

 

 

 

Build할 프로젝트 추가후 set name해준다.

 

 

 

 

Selected 해서 선택

Search 누른후

더블클릭하면

 

빌드성공~

 

 

 

 

 

 

 

 

 

 

맨처음에 빌드실패 떴는데, 경로가 workspace로 되어있었음.

jdk깔려있는 경로 잡아야함

Window-Preference

 

 

FindBugs 사용법

FindBug할 프로젝트나 패키지나 클래스파일 선택

 

 

클래스파일옆에 (1) 가 생기는데, 1개의 bug를 찾았다는 의미.

Bug info 창보면 bug정보가 나옴

 

 

 

Checkstyle 사용법

응이렇게 해

 

 

코드들이 노란색으로 감싸지면서  어떠한 코딩스타일을 못지켰는지 나옴

반응형
Comments