SlideShare a Scribd company logo
1 of 10
SonarQube 로
Unity 프로젝트 관리
160612 에그
SonarQube
• http://www.sonarqube.org/
• 코드 품질 관리 플랫폼
• 오픈소스
설치 방법
• 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 로 툴이 바뀐 듯 함
구성
• SonarQube
• 분석 결과 관리
• SonarQube Scanner
• 코드 분석
SonarQube 로 볼 수 있는 정보
Code Smell
• 오류를 발생시키는 코드는 아니지만
수정이 권장되는 코드
• 이슈별로 대략 산정된 수정 소요시
간이 있음
• 이를 합쳐서 빚(Debt)을 청산하는데
총 얼마나 걸리는지 보여주는 기능
도 있음
SonarQube + Unity 편리한 점
• 공짜
• 쓰기 쉬움
• 유니티 프로젝트 코드 품질 관리하는 툴을 이것 말고는 못찾겠
음
SonarQube + Unity 불편한 점
• SonarQube 에서 지정한 RuleSet 을 VS에 적용시킬 수 있는
SonarLint 가 있긴 하지만, 프로젝트를 다시 열 때 마다 설정이
사라짐
• 유니티 내장 NUnit 이용한 유닛테스트 결과와 SonarQube 연동
시키는 방법 잘 모르겠음
• 유니티 특화된 RuleSet 지정 방법 알아봐야 함
• 예) Loop 안에서 GetComponents 사용하지 않기
코드 품질 관리 장점
• 기계가 할 수 있는 건 기계가 해준다.
• 제일 중요
• 문제가 얼마나 많은지 시각화해서 경각심 일깨워준다.
• 출시가 3개월 남았는데 빚이 6개월 치!
• 문제점이 수치로 표현되므로 퀘스트 하듯 코드 수정하게 됨
• 은근 중독성 있음
코드 품질 관리 주의점
• 최초 도입 시 프로젝트에서 무의미한 Rule 솎아내는 작업 필요
• Awake 같이 유니티에서 자동으로 호출하는 함수를 ‘불리지 않는 함수
‘ 로 취급함
• 코드적으로는 수정 필요할 수 있지만 현실적으로 매우 번거로워지는
경우
• 문제 수치 줄이는데 중독되어 리팩토링 주화입마에 빠질 수 있
음
• 품질 관리 시스템 도입만으로 품질이 급상승하지는 않는다.
• ‘기계가 찾을 수 있는‘ 문제만 찾아짐
• 역시 결국은 사람이 잘 설계해야 됨

More Related Content

What's hot

Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionJunHo Yoon
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전주항 박
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리도형 임
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programmingByeongsu Kang
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권freeNAVER D2
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임codenavy
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejsNAVER D2
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버Sukjin Yun
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드도형 임
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션QooJuice
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍Seungmo Koo
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2Byeongsu Kang
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP AdvSeungmo Koo
 

What's hot (20)

Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd Edition
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programming
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejs
 
Log4j
Log4jLog4j
Log4j
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
 
JMeter
JMeterJMeter
JMeter
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 

Viewers also liked

2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)JiandSon
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509영석 조
 
Tracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQubeTracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQubePatroklos Papapetrou (Pat)
 
코드네임 이것저것
코드네임 이것저것코드네임 이것저것
코드네임 이것저것EG Lim
 
Code Quality, Standards and Best Practices, Discuss
Code Quality, Standards and Best Practices, DiscussCode Quality, Standards and Best Practices, Discuss
Code Quality, Standards and Best Practices, DiscussJapheth Thomson
 
DevOps – SonarQube
DevOps – SonarQubeDevOps – SonarQube
DevOps – SonarQubeDelta-N
 
SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? Geeks Anonymes
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerManu Pk
 
Java Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeJava Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeAngelin R
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualitySonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualityLarry Nung
 

Viewers also liked (20)

Sonar 설치
Sonar 설치Sonar 설치
Sonar 설치
 
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
 
Tracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQubeTracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQube
 
코드네임 이것저것
코드네임 이것저것코드네임 이것저것
코드네임 이것저것
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Code Quality, Standards and Best Practices, Discuss
Code Quality, Standards and Best Practices, DiscussCode Quality, Standards and Best Practices, Discuss
Code Quality, Standards and Best Practices, Discuss
 
DevOps – SonarQube
DevOps – SonarQubeDevOps – SonarQube
DevOps – SonarQube
 
SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ?
 
