저작권 안내: 저작권자표시 Yes 상업적이용 No 컨텐츠변경 No

스프링5 입문

JSP 2.3

JPA 입문

DDD Start

인프런 객체 지향 입문 강의

'코드 품질 시각화의 정석'에 해당되는 글 1건

  1. 2015.08.06 독후감 - 코드 품질 시각화의 정석

코드가 좋은지 나쁜지 어떻게 알 수 있을까? 코드의 신이 내려와 모든 코드를 다 훑어보고 이 코드는 100점 만점에 85점이다라고 말 해주면 좋겠지만 그런 일을 일어나지 않는다. 코드의 품질을 확인하려면 몇 가지 기준에 따라 코드를 분석하고, 그걸 기준으로 코드 품질을 추정해야 한다. 예를 들어, 이름과 실제 구현이 일치하지 않는 메서드의 비율이나 중복된 코드의 비율과 같은 값을 구하고 이를 이용해서 코드 품질에 대해 논의할 수 있다.


이런 코드 품질에는 네이밍과 같은 정성적인 품질과 중복된 코드 비율과 같은 정량적인 품질이 있다. 정성적인 품질은 개발자가 직접 분석을 해야 하지만, 정량적인 품질은 기계의 힘을 빌려 측정할 수 있다. 예를 들어, 조금만 코드가 커져도 사람이 중복된 코드 비율을 구하는 것은 불가능하지만 기계는 짧은 시간에 처리할 수 있다. 이런 정량적인 품질을 측정할 때 사용할 수 있는 다양한 도구가 존재하는데, 그 중에서 현재 널리 쓰이는 것을 꼽자면 소나큐브를 들 수 있다. 그리고, 오늘 살펴볼 '코드 품질 시각화의 정석'이 소나큐브를 다르는 책이다.


품질에 대한 이해를 도와줌


이 책이 단순히 소나큐브의 사용법만 안내하고 끝났다면 책의 가치가 떨어졌을 것이다. 소나큐브를 사용하는 이유는 결국 코드의 현재 품질을 수치화해서 보여줌으로써 품질을 관리하기 위함이다. 코드의 품질이 의미하는 것, 코드 리뷰가 무엇인지 등에 대한 이해가 없으면 소나큐브가 제공하는 기능을 제대로 활용할 수 없다.


이 책은 소나큐브를 제대로 활용할 수 있도록, 중요한 개념이나 활동에 대한 내용을 제공한다. 빙산의 일부에 불과한 기능 적합성뿐만 아니라 품질과 관련된 나머지 영역에 대해서도 언급하고 있다. 예를 들어, 1장에서는 품질에 대한 기초 지식을 제공하며, 6장에서는 코드 리뷰 활동에 대한 이해를 돕는다. 물론 이 책은 코프 품질 자체에 대한 책은 아니므로 이 책만으로 품질이나 리뷰를 완전히 이해할 순 없지만, 적어도 소나큐브를 잘 활용할 수 있는 지식은 쌓을 수 있다.


품질 관리에 꼭 필요한 기능 소개


코드 품질을 관리하는데 필요한 기능이 있다. 품질 게이트, 품질 프로파일, 이슈 관리, 디퍼런셜 뷰 등 코드 품질을 관리하는데 핵심이 되는 소나큐브의 기능을 설명하고 있다. 이런 것 중에 하나라도 빠졌다면 매우 아쉬웠을 것이다. 


따라할 수 있는 구성


뭐니 뭐니 해도 도구를 익히는 가장 좋은 방법은 직접 해 보는 것이다. 소나큐브와 같은 도구를 사용할 때 가장 어려운 것 중 하나가 바로 설치 과정이다. 이 책은 독자들이 따라해 볼 수 있도록 16장부터 소나큐브 설치, 코드 분석 과정을 예제를 이용해서 차례대로 설명하고 있다. 독자가 OS 문제 때문에 실습에 어려움을 겪지 않도록 하기 위해, 버추얼박스를 이용해서 우분투로 환경을 맞춘 점이 눈에 띈다.


CI 도구인 젠킨스와 연동을 추가한 것도 좋았다. 소나큐브를 독자적으로 사용하기 보다는 지속적 통합 과정의 한 축으로 품질 관리를 사용하기 때문에, 젠킨스와 같은 CI와의 연동은 필수나 다름없다. 이런 점을 놓치지 않고 책 속에 녹여 넣었다. 젠킨스뿐만 아니라 인기있는 IDE인 인텔리J와의 연동 부분을 추가한 것도 매력적이다.


소나큐브를 다루는 유일한 국내서


IT 분야의 번역서를 읽다보면 어색한 문장이나 오역 때문에 읽기 힘든 경우가 자주 발생한다. 다시 원서를 사서 말이 안되는 부분을 번역서와 대조하면서 보는 경우도 있다. 이 책에는 그런 문제가 없다. 이 책이 바로 국내서이기 때문이다. 소나큐브를 다루는 책 중에서 국내서는 이 책이 유일하다. 사실 범위를 넓혀 한글로 된 책 중에서도 이 책이 유일하다. 한국인 저자가 한글로 쓴 책이라는 점은 IT 서적에선 큰 장점이다.


추가로 넣었으면 하는 부분


이 책의 개정판이 나온다면 다음 내용을 추가했으면 하고 바래본다.

  • 그래들 프로젝트 연동 : 책에서는 메이븐과 앤트 러너를 소개하고 있는데, 그래들로 구성된 프로젝트를 위한 분석 방법도 추가했으면 하는 바램이 있다.
  • 윈도우 실습 환경 : 버추얼 박스 자체에 우분투를 설치해서 진행하는 것이 좋긴 하지만, 아직 윈도우 환경에서 개발을 진행하는 개발자 수가 더 많으므로 윈도우 실습 환경을 추가해주면 좋을 것 같다.
몇 년 전의 일이다. 지인 개발자와 대화를 하면서 처음으로 소나큐브를 알게 되었다. 코드 리뷰를 하는데 소나큐브를 쓴다는 것이었다. 지인이 있는 인터넷 서비스 회사는 규모가 큰 국내 기업이었는데, 코프 품질의 중요함을 아는 조직은 이렇듯 소나큐브를 이미 활용하고 있었다. 코드 품질을 관리하는 도구는 많지만 그 중에서 하나를 써야 한다면 소나큐브를 고르자. 이미 많은 조직에서 소나큐브를 사용하고 있다. 그리고, 고민하지 말고 '코드 품질 시각화의 정석'을 읽자. 소나큐브를 잘 활용할 수 있게 될 것이다.


Posted by 최범균 madvirus

댓글을 달아 주세요