egovframework(7) - PMD

개미는뚠뚠·2024년 3월 31일
0

egovframework

목록 보기
7/7
post-thumbnail

🚀 개요

평소와 같이 개발업무를 수행하던 중 [PMD 를 통한 보안 취약점] 검토 요청이 왔다.
해당 요청은 내가 처리하는걸로 진행이 되었고, 처음 들어보는 내용이지만 해당 작업을 완료하면서 알게된 내용을 정리하고자 이와 같이 글을 쓴다.

🚀 PMD란?

PMD(Programming Mistake Detector)는 응용 프로그램 코드에서 발견 된 문제를 보고 하는 오픈 소스 정적 Java 소스 코드 분석기이다. PMD에는 기본 제공 규칙 세트가 포함되어 있으며, 사용자 지정 규칙을 커스텀하여 사용도 가능하다.

사용을 위해 여러 자료를 찾아보았는데 개발자들의 코드리뷰로 발견하지 못하는 코드의 결함이나 불필요함 등을 잡아줄 수 있는 유용한 도구라고 생각한다.

나는 전자정부에서 세팅 시 설치된 PMD를 그대로 사용하였고, 위에서 말한 규칙은 전자정부 공홈에서 기본적인 39개의 룰셋을 제공하니 참고하면 좋을 거 같다.

자세한 내용은 아래 링크를 참고하면 좋을 거 같다.

[LINK]
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:imp:inspection

🚀 Setting

먼저, 위의 링크에서 전자정부 표준 Inspection 룰셋 한글/영문판의 파일을 다운 받고 준비한다.

[Winodw-Preferences-PMD-Rule Config] 에 들어가서 이미지와 같은 순서대로 룰셋 파일을 지정.
참고로 나는 이미 지정해둔 상태라 PMD 룰셋이 적용됨. 리셋하고 찍기 귀찮음!

이후 하단에서 룰셋에 대한 설정이나 래밸 등을 조정할 수 있고, 별도 룰셋을 커스텀 할 수 있다.

🚀 사용방법

PMD로 검사를 원하고자 하는 프로젝트 우클릭 - PMD 항목에서 해당 기능들을 확인할 수 있다.

해당 이미지에 나와있는 PMD 기능들을 설명하자면 다음과 같다.

Check Code

클릭 시 선택된 소스 코드 하위를 포함하여 검증한다. 이로인해 대체로 src/main/java를 선택한 후 check를 수행한다.

Clear Violations

Chkeck Code 를 수행한 이후 모든 검사 내용을 reset 한다. Check Code를 이미 실행하여 검사된 내용을 수정한 후 재검사 전에 해당 버튼을 클릭한 후 진행한다.

Find Suspect Cut And Paste Detector

CPD라고 불리는 PMD의 기능 중 하나인 중복코드 검사 기능이다. window > Preferences > PMD > CPD preference에서 기본 설정(Minimum Tile Size)을 구성할 수 있다

Generate Peports

PMD 로 검사한 결과들을 다양한 파일 형식으로 저장할 수 있다. 파일 형식 지정은 [Window-Preferences-PMD-Report] 에서 지정한다.

0개의 댓글