๐ป Programming/Computer General
์์ค ์ ์ ๋ถ์ ํด ๋น๊ต ( FindBugs vs. PMD vs. CheckStyle )
์๋ ํ์ธ์ ์ผ์ด์น์ ๋๋ค.
์ค๋์ ์๋ง์ ์์ค ์ ์ ๋ถ์ ํด ์ค์์ ์ธ๊ฐ์ง ํด์ ๋ํ ๋น๊ต๋ฅผ ํด๋ณผ๊น ํฉ๋๋ค.
์ด๋ฏธ ์ด๋ค ๋ถ์ด ๋ถ์์ ํด๋์ ์๋ฌธ ์๋ฃ๊ฐ ์์ด์ ๋ฒ์ญ์ ํด๋ณด์์ต๋๋ค.
Findbugs |
PMD |
Checkstyle |
|
๋ฒ์ | 3.0.0 | 5.2.2 | 6.1.1 |
๋ผ์ด์ผ์ค |
Lesser GNU Public License | BSD-style license | Lesser General Public License |
๋ชฉ์ | ์ ์ฌ์ ๋ฒ๊ทธ ์ฐพ๊ธฐ ( ์๋ฐ ์์คํ์ผ์ด ์๋ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์ด์ฉ ) |
์ ์ฌ์ ์ธ ๋ฌธ์ ๋ค, ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ถ๋ถ๋ค, ์ฌ์ฉ๋์ง ์์๊ฑฐ๋ ์ต์ ํ๋์ง ์์ ์ฝ๋๋ค ๊ฒ์ |
์๋ฐ ์์ค ํ์ผ์ ์ฝ์ด์ ์์ค ์ฝ๋ ํ์ค์ ์๋ฐ๋๋ ๊ฒ๋ค์ ๊ฒ์, e.g. Sun Code Conventions, JavaDoc |
์ฅ์ | - ์ค์ ๊ฒฐํจ์ ์ ์ฐพ์์ค - ์ฐพ์ ๊ฒฐํจ์ด ์๋ฑํ ๊ฒฐํจ์ผ ํ๋ฅ ์ด ๋ฎ์ ( ์ ํ์ฑ์ด ๋์ ) - ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์ฝ์์ผ๋ก ์๋๊ฐ ๋น ๋ฆ |
- ์ข
์ข
์ค์ ๊ฒฐํจ์ ์ฐพ์์ค - finds bad practices |
- ์ ํด์ค ์ฝ๋ฉ ๊ท์ฝ์ ์๋ฐ๋๋ ๊ฒ๋ค์ ๊ฒ์ฌํด์ค. ์ง์ ์ฝ๋ฉ ๊ท์ฝ์ ๋ง๋ค์ด ์ฌ์ฉ๊ฐ๋ฅ. |
์ฝ์ | - ์ปดํ์ผ๋ ํด๋์ค ํ์ผ์์ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์ฝ์ด์ ์ฌ์ฉํด์ผํ๋ฏ๋ก ๋น๋๊ณผ์ ์ด ํ์ | - ๋ณต์ ๋ ์ฝ๋๋ฅผ ์ฐพ๋ ์๋๊ฐ ๋๋ฆผ | - ์ค์ ๋ฒ๊ทธ๋ฅผ ์ฐพ์ ์ ์์ |
๊ท์น ์ | 408 | 234 | 132 |
๊ท์น ์นดํ
๊ณ ๋ฆฌ |
Correctness Bad practice Dodgy code Multithreaded Correctness Performance Malicious Code Vulnerability Security Experimental Internationalization |
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 |
Annotations Block Checks Class Design Coding Duplicate Code Headers Imports Javadoc Comments Metrics Miscellaneous Modifiers Naming Conventions Regexp Size Violations Whitespace |
์ถ์ฒ : http://www.sw-engineering-candies.com/blog-1/comparison-of-findbugs-pmd-and-checkstyle
2020๋ 5์ ์ ๋ฐ์ดํธ
์ค์ ๋ก ์ธ ๊ฐ์ง๋ฅผ ๋ชจ๋ ๋ค์ด๋ก๋ ๋ฐ์์ ํ ์คํธ๋ ํด๋ณด์๊ณ FindBugs๋ ์ค์ ์๋น์ค์ ๊ธฐ๋ฅ์ผ๋ก ์ ์ฉ๋ ํด๋ณด์์ต๋๋ค.
์ฐ์ ์ ์ฌ์ ์ธ ๋ฒ๊ทธ ๋ถ์์ ์ํด์๋ FindBugs๊ฐ ๋จ์ฐ ์ต๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฝ๋ฉ์ปจ๋ฒค์ ์ ์ ํด๋๊ณ ํ์ธํ๊ธฐ์๋ CheckStyle์ด ์ข์ต๋๋ค.
FindBugs์ CheckStyle์ ์ฌ์ฉํ๋ ๋ชฉ์ ์์ฒด๊ฐ ๋ค๋ฅธ ํด์ด์์ต๋๋ค.
PMD๋ ์ด๋์ ๋ ์๋ ๊ทธ์ ๊ทธ๋ฐ ํด๋ก ๊ธฐ์ตํฉ๋๋ค.
--- ์ดํ ์ต์ด ๋ฐํ๊ธ ---
์ถ์ฒ ์ฌํญ
ํ์์ ๋ฐ๋ผ ํ๋์ฉ๋ง ์ฌ์ฉํ์ ๋ ๋์ง๋ง ์ธ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์๋ฉด ์ข ๋ ํ์คํ ์ ์ ํด ๋ถ์์ ํ์ค ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ธ ํด์ ๋ชจ๋ ์ฒ์ ์ฌ์ฉํ์ ๋ค๋ฉด ์ ์ผ๋จผ์ FindBugs๋ฅผ ์ฌ์ฉํ์๊ณ ๊ทธ ๋ค์ PMD ๊ทธ๋ฆฌ๊ณ ๋์ ๋ง์ง๋ง์ CheckStyle์ ์ฌ์ฉํ์ค ๊ฒ์ ๊ถ์ฅ๋๋ฆฝ๋๋ค. ์ด๊ฑด ๋ค๋ฅธ ๋ถ์ด ํ์ ๋ง์์ด๊ณ ์....์ CheckStyle๋ง ์ ๊น ์จ๋ดค๋๋ฐ์, CheckStyle์ ๋ญ๋๊น ํ์ฌ ๋ด๋ถ์ ์ฝ๋ฉ ์ ์ฑ ์ ์ ์ํด์ ์ฌ์ฉํ๋ฉด ์ข์๋งํ ๊ทธ๋ฐ ํด์ด๋๊ตฐ์. ๋์ ๋ฃฐ์ ๋๋ฌด ๊ณผํ๊ฒ ์ฃผ๋ฉด ๊ฐ๋ฐ์๋ค์ด ์ข ์ซ์ดํ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋ค์.
์๋ ๋งํฌ๋ FindBugs ํ๋ก์ ํธ์ ์ฐธ์ฌํ ๋ฉ๋ฆด๋๋ ์ฃผ๋ฆฝ๋ ๊ต์๋์ 1์๊ฐ ๋ถ๋์ง๋ฆฌ ์ธ๋ฏธ๋์ ๋๋ค.
๊ด์ฌ์์ผ์ ๋ถ๋ค์ ๋ณด์๋ฉด ์ข์๊ฒ ๊ฐ๋ค์. ์ฐธ๊ณ ๋ก ์ธ์ด๋ ์์ด์ ๋๋ค.
https://www.youtube.com/watch?v=8eZ8YWVl-2s
์ด์ ์ผ์ด์น์์ต๋๋ค.
์ค๋๋ ์ฆํํ์ธ์~~ ^-^
'๐ป Programming > Computer General ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SonarQube ์ ์ ๋ถ์ ํด ์ค์น ๋ฐ ์ฌ์ฉํ๊ธฐ (0) | 2015.08.07 |
---|---|
SonarQube ์๋ฒ ์คํ์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ค๋ฅ (0) | 2015.08.06 |
๋ฌด๋ฃ ๋ฒกํฐ ์ด๋ฏธ์ง ํด/์๋ํฐ ( Inkscape ) ๋ค์ด๋ก๋ ๋ฐ ์ค์น (0) | 2015.07.30 |
๋ฌด๋ฃ ์ด๋ฏธ์ง ์๋ํฐ ๊นํ ( GIMP ) ๋ค์ด๋ก๋ ๋ฐ ์ค์น (0) | 2015.07.30 |
๋งฅ(Mac) ์คํฌ๋ฆฐ์ท ๋จ์ถํค (0) | 2015.07.25 |