간단 지식/SW validation&verification

08. SonarQube 설치 + CTIP 환경 구성 후기

납작한돌맹이 2021. 4. 28. 03:56
반응형

소나큐브는 정적분석도구로, pmd나 checkstyle이나 findbugs라는 도구들도 플러그인으로 설치하여 사용할 수 있으므로 유용하게 사용할 수 있다. 다만 젠킨스, 레드마인에 비해 설치가 까다롭고 느리다는 점에서 가장 다루기 어려웠다.

 

처음에는 뭣도 모르고 sonarqube 7.2.1 버전을 설치했는데 힘들게 오류까지 고치고 난 후에야 pmd, checkstyle, findbugs의 버전과 호환이 안되는 버전이라는 사실을 알아버렸다. 그리고 하나의 ec2서버에서 젠킨스, 레드마인 ,소나큐브까지 다 start한 상태에서 프로젝트를 build하니 서버가 먹통이 되버렸다. 공간을 swap하고 서버의 볼륨을 늘려봐도 똑같았다. 이 모든게 소나큐브가 너무 무겁다는 점에서 온 문제들이었다.

 

식견이 짧은 학부생이어서 무식하게 먹통이 된 서버를 붙들고 있었는데 좋은 방법을 알게 되었다. 바로 새로운 서버를 생성하는 것이었다. 실제로 대학원생들은 실습용 컴퓨터가 있어서 정적분석도구들은 해당 컴퓨터에서 설치하는 일도 있다고 한다. 한번도 노트북 외에 실습용 컴퓨터를 가져본적이 없어서 CI 툴과 정적분석툴을 분리해볼 생각을 하지 않았다. 생각해보니 젠킨스와 소나큐브를 연동해주는 소나큐브 스캐너도 사실상 젠킨스가 설치된 경로에 설치해야 하므로 소나큐브 및 정적분석도구들은 로컬에 있던 새로운 서버에 있던 상관이 없는 것이다!

 

서버를 분리함으로써 모든 문제가 사라졌지만 일단 한 서버에 다 설치하려 했을 무렵 생겼던 오류들에 대해 회고해보자면, DB 오류가 가장 많았지 않나 싶다. redmine을 bitnami redmine으로 설치해버린 까닭에 sonarqube를 설치하며 같이 깔린 mysql과 redmine의 mysql이 충돌해버려서 골치가 아팠다. (그 후에 testlink마저 bitnami로 설치한 후 세 쌍으로 mysql이 난리였다.) 그래서 소나큐브의 mysql을 삭제하고 postresql이라는 처음보는 db를 활용해보았다.

 

CTIP환경을 처음부터 끝까지 설치하고 연동하는 것은 환경 자체가 너무 크다보니 개인적인 욕심으로만 남겨둬야 했다. 실제로 환경을 구성하면서 혼자할 수 없는 프로젝트라는 것을 절실히 느끼기도 했다. (팀프로젝트는 만악의 근원이지만 하는 이유가 있다는걸 다시 또 느끼고 갑니다) 때문에 CI(젠킨스), issue manager(레드마인), configuration(깃) 도구에 대해서는 빠삭하게 이해를 했지만, 다른 팀원이 주력이었던 정적분석도구나 testlink에 대해서는 완벽하지는 못하다. (이 링크가 해당부분을 도맡아 했던 팀원의 블로그다. velog.io/@yeju6540/CTIP-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-sonarqube-%EC%84%A4%EC%B9%98 )

 

3학년 때 소프트웨어 모델링 및 분석이라는 과목을 수강하며 개발자의 실무 프로세스에 대해 조금이나마 접해보았다면, 이번 소프트웨어 검증 및 확인이라는 과목을 통해서는 개발의 초기부터 소프트웨어의 서비스 종료까지 책임지는 소프트웨어 품질 관리자(SQA)의 프로세스에 대해서, 또 개발자가 개발을 할 때 있어서 기능 외에 염두해야 하는 부분에 대해서 알게 되었다.

 

곧 졸업을 앞둔 4학년이 되었고, 또 사회구성원이 되기 위해 취업을 준비해야하는 취준생이 되어 여러가지로 심란했던 요즘이었다. 자칫하면 우울감에 빠지기 좋은 상황에서 이렇게 정신없이 프로젝트를 하니 고민에 빠질 시간조차 없었던 것 같다. CTIP 환경 구성이 성공적으로 마무리 된 후 얻은 성취감은 이렇게 또 우울감을 극복할 수 있게 해주는 계기가 되었다. 

(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )

반응형