메뉴 건너뛰기

소스코드에 대한 리뷰는 아주 오래전부터 중요하게 여겨진 사항이다. 소프트웨어 공학에서는 워크쓰루(walkthroughts)나 인스팩션(Inspection)과 같은 형태의 리뷰가 소프트웨어 소스 코드의 품질을 높이는데 중요한 역할을 한다고 보고 있다. 국내에서도 2000년대 중반 애자일(Agile)이 유행하면서, 짝프로그래밍(Pair Programming)과 같은 코드리뷰가 인기를 얻기도 했지만, 촉박하고 일정과 부족한 리소스는 이를 반영하는 것을 힘들게 하였다.
 
최근 소프트웨어는 점점 복잡해지고 빠른 릴리즈를 가지게 되면서 지속적으로 통합하고 배포하게 된다. 하지만 여러 개발자들이 개발한 컴포넌트를 통합하여 배포하는 것은 많은 시간을 소모하게 한다. 이러한 이슈를 기반으로 CI(Continuous Integration)이 유행하기 시작했으며, 형상 관리 서버에 체크인을 하기 전에 소스 코드의 점검은 개발에 있어서 중요한 사항으로 자리 잡았다.
 
이 문서는 구글의 안드로이드 프로젝트에서 사용하고 있는 코드리뷰 소프트웨어인 Gerrit에 대한 문서이다. 국내의 안드로이드 진영에서 Gerrit은 이미 많이 사용되고 있을 것이다. 이는 Git, Gitweb, Jenkins와 쉽게 연동되며, 다른 코드 리뷰 도구보다 리뷰를 위한 방식이 파워풀하기 때문이다. 하지만, 까다로운 설치와 설정 때문에 도입을 꺼려하는 경향이 있다. 아마도 리눅스만 지원을 하고, 직접적으로 설정해야하는 인증 방식 때문에 자신이 원하는 설치 방법을 가이드 하는 문서를 찾기 힘들어서 일 것이다.

gerrit.png

그러한 이유 때문에 이 문서는 Gerrit을 설치하기 위해 필자가 선호하는 방식으로 전체적인 가이드를 제공한다. 그리고 이를 통해 Gerrit 코드리뷰 시스템을 도입하는데 도움이 되었으면 한다.

1. 설치 환경

이 문서에서 Gerrit에 대한 설치 환경을 다음과 같다.
 
  • 운영체제 : 우분투(Ubuntu) 12.04 64bit
  • Gerrit : Gerrit 2.7-rc5

설치의 편의성을 위해, Gerrit과 Git을 단일 서버에 구성하였으며, 하나의 사용자로 모든 설치를 수행하였다.
 

2. Gerrit을 설치하기 전에 고려해야할 사항

앞서 잠깐 설명한데로 Gerrit을 설치하기 위해서는 직접적으로 처리해야하는 몇몇 고려해야할 사항들이 있다. 당장 사용하기 위해서는 데이터베이스와 인증, 서버가 그것이다. 이는 사용자가 직접 선택해서 설치 해야한다. 아래를 참고하자.
 

2.1 데이터베이스

Gerrit에서 지원하는 데이터베이스는 H2, MySQL, PostgreSQL 3가지이다. 
H2는 번들로 제공되며, Gerrit 설치 시, 자동으로 설치가되지만, MySQL과 PostgreSQL은 직접적으로 설치하고 사용자와 데이터베이스를 생성해야한다. 이 문서는 H2 데이터베이스로 설치를 진행하였으며, MySQL과 PostgreSQL은 차후에 다루도록 하겠다.
 

2.2 인증 방식

Gerrit에서 인증 방식 또한 직접적으로 고려해야한다. 인증 방식에서는 Open ID, HTTP, LDAP이 사용될 수 있다. Open ID가 기본 값이며, 쉽게 사용할 수 있다. 조직 내부에서 사용할 것이라면, HTTP 인증이나 LDAP을 사용하는 것도 좋다. 이 문서에는 HTTP 인증을 사용하여 설치를 진행하였으며, Open ID와 LDAP을 사용한 방법은 차후에 다루도록 하겠다.
 

2.3 서버

Gerrit은 웹기반의 소프트웨어이기 때문에 구동을 위한 J2EE 서블릿 컨테이너가 필요하다. 기본적으로는 Jetty 서블릿 컨테이너가 포함되어 있으며, Jetty, Tomcat 혹은 다양한 상업용 서버를 지원하고 있다. 이 문서에서는 기본 서버 및 Apache를 이용하여 Proxy를 처리한다. Tomcat 혹은 직접 설치한 서블릿 컨테이너에 대한 방법은 차후에 다루도록 하겠다.
 

