기타 Lobsters · 2일 전

"이 코드는 쓰레기(CRAP)다"… 구글이 공유했던 전설의 코드 품질 지표

핵심 요약
  • 구글 테스팅 블로그에 복잡하고 위험한 코드를 판별하는 지표이자 도구인 'CRAP(Crap4J)' 관련 글이 공유되었습니다.
  • 단순 커버리지 툴과 달리 진짜 위험한 코드를 짚어준다는 찬사부터, 정작 플러그인 자체가 버그투성이라 이름값 한다는 유쾌한 불만까지 다양한 반응이 이어졌습니다.
  • 개발자 화장실에 글을 붙여두던 사연이나 자바 신버전 호환 문제 등 실무 개발자들의 현실적인 공감을 샀습니다.
요약 구글 테스팅 블로그(Google Testing Blog)에 2011년 알베르토 사보이아(Alberto Savoia)가 작성한 '이 코드는 쓰레기(CRAP)다'라는 글이 개발자 커뮤니티에서 다시금 언급되었습니다. 원문 본문 내용은 누락된 채 댓글과 블로그 아카이브만 남아있는 상태이지만, 당시 개발자들의 댓글 반응을 통해 해당 글이 복잡도와 테스트 커버리지를 결합해 위험한 코드를 판별하는 'CRAP(Change Risk Anti-Patterns)' 지표 및 'Crap4J' 이클립스 플러그인에 대한 내용이었음을 확인할 수 있습니다. 한 개발자는 영상과 아이디어가 흥미로워 프로젝트에 적용해보려 했으나 다운로드 링크와 이클립스 저장소 오류가 발생했다고 지적했고, 또 다른 사용자는 이클립스 플러그인 자체가 먹통이라며 비꼬기도 했습니다. 반면 사내 화장실에 테스트 관련 글을 인쇄해 붙여두던 이유를 이제야 사람들이 이해할 것이라며 환영한 반응도 있었습니다. 또한 일반적인 코드 커버리지 도구(JaCoCo, CodePro 등)가 단순 getter 메서드처럼 테스트할 필요가 없는 코드까지 테스트하도록 강제하는 것과 달리, Crap4J는 실제로 위험하고 복잡한 코드를 잘 짚어내 유용하게 써왔다는 실무 개발자의 호평도 남아있습니다. 다만 이후 자바 7(JAVA7) 버전에서 제대로 작동하지 않아 우회 패치 방법이 공유되는 등 노후화된 도구로서의 한계도 함께 드러났습니다.
해외 반응 번역
"CRAP 지표랑 영상 흥미롭게 봤습니다. 내 프로젝트에도 돌려보고 쓰레기 코드가 얼마나 있는지 확인하고 싶은데, 다운로드 링크가 안 되네요. 이클립스 플러그인을 받으려니 저장소를 찾을 수 없다는 에러가 뜹니다."
"미안하지만 당신의 CRAP4j 플러그인 자체가 진짜 '쓰레기(crap)'네요 :-). 업데이트 사이트 게이트웨이 타임아웃이 뜨거나 feature.xml을 찾을 수 없다는 오류가 잔뜩 납니다."
"하하, 드디어 사람들이 왜 내가 사무실 화장실에 테스팅 관련 글을 인쇄해서 붙여뒀었는지 이해하겠네요!"
Sponsored · 광고