Search Results for 'Static Checker'

1 POSTS

  1. 2006.10.29 Static Code Analysis 2

Static Code Analysis

Posted 2006. 10. 29. 23:36
IEEE Software에 Panagiotis Louridas가 기고한 [Static Code Analysis]라는 글을 읽었습니다. 이 글은 Static Checker의 사용을 권장하고 있습니다. Static Checker란 프로그램을 수행하지 않고 코드나 바이너리를 읽어서 개발자들이 흔히 하는 실수를 자동으로 잡아 주는 프로그램을 말합니다. 이 글에 언급된 것처럼 자바의 경우는 FindBugs, PMD, CheckStyle 등의 프로젝트가 유명한데, 이미 많은 개발자들이 사용하고 있는 것 같더군요. Klockwork라는 프로그램은 저도 처음 들어봤는데, 비슷한 기능을 하는 상용 도구로 언급하고 있습니다.

저 역시 예전에 마소에 FindBugs를 소개한 적이 있습니다. 메릴랜드 대학(Univ of Maryland)에 교환학생을 갔을 때, 제가 들었던 과목의 교수가 FindBugs를 만든 Bill Pugh 교수님이었거든요. 수업 시간에 자연스럽게 FindBugs의 사용을 권장해서 그때 정적 프로그램 분석(static program analysis)의 매력에 빠졌는데, 이후로 줄곧 관심있게 지켜보는 주제가 되었습니다.

프로그램 분석은 간단히 말해서 프로그램을 실제로 수행시켜 보기 전에 프로그램의 여러 성질을 파악해서, 버그가 있는지 없는지를 판별해 내는 기술이다. 우리가 버그를 찾아내기 위해 흔히 사용하는 기술인 테스팅은 런타임에만 버그를 찾을 수 있다. 하지만 테스팅이 모든 프로그램 수행 경로를 실행시켜 보는 것이 불가능하기 때문에 버그를 찾아내는데 한계가 있는 반면에, 프로그램 분석은 프로그램을 실제로 실행시키지 않으므로 탐지 가능한 모든 버그를 찾아낼 수 있다.

마이크로소프트웨어 2006년 4월호 [버그 잡기. 프로그램 분석 도구를 이용하자.] 서광열