3. 설치 준비 사항

이 문서는 우분투를 처음 설치한 후 부터 Gerrit 설치까지의 전체적인 부분을 다루며, Java, SSH, Apache2, Git설치 및 설정이 사전 준비사항이 된다. 
 

3.1 Java 설치

일반적으로 우분투에서 Java를 설치하면, Open Java가 설치된다. 어떠한 Java를 설치해도 큰 문제는 없다. 하지만 필자의 경우, Orcale Java를 선호하기에, Oracle Java 7 버전을 설치하였다.
 
Java 설치를 위해 Apt 리파지토리 업데이트 수행

 $ sudo add-apt-repository ppa:webupd8team/java
 $ sudo apt-get update


Java 설치와 버전 확인


 $ sudo apt-get install oracle-java7-installer

 $ java -version


3.2 SSH 서버 설치

이 문서에서는 Git, Gerrit에서 SSH 사용을 위해, Open SSH를 설치한다. 


Open SSH 설치


 $ sudo apt-get install openssh-server


SSH 방화벽 예외 등록


$ sudo ufw allow ssh


3.3 Apache 설치

Gerrit에서 HTTP 인증을 처리하기 위해 Apache를 설치한다. Gerrit 사이트의 접속 요청이 오면, Apache에서 인증 처리를 해주고 Gerrit 사이트로 접속을 넘기기 위해, Proxy 설정을 한다. 

 

Apache2 설치


 $ sudo apt-get install apache2


Apache2 설정


 $ sudo apt-get install libapache2-mod-proxy-html
 $ sudo a2enmod proxy
 $ sudo a2enmod proxy_http
 $ sudo service apache2 restart


3.4 Gerrit 접속을 위한 Hosts 설정

만약 도메인이 있다면, 상관없겠지만, Gerrit 접속을 좀 더 편리하게 하기 위해서 Hosts 파일을 설정해 준다. 

필자는 http://gerrit.pseg.org 를 웹브라우저에 입력 시, Gerrit에 접속하기를 희망하기 때문에 아래와 같이 hosts 파일을 수정하였다.

 

Hosts 수정


$ sudo nano /etc/hosts

 

 127.0.0.1 localhost gerrit.pseg.or.kr


웹브라우저에 접속하여, gerrit.pseg.or.kr 주소를 입력하고 화면이 나타나는지를 확인한다.


3.5 Git 설치

Git이 설치가 되지 않았다면, 최신 버전의 Git을 설치하기 위해 아래 명령을 수행한다.

 

APT repository를 업데이트


 $ sudo add-apt-repository ppa:git-core/ppa
 $ sudo apt-get update


git core와 review를 설치 및 버전 확인 


 $ sudo apt-get install git-core git-review

 $ git version


여기까지 1부를 마치고, 이어 2부에서는 Gerrit 인증을 위한 HTTP 설정에 대해서 작성할 예정이다.

Who's PSEG

profile

PSEG는 Practical Software Engineering Group의 약자입니다. 

이론을 넘어 실용적으로 활용할 수 있는 소프트웨어 공학을 공유하는게 그룹의 목적입니다.

