Top

Gerrit 코드 리뷰 [웹 기반 협업형 온라인 코드 리뷰 시스템]

  • 원서명Learning Gerrit Code Review (ISBN 9781783289479)
  • 지은이루카 밀라네시오(Luca Milanesio)
  • 옮긴이오명운
  • ISBN : 9788960776722
  • 18,000원
  • 2015년 02월 17일 펴냄
  • 페이퍼백 | 172쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

요약

코드 리뷰는 작성한 소스 코드를 체계적으로 점검하는 활동으로, 소프트웨어의 품질을 높이는 데 대단히 효과적이라는 공감대는 형성되어 있으면서도 실제 실천은 잘 하지 않게 되는 소프트웨어 개발 활동이다. 이 책에서는 코드 리뷰를 웹 기반의 환경에서 온라인으로 실시할 수 있는 게릿(Gerrit) 코드 리뷰의 소개와 설치 및 설정, 실제 코드 리뷰 활동의 작업 흐름에 대한 실질적인 정보를 얻을 수 있다.

이 책에서 다루는 내용

■ 게릿의 기본 설치 및 설정

■ 개발 조직에서 코드 검토의 장점을 극대화하는 방법

■ 액티브 디렉토리(Active Directory)처럼 널리 사용되는 LDAP 레지스트리와 게릿을 연동하는 방법

■ 게릿이 OpenID 인증을 사용하도록 설정하는 방법

■ 게릿 프로젝트의 보안 사항과 게릿 사용자의 역할 및 권한 확인

■ 게릿을 깃 SSH나 HTTPS 서버로 사용하는 방법

■ 아파치 HTTP 리버스 프록시 환경에서 게릿을 설치하는 방법

■ 동시 변경에 대한 처리와 리베이스 의존 관계

■ 게릿 코드 검토 라이프사이클의 도입 및 첫 번째 패치 세트 적용

이 책의 대상 독자

이 책은 팀 리더, 개발자, 형상 관리 담당자 등 게릿 코드 리뷰를 도입해 조직의 협업을 개선하려는 의지를 지닌 모두를 대상으로 한다.

이 책의 구성

1장, ‘코드 검토 소개’에서는 게릿 코드 검토의 기초 개념과 용어, 장점, 역할과 개발팀이 준수해야 할 내용을 소개한다.

2장, ‘환경 설정과 시작’에서는 처음으로 샌드박스(sandbox) 환경에서 게릿을 설치하고 설정하는 과정을 상세하게 설명한다. 초기 관리자 계정 저장소 하나를 생성하는 것을 시작으로 첫 번째 변경 검토를 푸시(push)해 본다.

3장. ‘사용자 인증’에서는 사용자 인증과 프로파일 등록을 수행하기 위해 기존의 인증 시스템과 통합하는 방법을 설명한다. 인증 절차가 어떻게 진행하는지 살펴보고 LDAP, OpenID나 다른 서드파티 인증 시스템과 연결하기 위해 어떤 설정이 가능한지 알아본다.

4장, ‘SSH와 HTTPS를 이용한 접근’에서는 SSH나 HTTPS처럼 보안이 강화된 프로토콜을 사용해서 깃 클라이언트로부터의 코드 검토 활동에 대한 게릿의 보안을 강화하는 방법을 설명한다.

5장, ‘프로젝트 권한 설정’에서는 소스 코드 저장소에 대한 역할 기반 접근을 실현하기 위해 프로젝트 템플릿과 그룹을 효과적으로 이용하는 방법을 설명한다. 코드 검토를 위한 프로젝트와 팀을 조직화하기 위해 게릿 권한 조합과 깃의 참조 스펙(ref-specs)의 접근 제어 목록과의 관계에 대해 알아본다.

6장, ‘변경 및 코드 검토 작업 흐름’에서는 게릿에서 코드 검토 작업 흐름이 어떻게 동작하는지 단계별로 차근차근 알아본다. 검토자들끼리 사용하는 용어와 검토자와 기여자가 소통하는 방법에 대해서도 설명한다.

7장, ‘서브밋 유형과 동시성’에서는 검토 과정에서 동시성과 관련하여 발생하는 다양한 상황을 분석하고 게릿으로 어떻게 동시성 문제를 관리하는지 알아본다.

