코드 품질 시각화의 정석 - 지속적인 소프트웨어 품질 분석과 관리를 위한 SonarQube 완벽 가이드

1

내 안에 감춰진 욕망의 항아리에 린(LEAN)이 자리 잡고 있고, 예전에는 애자일(Agile)이 자리 잡고 있었고, 얼마전에는 IDE(Integrated development environment)와 마크다운(Markdown) 편집기가 있었다. 내 안에 감춰진 욕망의 항아리에서 젠킨스(Jenkins, CI)와 함께 언제나 나를 주저하게 만들었던 ‘소나큐브(SonarQube)’란 것도 있었다. 몇가지 노력과 허광남님의 아프리카 방송을 통해서 젠킨스는 내가 필요한 만큼 사용할 수 있었지만 ‘소나큐브’의 욕망은 채워지지 않았다.

‘소나큐브’에 대한 소문을 접하고 달려가 본 세상은 황량했다. 이 바닥에서 한글화 문서가 없음은 큰 문제가 아님을 모두 알고 있으니 그것은 받아들일 수 있는 불폄함이지만, 사용방법을 몰라서 포기해야 했다. 정확하게 서술하면 “소나큐브를 누가, 어떻게, 언제, 왜” 사용하는지에 대한 개념적인 이해가 전혀 없었기 때문에 나에게 다가온 소나큐브는 황량했다.

그런데 이 책을 접하고 즐거웠다. 즐거울 수 밖에 없었다. “한글, 개념, 실습” 삼위 일체의 완벽함이 돋보이는 책이다.

2

품질을 나타내는 영어 단어는 “quality”와 “grade”가 있다. 코드의 품질은 quality일까? grade일까? “내가 만든 코드의 quality는 다르다!”, “내가 만든 코드의 grade는 다르다!” 품질과 격의 문제다. 나의 코드가 품질이 좋아지길 원하는 만큼, 내가 만다는 프로그램의 ‘격’도 높아지길 원했다. 하지만 나의 코드가 어제의 코드보다 조금 더 좋아지고 있을까? 과연 그것을 증명할 수 있을까? 코드에 대한 정량적인 숫자를 어떻게 확인할 수 있을까? 애초에 그런게 가능할까?

이런 짧은 질문이 꼬리를 물고 이어졌다. 리팩토링을 읽고, 짝코딩을 하고, 코드리뷰를 거치는 몇가지 방법을 적용해봐도 아쉬움이 남았다. 내 코드의 부족함을 알 수 있는 정량적인 방법을 찾게된다.

소나큐브는 내 코드의 부족함을 정량적인 방법으로 분석하고 알려준다. 최소한 내 코드의 ‘중복’이나 ‘C-V’에 관련된 내용은 ‘정확하게’ 찾아준다.

그리고 책은 소나큐브의 실습을 통해서 정량적인 방법을 손쉽게 찾아주는 다양한 방법을 안내한다.

3

이 책의 가장 중요한 장점은 개념이나 활동에 대한 내용을 아주 자세히 설명하고 있다. 품질에 대한 기초 지식, 코드 리뷰 등에 포괄적인 개념을 충실히 설명하고 있기 때문에 소나큐브를 사용함에 문제가 없도록 ‘한글’로 된 알찬 내용이 가득하다.

그리고 실제 서버에 설치하고 운영하는 예제가 후반분에 나오기 때문에 실제 업무에 테스트 해 볼 수 있다. 실제 본인도 아마존 서버에 설치해서 테스트를 해보았다. 특히 인텔리J와 연동하는 방법을 통해서 안드로이드 소스코드 분석 테스트를 해보고 있다.

국내 유일의 ‘소나큐브’ 책이다. 소나큐브를 들어봤다면 사라, 뭔지 모른다면 서점에 가서 확인하고 사자!

P.S : 인터넷 서점에서 검색어로 ‘소나큐브’ 보단 “코드 품질”로 검색하면 다양한 정보가 나온다!

Written on August 12, 2015