Atachment
첨부 '1'
?
  • ?
    블루 2016.11.25 00:39
    Gerrit을 대처할만한 Git 저장소 관리 도구랑 코드리뷰 도구가 없을까요.?
  • profile
    Tom 2016.11.25 11:23
    Gerrit이 Pre-commit Code Review를 자동으로 만들어 주는 측면에서 인기가 많습니다.
    하지만 아시다시피 저장소 관리는 그닥 편하지는 않습니다.
    Bitbicket, Github, Gitlab이 요즘 인기가 많은 Pull Request 기반으로 Code Review를 지원합니다.
    Gerrit의 Code Review와 Pull Request의 Code Review 방식은 각각 장단점이 있기 때문에 반드시 평가를 해보고 사용해보기를 권합니다.
  • profile
    Tom 2016.11.25 11:25
    대표적인 Pull Request 방식의 Bitbucket에 대한 리뷰 문서이니 한번 살펴보시기 바랍니다.

    http://pseg.or.kr/pseg/atlassian/7134

 


  1. 레드마인(Redmine) 플러그인 설치와 삭제

    이 문서는 레드마인(Redmine) 플러그인 설치 및 삭제가이드를 제공합니다. 1. 다운로드플러그인 다운로드는 공식사이트인 아래 링크를 이용하시면 됩니다. 500여개의 다양한 플러그인이 있습니다. http://www.redmine.org/plugins?page=1 2....
    Date2014.07.18 ByPSEG Reply2 Views25213
    Read More
  2. 코드품질 가시화 - SonarQube 데모용 버전 설치하기

    이 문서는 소프트웨어의 개발에서 소스코드의 품질을 가시화할 수 있는 도구인 SonarQube를 데모 용도로 설치할 수 있는 가이드를 제공합니다. 1. 요구사항SonarQube를 설치하기 위해서는 아래의 최소 요구사항을 만족해야합니다. Java : Oracle JRE 6 버전 이...
    Date2014.07.16 ByPSEG Reply2 Views10374
    Read More
  3. Bitnami 레드마인(Redmine) 설치

    이 문서는 프로젝트 관리 및 요구사항 관리, 테스트 관리 등으로 활용할 수 있는 레드마인을 쉽게 설치할 수 있는 패키지인 Bitnami 레드마인 설치 방법에 대해서 작성합니다. Bitnami 버전이 아닌 직접 설치를 원하시는 분들은 아래의 링크를 확인하시기 바랍...
    Date2014.07.14 ByPSEG Reply5 Views26329
    Read More
  4. 마이린(Mylyn) 플러그인 설치

    이 문서는 마이린(Mylyn)에서 활용가능한 플러그인과 그 설치법에 대해서 간단하게 다룹니다. Mylyn 플러그인 리스트현재 최신버전의 마이린(Mylyn)에서 지원하는 플러그인들은 다음과 같습니다. 필자의 경우 관심있게 보고 테스트 해보고 싶은 플러그인...
    Date2014.07.11 ByPSEG Reply1 Views5306
    Read More
  5. Redmine 설치 2부 - Ruby 및 Redmine 설치

    이 문서 Redmine을 Windows 계열의 OS에 설치하는 가이드를 제공한다. 필자는 Windows Server 2008에 설치를 하였으며, 가능한 모든 소프트웨어를 최상위 버전으로 설치할려고 노력하였다. Redmine 설치 1부 - 준비 및 MySQL 설치 Redmine 설치 2부 - ...
    Date2014.07.01 ByPSEG Reply9 Views11622
    Read More
  6. Redmine 설치 1부 - 준비 및 MySQL 설치

    이 문서 Redmine을 Windows 계열의 OS에 설치하는 가이드를 제공한다. 필자는 Windows Server 2008에 설치를 하였으며, 이 문서를 읽는 독자들이 어려움 없이 쉽게 설치가 가능하도록 하기 위해, 4번 가량 설치를 수행하였다. Redmine을 설치하면, Ruby와 MySQ...
    Date2014.07.01 ByPSEG Reply0 Views20934
    Read More
  7. Gerrit 코드리뷰(Code Review) 설치 가이드 4부 - Gerrit 설정

    이 문서는 Gerrit 코드(Code Review) 설치 가이드 4부인 Gerrit을 기본적으로 사용하기 위해서 설정해야할 부분에 대해서 설명한다. 1. 사용자 등록먼저 Gerrit을 사용할 사용자를 등록한다. Gerrit을 사용할 사용자는 개발자가 될 수 있고, 단순히 코드를 리...
    Date2014.05.07 ByPSEG Reply1 Views15777
    Read More
  8. Gerrit 코드리뷰(Code Review) 설치 가이드 3부 - Gerrit 설치

    이 문서는 Gerrit 코드리뷰(Code Review) 설치 가이드 4부 중 3번째인 Gerrit 설치에 대하여 다룬다. 앞의 1, 2부가 Gerrit 설치를 위한 준비 단계였으며, Gerrit의 원활한 설치 및 시작을 위해 필수적인 내용에 대하여 다루었다. 1. 다운로드현재 Gerrit은 원...
    Date2014.05.07 ByPSEG Reply0 Views11391
    Read More
  9. Gerrit 코드리뷰(Code Review) 설치 가이드 2부 - Http 인증 설정

    이 문서는 Gerrit 코드리뷰(Code Review) 설치 가이드 1부 - 준비에 이어서 2부 Http 인증 설정에 대하여 다룬다. 앞의 1부 - 준비에서 설명한데로, Gerrit 접속하기 위해서는 인증 방식을 선택할 필요가 있다. 인증 방식은 openid, openid_sso, ...
    Date2014.05.07 ByPSEG Reply0 Views10675
    Read More
  10. Gerrit 코드리뷰(Code Review) 설치 가이드 1부 - 준비

    소스코드에 대한 리뷰는 아주 오래전부터 중요하게 여겨진 사항이다. 소프트웨어 공학에서는 워크쓰루(walkthroughts)나 인스팩션(Inspection)과 같은 형태의 리뷰가 소프트웨어 소스 코드의 품질을 높이는데 중요한 역할을 한다고 보고 있다. 국내에서도 2000...
    Date2014.05.07 ByPSEG Reply3 Views26677
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4