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

9,628 views

Published on

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,628
On SlideShare
0
From Embeds
0
Number of Embeds
5,106
Actions
Shares
0
Downloads
74
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

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

  1. 1. 코드 리뷰 시스템의 도입 NCsoft 임영기 javawork93@gmail.com 주체 : 온라인 서버 개발자 모임 후원 : 넷텐션
  2. 2. 코드리뷰란• 다른 개발자에게 코드 검토를 요청• 실수를 발견하려는 목적• 코드 퀄리티 향상• 개발자의 스킬 향상
  3. 3. 시스템의 장점• 비동기• 편하게 묻고• 알려주는 사람도 편한 시간을 사용• 인정 사정 없는 지적질• 코드 작성 할 때 좀 더 신경쓰게 됨
  4. 4. 제품들• Code Collaborator• Crucible• Review Board• Code Striker• Malevich• Mondrian
  5. 5. Code Collaborator• 유료• 다양한 기능을 지원(VS addin 등)• Pre-Review(저장소에 commit 없이 리뷰) 에 강점• 상대적으로 고가
  6. 6. Crucible• 유료• 최소한의 기능만 지원• Pre-Review 불편(소스 저장소에서 patch파 일을 만들어서 올려야 함)• 상대적으로 저가• 설치가 간단하고 쉬운 인터페이스• 고객 서포트 좋음
  7. 7. 무료 제품들• Review Board• Code Striker• Malevich• Mondrian
  8. 8. Crucible을 이용한 리뷰 프로세스• 리뷰 올리기• 리뷰어 검토• 코멘트• Complete• Summarize• Close
  9. 9. Review 생성
  10. 10. Review 리소스 선택
  11. 11. Commit 목록에서 선택
  12. 12. 새로운 소스 추가
  13. 13. 기존 소스 삭제
  14. 14. 코멘트 달기
  15. 15. 중요도 선택
  16. 16. Review 완료(Reviewer)
  17. 17. Review 완료(Review 작성자)
  18. 18. Review 닫기
  19. 19. Pre-Review• 소스 저장소에 올리기 전 리뷰• 소스 저장소의 기능을 이용해 Patch파일 생성 p4 diff –dcu100 > patch.txt• Patch 파일을 업로드
  20. 20. Pre-Review(Patch파일 upload)
  21. 21. REST API• 유저 목록• 리뷰 목록• 리뷰 상세 정보• 그룹 목록 및 상세 정보• 리뷰 혹은 유저의 일괄 처리• 정보를 수집해서 각종 통계 처리
  22. 22. REST API – 리뷰 목록 가져오기curl -X GET--user your_account:your_password“http://server:8060/rest-service/reviews-v1/”>> review_list.xml
  23. 23. REST API – 리뷰 목록 가져오기
  24. 24. REST API – 리뷰 상세 가져오기curl -X GET--user your_account:your_password“.../rest-service/reviews-v1/permaid/details”>> review_detail.xml
  25. 25. 리뷰에 사용된 시간 평균리뷰시간300250200150 시간(초)10050 0 3월 4월 5월 6월 실제 데이터는 아닙니다
  26. 26. 개인별 리뷰 개수3.5 32.5 21.5 10.5 0 3월 4월 5월 6월 역시 실제 데이터가 아닙니다
  27. 27. 문제점• 웹으로 코드 보기가 불편• 일부 사람들에게 리뷰가 집중되어 정체• 올리는 사람만 올림• 관리자가 있어야 함
  28. 28. 활성화 되려면• 프로그램 팀장의 의지• 코멘트를 많이• 리뷰 그룹은 5명 정도로 구성• 담당자가 불편 사항을 바로 해결• 기본적인 교육• 신규입사자 교육• 하루 업무 중 적당 시간을 리뷰에 할당
  29. 29. 나쁜 현상• 모았다가 한꺼번에• 코멘트 없이 코드만• 피드백을 받는데 걸리는 시간이 길어짐
  30. 30. 좋은 현상• 사용법이나 불편한 사항이 자주 리포트 됨• 코멘트로 싸움• 피드백을 받는데 걸리는 시간이 짧아짐• 리뷰를 올리는데 시간이 많이 소모• 리뷰를 하는데 시간이 많이 소모• 코드 작성 할 때 좀 더 신경을 쓰게 됨• 자세한 설명을 위해 그림이나 동영상을 첨부• 간단한 것도 리뷰를 올림
  31. 31. 추가적인 용도• 인터페이스 변경을 알림(라이브러리 등)• 코드의 변경된 사용법을 질문
  32. 32. 감사합니다
  33. 33. Q&A

×