728x90
반응형
PMD 활용
PMD 란?
- PMD는 정적 분석 도구로, 개발 과정에서 소프트웨어의 잠재적인 위협을 찾아주는 오픈소스 도구이다.
- PMD에서 지원하는 공식적인 플러그인
- Maven PMD plugin
- Eclipse plugin
- NetBeans plugin
- JBuilder plugin
- JDeveloper plugin
- IntelliH IDEA plugin
- PMD에서 찾을 수 있는 잠재적인 문제점들의 유형
- 프로그래밍 결함
- 불필요한 객체 생성
- 사용하지 않는 코드
- 너무 복잡한 코드
- 중복된 코드
- 보안 결함
- PMD에서 지원하는 공식적인 플러그인
- PMD의 동작 과정은 먼저 분석할 자바 프로그램을 읽어들인 후 파서를 이용해 AST를 생성하고 미리 정의된 룰셋에서 해당하는 위협들을 탐지해 보고서에 추가한다.
- PMD에서 지원하는 기본적인 룰셋의 일부는 아래와 같다.
룰셋 설명 Android 안드로이드 관련 문제 Basic 플랫폼이나 언어의 공통적인 문제 Braces 괄호 관련 문제 Clone 코드 중복 관련 문제 Code Size 코드 사이즈 관련 문제 Comments 코멘트 관련 문제 Controversial 문제가 될 수 있는 의심스러운 코드 문제 Coupling 객체와 패키지 사이 문제 Design 소프트웨어 설계 문제 Empty Code 빈 코드 관련 문제 - 각 룰셋들은 XML 파일로 저장되어 XPath의 위치 경로에 정의된다.
- 해당 룰은 사용자가 언제든 커스텀 할 수 있어 수정, 삭제, 추가 등이 가능하다.
- PMD에서 지원하는 기본적인 룰셋의 일부는 아래와 같다.
PMD 설치
- 방법은 안드로이드 스튜디오에서 PMD를 설치해 사용하는 방법이다.
- 안드로이드 스튜디오 - File - Settings - Plugins 메뉴 이동 후 PMD 검색
- QAPlug는 개발자들이 자주 사용하는 필수 플러그인 PMD, Checkstyle, FindBugs를 사용하기 위한 플러그인으로, PMD를 설치할 때 함께 설치된다.
- 해당 플러그인 설치 후 안드로이드 스튜디오를 재시작한다.
- 재시작을 하면 Tools - QAPlug 메뉴가 추가된다.
- 해당 도구를 사용하려면 QAPlug - Analyze Code 를 누른다.
인시큐어뱅크 소스 코드 PMD 활용
- 인시큐어뱅크 소스 코드를 PMD 툴을 사용한다.
- 분석 후 PMD 결과가 안드로이드 스튜디오 하단에 출력된다.
- 어느 소스 코드에서 취약한 코드가 사용되고 있는지 확인할 수 있고, 오른쪽에서 자세한 내용 확인이 가능하다.
728x90
반응형