33
코드 리뷰 시스템의 도입 NCsoft 임영기 [email protected] 주체 : 온라인 서버 개발자 모임 후원 : 넷텐션

임영기님 - 코드 리뷰 시스템 도입하기

Embed Size (px)

Citation preview

Page 2: 임영기님 - 코드 리뷰 시스템 도입하기

코드리뷰란

• 다른 개발자에게 코드 검토를 요청

• 실수를 발견하려는 목적

• 코드 퀄리티 향상

• 개발자의 스킬 향상

Page 3: 임영기님 - 코드 리뷰 시스템 도입하기

시스템의 장점

• 비동기

• 편하게 묻고

• 알려주는 사람도 편한 시간을 사용

• 인정 사정 없는 지적질

• 코드 작성 할 때 좀 더 신경쓰게 됨

Page 4: 임영기님 - 코드 리뷰 시스템 도입하기

제품들

• Code Collaborator

• Crucible

• Review Board

• Code Striker

• Malevich

• Mondrian

Page 5: 임영기님 - 코드 리뷰 시스템 도입하기

Code Collaborator

• 유료

• 다양한 기능을 지원(VS addin 등)

• Pre-Review(저장소에 commit 없이 리뷰)에 강점

• 상대적으로 고가

Page 6: 임영기님 - 코드 리뷰 시스템 도입하기

Crucible

• 유료

• 최소한의 기능만 지원

• Pre-Review 불편(소스 저장소에서 patch파일을 만들어서 올려야 함)

• 상대적으로 저가

• 설치가 간단하고 쉬운 인터페이스

• 고객 서포트 좋음

Page 7: 임영기님 - 코드 리뷰 시스템 도입하기

무료 제품들

• Review Board

• Code Striker

• Malevich

• Mondrian

Page 8: 임영기님 - 코드 리뷰 시스템 도입하기

Crucible을 이용한 리뷰 프로세스

• 리뷰 올리기

• 리뷰어 검토

• 코멘트

• Complete

• Summarize

• Close

Page 9: 임영기님 - 코드 리뷰 시스템 도입하기

Review 생성

Page 10: 임영기님 - 코드 리뷰 시스템 도입하기

Review 리소스 선택

Page 11: 임영기님 - 코드 리뷰 시스템 도입하기

Commit 목록에서 선택

Page 12: 임영기님 - 코드 리뷰 시스템 도입하기

새로운 소스 추가

Page 13: 임영기님 - 코드 리뷰 시스템 도입하기

기존 소스 삭제

Page 14: 임영기님 - 코드 리뷰 시스템 도입하기

코멘트 달기

Page 15: 임영기님 - 코드 리뷰 시스템 도입하기

중요도 선택

Page 16: 임영기님 - 코드 리뷰 시스템 도입하기

Review 완료(Reviewer)

Page 17: 임영기님 - 코드 리뷰 시스템 도입하기

Review 완료(Review 작성자)

Page 18: 임영기님 - 코드 리뷰 시스템 도입하기

Review 닫기

Page 19: 임영기님 - 코드 리뷰 시스템 도입하기

Pre-Review

• 소스 저장소에 올리기 전 리뷰

• 소스 저장소의 기능을 이용해 Patch파일 생성

p4 diff –dcu100 > patch.txt

• Patch 파일을 업로드

Page 20: 임영기님 - 코드 리뷰 시스템 도입하기

Pre-Review(Patch파일 upload)

Page 21: 임영기님 - 코드 리뷰 시스템 도입하기

REST API

• 유저 목록

• 리뷰 목록

• 리뷰 상세 정보

• 그룹 목록 및 상세 정보

• 리뷰 혹은 유저의 일괄 처리

• 정보를 수집해서 각종 통계 처리

Page 22: 임영기님 - 코드 리뷰 시스템 도입하기

REST API – 리뷰 목록 가져오기

curl -X GET

--user your_account:your_password

“http://server:8060/rest-service/reviews-v1/”

>> review_list.xml

Page 23: 임영기님 - 코드 리뷰 시스템 도입하기

REST API – 리뷰 목록 가져오기

Page 24: 임영기님 - 코드 리뷰 시스템 도입하기

REST API – 리뷰 상세 가져오기

curl -X GET

--user your_account:your_password

“.../rest-service/reviews-v1/permaid/details”

>> review_detail.xml

Page 25: 임영기님 - 코드 리뷰 시스템 도입하기

리뷰에 사용된 시간

0

50

100

150

200

250

300

3월 4월 5월 6월

평균리뷰시간

시간(초)

실제 데이터는 아닙니다

Page 26: 임영기님 - 코드 리뷰 시스템 도입하기

개인별 리뷰 개수

역시 실제 데이터가 아닙니다

0

0.5

1

1.5

2

2.5

3

3.5

3월 4월 5월 6월

Page 27: 임영기님 - 코드 리뷰 시스템 도입하기

문제점

• 웹으로 코드 보기가 불편

• 일부 사람들에게 리뷰가 집중되어 정체

• 올리는 사람만 올림

• 관리자가 있어야 함

Page 28: 임영기님 - 코드 리뷰 시스템 도입하기

활성화 되려면

• 프로그램 팀장의 의지

• 코멘트를 많이

• 리뷰 그룹은 5명 정도로 구성

• 담당자가 불편 사항을 바로 해결

• 기본적인 교육

• 신규입사자 교육

• 하루 업무 중 적당 시간을 리뷰에 할당

Page 29: 임영기님 - 코드 리뷰 시스템 도입하기

나쁜 현상

• 모았다가 한꺼번에

• 코멘트 없이 코드만

• 피드백을 받는데 걸리는 시간이 길어짐

Page 30: 임영기님 - 코드 리뷰 시스템 도입하기

좋은 현상

• 사용법이나 불편한 사항이 자주 리포트 됨

• 코멘트로 싸움

• 피드백을 받는데 걸리는 시간이 짧아짐

• 리뷰를 올리는데 시간이 많이 소모

• 리뷰를 하는데 시간이 많이 소모

• 코드 작성 할 때 좀 더 신경을 쓰게 됨 • 자세한 설명을 위해 그림이나 동영상을 첨부

• 간단한 것도 리뷰를 올림

Page 31: 임영기님 - 코드 리뷰 시스템 도입하기

추가적인 용도

• 인터페이스 변경을 알림(라이브러리 등)

• 코드의 변경된 사용법을 질문

Page 32: 임영기님 - 코드 리뷰 시스템 도입하기

감사합니다

Page 33: 임영기님 - 코드 리뷰 시스템 도입하기

Q & A