SlideShare a Scribd company logo
1 of 11
정적분석
(SonarQube를 사용한)
정적분석이란?
기계가 해주는 코드리뷰
장점
지치지 않아요.
 매일 매일 갱신되는 코드
 매일 꾸준히 하기는 쉽지 않다.
 기계는 지치지 않고
매일매일 모든 코드를 리뷰합니다.
단점
단순해요
 구문분석밖에 못함
 정해진 규칙 이외의 것은 보지 못함
 논리적 구조나, 설계에 대한 리뷰는 불가능
그래도 유용함
 항목별로 설명이 달려있음
 왜 이렇게 하면 안되는지
 왜 저렇게 하는게 더 좋은지
 보고 있으면 (은근) 공부가 됨
SonarQube
 구성
 DB(분석결과 저장)
 웹서버(분석결과 리포팅)
 정적분석 도구(코드 분석)
 3가지 모두가 한 서버에 있을 필요 없음
어제부터 우리는
 Jenkins-sonar-plugin
 Jenkins 빌드 시 함께 수행
 데이터가 차곡차곡 쌓인다
 일하기 싫을 때 한번씩 봅시다.
백문이 불여일견
(사이트 시연..)
잔소리1
모든 결과가 정답은 아님
 규칙에 따라 수행한 결과일 뿐
 규칙은 언제나 예외가 존재 ;)
 모든 지적질에 대응할 필요는 없음
 필요하면 검사 규칙을 수정
 뺄껀 빼고, 넣을건 넣는 규칙 관리
잔소리2
일이 되어서는 안됨
 데드라인/목표치 수립?
 망하는 지름길(Wag the dog)
 수치만을 위한 각종 꼼수에 집중
 해보면 노가다
 쫓기듯 하면 금방 지친다
 청소가 재미있던 기억이 있던가..
 한번 더 말하지만
 지루할 때 공부삼아 한번씩 봅시다.
끗

More Related Content

What's hot

게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP AdvSeungmo Koo
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리도형 임
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2NAVER D2
 
게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅Seungmo Koo
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍Seungmo Koo
 
게임서버프로그래밍 #5 - 데이터베이스 핸들링
게임서버프로그래밍 #5 - 데이터베이스 핸들링게임서버프로그래밍 #5 - 데이터베이스 핸들링
게임서버프로그래밍 #5 - 데이터베이스 핸들링Seungmo Koo
 
Advanced nGrinder
Advanced nGrinderAdvanced nGrinder
Advanced nGrinderJunHo Yoon
 
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기CONNECT FOUNDATION
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드도형 임
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델Seungmo Koo
 
xUnitTestPattern/chapter9
xUnitTestPattern/chapter9xUnitTestPattern/chapter9
xUnitTestPattern/chapter9명환 안
 
Generator 발표자료
Generator 발표자료Generator 발표자료
Generator 발표자료JangHee Lee
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전주항 박
 
20130201 java deploy
20130201 java deploy20130201 java deploy
20130201 java deploySukjin Yun
 
필요해서 하는 개발 자동화
필요해서 하는 개발 자동화필요해서 하는 개발 자동화
필요해서 하는 개발 자동화none
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기용호 최
 

What's hot (20)

게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2
 
게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅게임서버프로그래밍 #6 - 예외처리 및 로깅
게임서버프로그래밍 #6 - 예외처리 및 로깅
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
 
게임서버프로그래밍 #5 - 데이터베이스 핸들링
게임서버프로그래밍 #5 - 데이터베이스 핸들링게임서버프로그래밍 #5 - 데이터베이스 핸들링
게임서버프로그래밍 #5 - 데이터베이스 핸들링
 
Advanced nGrinder
Advanced nGrinderAdvanced nGrinder
Advanced nGrinder
 
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
xUnitTestPattern/chapter9
xUnitTestPattern/chapter9xUnitTestPattern/chapter9
xUnitTestPattern/chapter9
 
Generator 발표자료
Generator 발표자료Generator 발표자료
Generator 발표자료
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전
 
20130201 java deploy
20130201 java deploy20130201 java deploy
20130201 java deploy
 
JMeter
JMeterJMeter
JMeter
 
필요해서 하는 개발 자동화
필요해서 하는 개발 자동화필요해서 하는 개발 자동화
필요해서 하는 개발 자동화
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
 

Viewers also liked

모니터링이란 무엇인가(민성환)
모니터링이란 무엇인가(민성환)모니터링이란 무엇인가(민성환)
모니터링이란 무엇인가(민성환)여성환경연대
 
2. 악성코드 동적 분석 방법론
2. 악성코드 동적 분석 방법론2. 악성코드 동적 분석 방법론
2. 악성코드 동적 분석 방법론Youngjun Chang
 
Sonar설치매뉴얼
Sonar설치매뉴얼Sonar설치매뉴얼
Sonar설치매뉴얼성욱 전
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드jSoboro
 
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)JiandSon
 
악성코드 분석 도구
악성코드 분석 도구악성코드 분석 도구
악성코드 분석 도구Youngjun Chang
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅Yoonsung Jung
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관Daekwon Kang
 

Viewers also liked (15)

Sonar 설치
Sonar 설치Sonar 설치
Sonar 설치
 
모니터링이란 무엇인가(민성환)
모니터링이란 무엇인가(민성환)모니터링이란 무엇인가(민성환)
모니터링이란 무엇인가(민성환)
 
2. 악성코드 동적 분석 방법론
2. 악성코드 동적 분석 방법론2. 악성코드 동적 분석 방법론
2. 악성코드 동적 분석 방법론
 
Sonar설치매뉴얼
Sonar설치매뉴얼Sonar설치매뉴얼
Sonar설치매뉴얼
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
 
Jenkins
JenkinsJenkins
Jenkins
 
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
 
Jenkins소개
Jenkins소개Jenkins소개
Jenkins소개
 
악성코드 분석 도구
악성코드 분석 도구악성코드 분석 도구
악성코드 분석 도구
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
SONAR
SONAR SONAR
SONAR
 
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
 

정적분석