부록 A. ‘깃허브 연동’에서는 게릿을 외부의 깃허브 서버에 어떻게 연결하는지 예제를 통해 알아보고, 게릿 코드 검토 작업흐름과 깃허브를 함께 사용하는 데 필요한 가이드를 제공한다.

부록 B, ‘젠킨스 연동’에서는 검토 단계에서 게릿의 변경 사항을 젠킨스(Jenkins)가 직접 가져와서 검증(validation)을 자동화할 수 있는 방법을 알려준다.

부록 C, ‘깃 기초’에서는 깃 버전 관리 시스템의 개념과 용어에 대한 기초 지식을 알려줌으로써 처음 시작하는 사람이 깃을 쉽게 설정하고 사용할 수 있게 해준다.

저자/역자 소개

저자 서문

오늘날 소프트웨어를 개발하는 것은 글로벌 규모로 분산되어 진행되는 활동 그 이상이다. 같은 장소에서 일하는 팀에 적합한 애자일 방법론과 개발자들이 더 소셜한 방식으로 공유하고 토론할 수 있는 도구가 필요하다.

리눅스 오픈소스 프로젝트 개발에 사용하기 위해 리누스 토발즈(Linus Torvalds)가 2005년에 설계한 버전 관리 시스템인 깃(Git)이 널리 확산됨에 따라, 개발자들이 더 개방된 방식으로 코드를 개발하고 공유할 수 있게 되었다. 깃허브(GitHub)와 게릿 코드 검토(Gerrit Code Review)는 소셜 코딩 혁명의 초석이 되었고, 가장 성공적인 오픈소스 모바일 운영체제인 안드로이드의 소스 코드 저장소 및 개발에 사용되어 그 성공의 기반이 되었다.

이 책은 애자일 개발팀에서의 코드 검토 작업흐름의 장점을 알아보고, 효율적으로 코드를 검토하기 위한 간단한 절차를 제공한다. 내부 네트워크나 인터넷 환경에서 가장 전형적인 설치 설정으로 게릿을 설치하는 절차를 알려주고, 기존에 사용 중인 인증 시스템이나 지속적 통합 시스템과의 연계를 위한 설정 예제도 포함하고 있다. 이 책을 따라 하면 게릿 서버를 실제 개발팀에 적용할 수 있는 수준으로 완전하게 설정할 수 있게 된다.

게릿과 깃허브를 효율적으로 함께 사용하는 방법을 배워서 깃허브 플랫폼에서 제공하는 협업 도구와 더불어 더 일관성 있게 코드 검토를 수행할 수 있다. 이 두 가지 도구를 함께 사용함으로써 깃허브에 있는 계정을 재사용할 수 있고 여러분이 속한 깃허브의 커뮤니티를 개발 라이프사이클에 통합하여 외부 기여자들과도 협력할 수 있다.

이 책은 개발 과정에서 게릿을 매용 사용하는 데 필요한 설치와 설정 등 모든 것을 알려준다. 협업 및 같은 공간 또는 원격 공간에서의 협업자들의 집합적인 소스 코드 오너십의 개념과 의미에 대해서도 소개한다.

저자 소개

루카 밀라네시오(Luca Milanesio)

기업을 위한 깃(Git)과 게릿(Gerrit) 경쟁력 제고 분야의 선두를 달리고 있는 게릿포지(GerritForge)의 임원이자 공동설립자다. 전 세계의 대형 엔터프라이즈 솔루션 개발에서 개발 관리, 소프트웨어 형상 관리, 소프트웨어 개발 생명주기 분야에서 20년 이상의 현장 실무 경험을 가지고 있다. 게릿포지를 설립하기 전에는 이태리와 영국 등지에 있는 프리미어(Primeur) 사의 전자결제를 위한 보안과 준수 플랫폼을 담당하는 기술 고문 및 제품 수석 임원을 역임했다. 게릿포지 창업 이후에는 게릿 커뮤니티에 기여하면서 세계적인 주요 통신, 은행 및 산업 분야를 포함한 대형 엔터프라이즈 개발에 적용 가능한 코드 검토 작업 흐름을 도입했다. 깃을 대형 엔터프라이즈 개발에 확장하여 쓸 수 있도록 깃의 16가지 패턴과 안티패턴을 정리한 필수 가이드인 『Git and Anti-Patterns(깃 패턴과 안티패턴)』의 저자이기도 하다. 이 책에서는 하이브리드 SCM, 깃 챔피언, 축복받은 저장소, 기능별 토픽 브랜치, 애플리케이션 라이프사이클 관리(ALM, Application Lifecycle Management) 등의 패턴을 설명한다.

