21
SOFTWARE QUALITY VISUALIZATION 소나큐브를 활용한 코드 품질 시각화 20150325..1900-2040 알럿 센터 SOFTWARE QUALITY VISUALIZATION [email protected] www.creatinov.org https://www.facebook.com/groups/korea.sonarqube.user.group/ Quality Assurance Engineer NBT Partners 김모세

2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

Embed Size (px)

Citation preview

Page 1: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION소나큐브를 활용한 코드 품질 시각화20150325.수.1900-2040알럿 센터

SOFTWARE QUALITY VISUALIZATION

[email protected] www.creatinov.org https://www.facebook.com/groups/korea.sonarqube.user.group/

Quality Assurance Engineer NBT Partners

김모세

Page 2: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

SOFTWARE QUALITY VISUALIZATION

왜?

Page 3: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

오늘 나눌 이야기소프트웨어 품질이 뭔가요코드는 중요합니다왜 소나큐브를 써야 하나요소나큐브 X 캐시슬라이드Q&A

SOFTWARE QUALITY VISUALIZATION

소프트웨어 품질

기능 비기능

Page 4: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

소프트웨어 품질

ISO/IEC 25010 SQuaRE (Systems and software Quality Requirements and Evaluation)

SOFTWARE QUALITY VISUALIZATION

코드는 더 이상 중요하지 않다?코드=요구사항코드=프로덕트

Page 5: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

코드 작성요구사항 분석기능 설계

기능 테스트기능 구현

SOFTWARE QUALITY VISUALIZATION

옆 사람 코드가 가장 읽기 어렵습니다

Page 6: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

시간 vs. 생산성기술부채Technical debt

SOFTWARE QUALITY VISUALIZATION

그래서?생산성을 떨어뜨리지 않는 고품질의 코드

Page 7: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

Bjarne Stroustrup Inventor of C++ and author of The C++ Programming Language

I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well.

Ward Cunningham Inventor of Wiki/ Fit. Co-inventor of eXtreme Programming.

Motive force behind Design Patterns. Smalltalk and OO thought leader.

The godfatehr of all those who care about code

You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem.

SOFTWARE QUALITY VISUALIZATION

클린 코드그런데 뭘 확인해야 할까요?

Page 8: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

정적 분석을 하긴 해보나…뭔가 좀 부족해 보입니다.

SOFTWARE QUALITY VISUALIZATION

Page 9: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

코드 품질 내비게이터과거Past현재Present미래Prediction공유Publication

SOFTWARE QUALITY VISUALIZATION

코드 품질 내비게이터

http://nemo.sonarqube.org

Page 10: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

소나큐브 | 워크플로우 - ADAM

분석 Analysis

표시 Display

조치 Action

관리 Management

SOFTWARE QUALITY VISUALIZATION

• 일곱가지 코드 품질 축7 Axes of Code Quality

• 하나의 플랫폼Single platform

• 개발 환경과의 통합Integration to legacy environment

분석Analysis

Page 11: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

분석 | 일곱가지 코드 품질 기준

SOFTWARE QUALITY VISUALIZATION

분석 | 하나의 플랫폼

• 20+ 프로그래밍 언어 분석 가능

• 기존 정적 분석 규칙Coding rules의 통합 및 개선

• 단일화 된 웹서비스 형태의 분석 결과 제공

Page 12: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

분석 | 하나의 플랫폼

SOFTWARE QUALITY VISUALIZATION

분석 | 개발 환경과의 통합

Page 13: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

• 대시보드Dashboards 와 위젯Widgets

• 품질 변화 추이

• 기술 부채Technical debt

• 컴포넌트 뷰어Component Viewer

표시Display

SOFTWARE QUALITY VISUALIZATION

표시 | 대시보드와 위젯

Page 14: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

표시 | 품질 변화 추이 & 기술부채

SOFTWARE QUALITY VISUALIZATION

표시 | 컴포넌트 뷰어

Page 15: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

• 이슈 처리

• 액션 플랜Action Plans

조치Action

SOFTWARE QUALITY VISUALIZATION

조치 | 이슈 처리

Page 16: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

조치 | 액션 플랜

SOFTWARE QUALITY VISUALIZATION

• 지속적인 인스펙션Continuous Inspection

• 품질 프로파일Quality Profiles

• 품질 게이트Quality Gates

• 강력한 커뮤니티의 지원

관리Management

Page 17: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

관리 | 지속적인 인스펙션

• 시간에 따른 코드 품질 지표 제공

• 코드 품질 비교이전 버전 및 다른 프로젝트

• 지속적인 통합 환경

SOFTWARE QUALITY VISUALIZATION

관리 | 품질 프로파일

Page 18: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

관리 | 품질 게이트

SOFTWARE QUALITY VISUALIZATION

관리 | 강력한 커뮤니티 지원

Page 19: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

소나큐브 X 캐시슬라이드

• 신규 기능에 의한 기술 부채 증가 여부

• 메인라인Mainline의 품질 변화 추적

• 기존 시스템Legacy System 기술 부채 해결

SOFTWARE QUALITY VISUALIZATION

Q&A

[email protected] www.creatinov.org

Page 20: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

깨끗한 코드=습관=문화내가 하기 싫어하면 남도 하기 싫어한다전문가=장인정신

SOFTWARE QUALITY VISUALIZATION

• Clean CodeA Handbook of Agile Software Craftmanship | Robert C. Martin

• The GoalA Process Ongoing Improvement | Eliyahu M. Goldratt & Jeff Cox

• SonarQube User Guidehttp://www.sonarqube.org/documentations

참고자료

Page 21: 2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)

SOFTWARE QUALITY VISUALIZATION

감사합니다

[email protected] www.creatinov.org https://www.facebook.com/groups/korea.sonarqube.user.group/

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.