2008년 06월 22일
Glean- 다양한 코드 검사 도구의 결과를 통합하는 도구
Glean은 많은 오픈소스 코드 검사 도구의 실행을 돕고, 이들의 결과를 일목요연하게 관리하기 위한 도구이다.
이번 프로젝트에서의 내 역할은 QA + CM 에 가깝다. 현재 프로젝트는 분석/설계 단계이고, 앞으로 PL을 담당하실 분들은 열심히 모듈 정의를 하고 계신다. 나는 여기서 쏙 떨어져서 문서 템플릿, 코딩 표준, SVN 설정, 서버 설정 등 앞으로 개발자가 오면 그들을 잘 가이드해서 얼른 개발이 진행될 수 있도록 앞단에서 준비하는 작업을 진행중이다.
QA로서 몇가지 도구를 사용하려고 한다. JUnit을 이용한 단위 테스트, 코딩 표준 준수 여부 확인, static analysis 도구를 이용한 잠재적인 결함 발견, CI 도구를 이용한 지속적인 빌드 관리 등등. 프로젝트 뿐 아니라 개인적, 그리고 회사 입장으로서도 좋은 사례를 한번 만들어보기 위해 이것저것 많이 테스트 하는 과정이다.
워낙에 요즘 도구들이 많다보니, 도구들의 실행 환경 잡는 것 부터 결과 통합까지 신경쓸 것이 한두개가 아니다. 2008년 4월에 발행된 꽤 따끈따끈한 책인 Java Power Tools는 대표적인 몇몇 도구에 대한, 꼭 필요한 설명만을 해 놓은 매우 유용한 책이다. 각 도구들의 홈페이지를 뒤져가면서 찾아낸 이상의 정보를 제공하지는 않지만 ( 페이지 수 약 900 페이지에 수십가지 도구를 설명해 놨으니 그럴 법도 하다.) 도구의 목적, 한계, ant script류의 실행방법 등 꼭 필요한 내용만 기술되어 있으므로 시간을 매우매우 절약해 줄 수 있다. 시간이 곧 돈이니만큼 자바 개발 프로젝트 팀에 한권은 꼭 비치해야 할 책이다. 강추!
하지만 저런 도구 실행에 대한 가이드가 있다 손 치더라도 이리저리 흩어진 도구들을 관리하고, 결과를 취합해서 보는 것은 또 다른 이야기이다. 오죽하면 결과 취합만을 위한 도구인 QALab같은 도구도 있겠어. (QALab은 단순 결과 취합이 아닌, 시계열의 변화를 볼 수 있으므로 더 큰 의의가 있긴 하지만.)
Glean은 이런 도구 관리에 대한 갈증을 싹 씻어주는 훌륭한 도구이다. 무척 많은 도구에 대한 ant build xml, 일괄적 관리가 가능하고, dashboard를 통해 각각의 도구의 실행 결과를 한 화면에 조회할 수 있다. 해보진 않았지만 새로운 도구를 등록하는 것도 쉽게 될 수 있다고 한다.
각각의 도구를 적절한 위치에 설치한 후, glean 의 도구 설정 파일을 통해 설치한 도구의 위치를 알려준다. 그 다음 glean의 프로젝트 설정 파일에서 도구 별 세부 설정 (예를 들면, checkstyle에서 사용할 style, PMD에서 사용할 rule set 정의 등등..)을 하면 끝. 각각의 도구 실행을 위한 ant build 작성할 필요도 없다. glean이 알아서 해 준다. 이후 결과 취합은 QALab, glean dashboard 등을 통해서 수행할 수 있다. 별것 아닌것 같아도 자기가 직접 하려면 ant build 설정하느라 하루 이틀은 쉽게 날린다. 한마디로 이 물건, "님 좀 짱인듯?"
아래는 Glean dashboard가 생성하는 아름답기 그지없는 결과 요약화면이다.

