3. 설치 방법
• Sonar cube로 Unity3D의 소스를 가시화 해보자.
• http://www.wolfpack.pe.kr/887
• Mac OS X に SonarQube 導入 - UnityのC#コーディング規約
チェック
• http://kenzo0107.hatenablog.com/entry/2014/06/22/024501
• 웹서버는 SonarQube 자체에 포함되어 있어 설치 안 해도 됨
• 단순히 살펴보기 목적이라면 DB 설치 안 해도 됨
• 내장된 DB 사용가능
• SonarQube 업그레이드 시 내장 DB 업그레이드는 지원 안될 수 있음
• Runner -> Scanner 로 툴이 바뀐 듯 함
6. Code Smell
• 오류를 발생시키는 코드는 아니지만
수정이 권장되는 코드
• 이슈별로 대략 산정된 수정 소요시
간이 있음
• 이를 합쳐서 빚(Debt)을 청산하는데
총 얼마나 걸리는지 보여주는 기능
도 있음
7. SonarQube + Unity 편리한 점
• 공짜
• 쓰기 쉬움
• 유니티 프로젝트 코드 품질 관리하는 툴을 이것 말고는 못찾겠
음
8. SonarQube + Unity 불편한 점
• SonarQube 에서 지정한 RuleSet 을 VS에 적용시킬 수 있는
SonarLint 가 있긴 하지만, 프로젝트를 다시 열 때 마다 설정이
사라짐
• 유니티 내장 NUnit 이용한 유닛테스트 결과와 SonarQube 연동
시키는 방법 잘 모르겠음
• 유니티 특화된 RuleSet 지정 방법 알아봐야 함
• 예) Loop 안에서 GetComponents 사용하지 않기
9. 코드 품질 관리 장점
• 기계가 할 수 있는 건 기계가 해준다.
• 제일 중요
• 문제가 얼마나 많은지 시각화해서 경각심 일깨워준다.
• 출시가 3개월 남았는데 빚이 6개월 치!
• 문제점이 수치로 표현되므로 퀘스트 하듯 코드 수정하게 됨
• 은근 중독성 있음
10. 코드 품질 관리 주의점
• 최초 도입 시 프로젝트에서 무의미한 Rule 솎아내는 작업 필요
• Awake 같이 유니티에서 자동으로 호출하는 함수를 ‘불리지 않는 함수
‘ 로 취급함
• 코드적으로는 수정 필요할 수 있지만 현실적으로 매우 번거로워지는
경우
• 문제 수치 줄이는데 중독되어 리팩토링 주화입마에 빠질 수 있
음
• 품질 관리 시스템 도입만으로 품질이 급상승하지는 않는다.
• ‘기계가 찾을 수 있는‘ 문제만 찾아짐
• 역시 결국은 사람이 잘 설계해야 됨