본문 바로가기
Software

Static code review

by gourri 2014. 5. 13.
반응형



정적 코드검사.. 최근 몇년간 정적 코드검사를 열심히 쓰고 있다(klocwork, coverity). 

사실 많은 경우에 있어 여기서 발견될만한 문제들은 현장에서 발견되기 쉽지 않다. 왜냐하면 대부분의 SW개발 과정에서 코드 리뷰를 수행하기 때문이다. 리뷰어의 역량에 특별히 문제가 있지 않다면 정적 코드검사에서 나오는 주요 이슈들인 out-of-boundary, memory leak, uninitialized variable, dereferenced 등의 기본적인 문제는 리뷰에서 거의 걸러져야 한다.


그런데 최근에 이슈가 되었던 hearbleed 사건을 보면 정적 코드검사 도구의 유용성이 드러나 보인다.


<heartbleed 이슈들>

‘하트블리드’, 캐나다 국세청 등 2개 사이트 공격: http://biz.heraldcorp.com/view.php?ud=20140415000816

 

[Q&A]'사상 최악' 버그 '하트블리드'란…: http://biz.chosun.com/site/data/html_dir/2014/04/11/2014041101534.html?BRcsbiz

 

Heartbleed wiki: http://en.wikipedia.org/wiki/Heartbleed_bug

(http://en.wikipedia.org/wiki/File:Heartbleed_bug_explained.svg)


Man who introduced serious 'Heartbleed' security flaw denies he inserted it deliberately


실제로 heartbleed 문제는 정적 코드검사 도구를 통해 걸러질 가능성이 높았을 것 같다. 실제 코드를 보지 않았으므로 확신은 못하겠다. 리뷰어들이 평소에 열심히 리뷰를 하겠지만 가끔 실수를 할 수도 있다. 또는 매너리즘에 빠진 팀이라면 리뷰 자체가 효용성이 낮을 수 있다.


정적 코드검사 도구들은 이런 기본적인 것을 놓치지 않게 해주는데 큰 의의가 있다. 이런 것들은 사소하지만 고객들에게는 큰 impact를 미칠 수 있기 때문이다. 이런 도구를 사용할 수 있다면 적극적으로 사용하는 것이 대승적으로 볼때 훨씬 이익일 것이다.



coverity-HP_Application-Lifecycle-Management

정적 코드검사 도구 비교(영어): http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

반응형

'Software' 카테고리의 다른 글

Agile 개발을 하는 것  (0) 2014.09.03
git, gerrit  (4) 2014.07.21
Agile Scrum Development in real  (0) 2014.07.17
IBM Rhapsody  (0) 2014.05.19
Agile Competence  (0) 2014.05.12