옮긴이의 말

SNS가 발달한 요즘 인터넷에서는 개발자에 대한 유머를 심심치 않게 볼 수 있다. 외국의 괴짜 개발자에 대한 이야기, 열악한 국내 소프트웨어 개발 환경에 한 자조적인 이야기 등 꽤나 다양한 주제에 대한 재미난 이야기를 들을 수 있는데, 그 재미를 관통하는 문맥을 한 가지만 고르라고 하면 ‘개발자의 자부심’을 꼽을 수 있을 것 같다.

코드 리뷰는 아무리 조심스럽게 한다고 할지라도, 자부심 높은 개발자들끼리 서로의 코드에 대해 다양한 의견을 나누다 보면 본질적인 목적보다 그 자부심에 대한 전쟁으로 번지는 경우가 많다. 특히나 활발한 토론보다, 스스로를 낮추며 적극적인 의견 개진을 삼가는 것이 미덕이라고 받아들여지는 국내 분위기상 코드 리뷰가 자리잡기는 더 어려울 수 있다고 본다.

자부심과 관계된 일이라면 직접적인 대면에 의한 의견을 나누는 것보다는 간접적인 방식으로 의견을 나누는 것이 훨씬 더 나은 차선책이 될 수 있다. 게릿 코드 리뷰는 웹을 통해 간접적인 방식으로 가장 구체적이고 실질적인 의견을 나눌 수 있는 환경을 제공해준다. 게릿 코드 리뷰를 프로젝트에서 잘 활용하면 개발자의 자부심을 지키면서도 소프트웨어의 품질을 향상시킬 수 있고, 개발자 스스로도 코드 리뷰를 통해 다양한 의견을 주고받으면서 발전할 수 있다.

이 책은 게릿 코드 리뷰의 소개와 실제 적용을 위한 다양한 환경에서의 설치 및 설정 방법뿐 아니라, 실제 코드 리뷰 활동 진행에 필요한 권장 작업 흐름과 개발자의 자부심을 해치지 않는 코드 리뷰 에티켓까지 실질적인 정보를 전달해주고 있다. 이 책을 통해 코드 리뷰가 소프트웨어 개발 과정에서 선택이 아닌 필수 활동으로 자리잡을 수 있기를 기대한다.

옮긴이 소개

오명운

천성을 모르고 다른 일을 하다가 한참 만에 다시 돌아온 개발자다. 프론트엔드와 백엔드를 넘나들며 데이터 시각화, WebGL, 빅데이터 분야에 많은 관심이 많고, 기술서 번역도 꾸준히 하고 있다. 백발이 되어서도 개발과 번역을 하며 수수하게 늙어가는 게 꿈이다. 에이콘출판사에서 출간한 『d3.js를 이용한 데이터 시각화』(2014)를 번역했다.

목차