CruiseControl 같은 CI 도구와 연동하여 실행하면 각 build 결과에 대한 자세한 metric을 쉽게 파악할 수 있다. 더 자세한 내용이 알고 싶을 경우, dashboard 에서 해당 도구 명을 클릭하면 도구 결과화면으로 이동한다.
한두개의 도구만 사용할 경우 큰 이점이 없지만, 3개 이상의 도구만 쓰더라도 이 glean이 큰 이득을 줄 것이라 생각한다. Java 프로젝트 결과물에 대한 객관적인 metric을 통한 품질관리에 관심이 있는 사람이라면 꼭 한번 써 봐야 할 도구라고 생각한다. 강추!
이번 프로젝트에서의 내 역할은 QA + CM 에 가깝다. 현재 프로젝트는 분석/설계 단계이고, 앞으로 PL을 담당하실 분들은 열심히 모듈 정의를 하고 계신다. 나는 여기서 쏙 떨어져서 문서 템플릿, 코딩 표준, SVN 설정, 서버 설정 등 앞으로 개발자가 오면 그들을 잘 가이드해서 얼른 개발이 진행될 수 있도록 앞단에서 준비하는 작업을 진행중이다.
QA로서 몇가지 도구를 사용하려고 한다. JUnit을 이용한 단위 테스트, 코딩 표준 준수 여부 확인, static analysis 도구를 이용한 잠재적인 결함 발견, CI 도구를 이용한 지속적인 빌드 관리 등등. 프로젝트 뿐 아니라 개인적, 그리고 회사 입장으로서도 좋은 사례를 한번 만들어보기 위해 이것저것 많이 테스트 하는 과정이다.
워낙에 요즘 도구들이 많다보니, 도구들의 실행 환경 잡는 것 부터 결과 통합까지 신경쓸 것이 한두개가 아니다. 2008년 4월에 발행된 꽤 따끈따끈한 책인 Java Power Tools는 대표적인 몇몇 도구에 대한, 꼭 필요한 설명만을 해 놓은 매우 유용한 책이다. 각 도구들의 홈페이지를 뒤져가면서 찾아낸 이상의 정보를 제공하지는 않지만 ( 페이지 수 약 900 페이지에 수십가지 도구를 설명해 놨으니 그럴 법도 하다.) 도구의 목적, 한계, ant script류의 실행방법 등 꼭 필요한 내용만 기술되어 있으므로 시간을 매우매우 절약해 줄 수 있다. 시간이 곧 돈이니만큼 자바 개발 프로젝트 팀에 한권은 꼭 비치해야 할 책이다. 강추!
하지만 저런 도구 실행에 대한 가이드가 있다 손 치더라도 이리저리 흩어진 도구들을 관리하고, 결과를 취합해서 보는 것은 또 다른 이야기이다. 오죽하면 결과 취합만을 위한 도구인 QALab같은 도구도 있겠어. (QALab은 단순 결과 취합이 아닌, 시계열의 변화를 볼 수 있으므로 더 큰 의의가 있긴 하지만.)
Glean은 이런 도구 관리에 대한 갈증을 싹 씻어주는 훌륭한 도구이다. 무척 많은 도구에 대한 ant build xml, 일괄적 관리가 가능하고, dashboard를 통해 각각의 도구의 실행 결과를 한 화면에 조회할 수 있다. 해보진 않았지만 새로운 도구를 등록하는 것도 쉽게 될 수 있다고 한다.
각각의 도구를 적절한 위치에 설치한 후, glean 의 도구 설정 파일을 통해 설치한 도구의 위치를 알려준다. 그 다음 glean의 프로젝트 설정 파일에서 도구 별 세부 설정 (예를 들면, checkstyle에서 사용할 style, PMD에서 사용할 rule set 정의 등등..)을 하면 끝. 각각의 도구 실행을 위한 ant build 작성할 필요도 없다. glean이 알아서 해 준다. 이후 결과 취합은 QALab, glean dashboard 등을 통해서 수행할 수 있다. 별것 아닌것 같아도 자기가 직접 하려면 ant build 설정하느라 하루 이틀은 쉽게 날린다. 한마디로 이 물건, "님 좀 짱인듯?"
아래는 Glean dashboard가 생성하는 아름답기 그지없는 결과 요약화면이다.
CruiseControl 같은 CI 도구와 연동하여 실행하면 각 build 결과에 대한 자세한 metric을 쉽게 파악할 수 있다. 더 자세한 내용이 알고 싶을 경우, dashboard 에서 해당 도구 명을 클릭하면 도구 결과화면으로 이동한다.
한두개의 도구만 사용할 경우 큰 이점이 없지만, 3개 이상의 도구만 쓰더라도 이 glean이 큰 이득을 줄 것이라 생각한다. Java 프로젝트 결과물에 대한 객관적인 metric을 통한 품질관리에 관심이 있는 사람이라면 꼭 한번 써 봐야 할 도구라고 생각한다. 강추!
# by | 2008/06/22 21:57 | 콤퓨타 | 트랙백 | 덧글(0)