Track code quality with SonarQube
Track code quality with SonarQubeTrack code quality with SonarQube
Track code quality with SonarQube
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps Engineer
 
Sonar
SonarSonar
Sonar
 
SonarQube Overview
SonarQube OverviewSonarQube Overview
SonarQube Overview
 
SONAR
SONARSONAR
SONAR
 
Java Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeJava Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQube
 
Sonar Metrics
Sonar MetricsSonar Metrics
Sonar Metrics
 
C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualitySonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code Quality
 

Similar to SonarQube 로 Unity 프로젝트 관리

Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewTaewan Kim
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제Kiyoung Moon
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기Mijeong Park
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례Taehyun Kim
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발도형 임
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼Kenu, GwangNam Heo
 
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기Dexter Jung
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
Component configurator
Component configuratorComponent configurator
Component configuratorscor7910
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GDG Korea
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)용호 최
 

Similar to SonarQube 로 Unity 프로젝트 관리 (20)

Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
 
201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼
 
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
Component configurator
Component configuratorComponent configurator
Component configurator
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 
Openstack Datadog.pptx
Openstack Datadog.pptxOpenstack Datadog.pptx
Openstack Datadog.pptx
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 

More from EG Lim

칼리굴라 오버도즈의 UE4 데이터 이식 안내서
칼리굴라 오버도즈의 UE4 데이터 이식 안내서칼리굴라 오버도즈의 UE4 데이터 이식 안내서
칼리굴라 오버도즈의 UE4 데이터 이식 안내서EG Lim
 
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례EG Lim
 
빌드 좀 깨먹지 마라!
빌드 좀 깨먹지 마라!빌드 좀 깨먹지 마라!
빌드 좀 깨먹지 마라!EG Lim
 
MD5 이것저것
MD5 이것저것MD5 이것저것
MD5 이것저것EG Lim
 
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상EG Lim
 
Elo 평점 시스템
Elo 평점 시스템Elo 평점 시스템
Elo 평점 시스템EG Lim
 
디미터의 법칙
디미터의 법칙디미터의 법칙
디미터의 법칙EG Lim
 
네이밍 관련 이것저것
네이밍 관련 이것저것네이밍 관련 이것저것
네이밍 관련 이것저것EG Lim
 
상속 관련 이것저것
상속 관련 이것저것상속 관련 이것저것
상속 관련 이것저것EG Lim
 

More from EG Lim (9)

칼리굴라 오버도즈의 UE4 데이터 이식 안내서
칼리굴라 오버도즈의 UE4 데이터 이식 안내서칼리굴라 오버도즈의 UE4 데이터 이식 안내서
칼리굴라 오버도즈의 UE4 데이터 이식 안내서
 
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
 
빌드 좀 깨먹지 마라!
빌드 좀 깨먹지 마라!빌드 좀 깨먹지 마라!
빌드 좀 깨먹지 마라!
 
MD5 이것저것
MD5 이것저것MD5 이것저것
MD5 이것저것
 
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상
FlatBuffers 를 이용한 안드로이드에서의 페이스북 성능 향상
 
Elo 평점 시스템
Elo 평점 시스템Elo 평점 시스템
Elo 평점 시스템
 
디미터의 법칙
디미터의 법칙디미터의 법칙
디미터의 법칙
 
네이밍 관련 이것저것
네이밍 관련 이것저것네이밍 관련 이것저것
네이밍 관련 이것저것
 
상속 관련 이것저것
상속 관련 이것저것상속 관련 이것저것
상속 관련 이것저것
 

SonarQube 로 Unity 프로젝트 관리

  • 1. SonarQube 로 Unity 프로젝트 관리 160612 에그
  • 2. SonarQube • http://www.sonarqube.org/ • 코드 품질 관리 플랫폼 • 오픈소스
  • 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 로 툴이 바뀐 듯 함
  • 4. 구성 • SonarQube • 분석 결과 관리 • SonarQube Scanner • 코드 분석
  • 5. SonarQube 로 볼 수 있는 정보
  • 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 같이 유니티에서 자동으로 호출하는 함수를 ‘불리지 않는 함수 ‘ 로 취급함 • 코드적으로는 수정 필요할 수 있지만 현실적으로 매우 번거로워지는 경우 • 문제 수치 줄이는데 중독되어 리팩토링 주화입마에 빠질 수 있 음 • 품질 관리 시스템 도입만으로 품질이 급상승하지는 않는다. • ‘기계가 찾을 수 있는‘ 문제만 찾아짐 • 역시 결국은 사람이 잘 설계해야 됨