목차
  • 1 코드 검토 소개
    • 코드 검토의 장점
      • 빌드 안정성
      • 지식 공유
      • 외부로부터의 신속한 피드백
      • 코드 스타일의 공유
      • 팀 참여
      • 품질 중심의 코드 선택
    • 코드 검토 역할
      • 기여자
      • 검토자
      • 커미터
      • 관리자
      • 리뷰 레이블과 역할 설정
    • 검토 용어와 작업 흐름
      • 프로젝트
      • 변경
      • 코드 검토 표식
      • 변경 제출
      • 변경 병합
      • 변경 폐기
    • 정리

  • 2 환경 설정과 시작
    • 사전 준비 요건
    • 게릿 다운로드
    • 게릿 초기 설정
      • 설치 완료
    • 로그인과 사용자 프로파일 생성
    • 깃 사용을 위한 HTTP 비밀번호 생성
    • 첫 번째 프로젝트 생성 및 저장소 복제
    • 정리

  • 3 사용자 인증
    • 게릿 사용자 인증 작동 원리
      • 깃과 게릿 UI 인증
      • 게릿 내부 계정
    • 인터넷을 통한 OpenID 인증
    • OpenID 싱글 사인 온
    • 내부 네트워크에서의 게릿 인증
    • LDAP 설정
      • 읽기 전용 LDAP 사용자 정보
    • 액티브 디렉토리
    • 서드파티 인증 옵션
      • 예제: 아파치 HTTP 리버스 프록시
      • 리버스 프록시와 게릿 설정
      • 게릿 HTTP 인증 활성화
      • 사용자 정보 검색
    • 정리

  • 4 SSH와 HTTP를 이용한 접근
    • 강력한 보안 설정 적용
    • Bouncy Castle Security 설치
    • SSH의 사용
      • 깃/SSH 클라이언트 키
      • 게릿 사용자 프로파일에 SSH 키 등록
      • 깃/SSH를 통한 저장소 복제
    • HTTPS 활성화
      • HTTP/S 리버스 프록시
      • 게릿의 HTTP/S 지원
    • 정리

  • 5 프로젝트 권한 설정
    • 게릿 권한 구조 이해
    • 프로젝트 권한 설정
      • 전체 프로젝트 권한
      • 깃과 게릿 레퍼런스
      • 깃 권한
      • 코드 검토 권한
    • 그룹 관리
      • 사용자 생성 그룹
      • 외부 그룹(그룹 백엔드)
    • 효율적으로 그룹 계층 사용
    • 프로젝트 보안 템플릿
    • 정리

  • 6 변경 및 코드 검토 작업흐름
    • 게릿 코드 검토 역할 및 작업흐름
      • 단계별 검토 작업흐름
        • 역할
        • 작업흐름 10단계
    • 코드 검토를 위한 게릿 브랜치 이름 공간
    • 토픽 설정
    • 검토자 추가
    • 검토 레이블
      • 검토
    • 검토 의견과 변경에 대한 평가
      • 검토 예절
      • 검토 공개 및 평가
    • 검토 중인 코드의 수정
    • 정리

  • 7 서브밋 유형과 동시성
    • 서브밋 유형
      • 패스트 포워드만 허용
      • 필요 시 리베이스
      • 필요 시 머지/언제나 머지
      • 체리 픽
    • 동시성을 고려한 코드 리뷰
      • 변경 의존성 추적
      • 게릿의 변경 의존성 실무
      • 게릿 의존성 그래프
      • 변경 그래프 갱신 관리
    • 정리

  • 부록 A 깃허브와 연동
    • 깃허브 작업 흐름
      • 깃허브 논란
    • 깃허브 인증
      • 깃허브 플러그인 빌드
      • 깃허브 OAuth 라이브러리 설치
      • 깃허브 플러그인 설치
      • 게릿을 깃허브 OAuth 애플리케이션으로 등록
        • 깃허브 OAuth 설정을 위한 게릿 초기 설정 실행
      • 게릿 사용을 위한 깃허브 로그인
    • 깃허브로의 복제
      • 게릿 복제 플러그인 설정
      • 깃허브에 푸시하기 위한 게릿 인증
      • 게릿 복제 실행
      • 검토 및 깃허브 브랜치 머지
    • gerrithub.io에서 게릿과 깃허브 사용
    • 정리

  • 부록 B 젠킨스 연동
    • 젠킨스와 게릿의 작업 흐름
    • 젠킨스 게릿 플러그인 설치
      • 젠킨스 플러그인 설치
      • 게릿 트리거 플러그인
        • 젠킨스 연동을 위한 게릿 설정
        • 게릿 트리거 플러그인 설정
    • 게릿을 통한 빌드 트리거
      • 게릿 트리거 설정
      • 깃 플러그인 설정
    • 코드 검증 자동화
    • 정리

  • 부록 C 깃 기초
    • P2P 분산 버전 관리 시스템
    • 깃 설치
      • 저장소 생성
      • 깃에 파일 추가
      • 저장소 이력 확인
      • 파일 편집 및 변경
    • 깃의 기초 개념
    • 깃 브랜치
    • 패스트 포워드, 머지, 리베이스, 체리 픽
    • 원격 저장소
      • 원격 저장소로 브랜치 푸시
      • 원격 저장소에서 가져오기
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안