본문 바로가기

Gerrit/Gerrit 일반6

1. 코드 리뷰 새로 이직한 회사에 소프트웨어 개발 시스템을 구축해야 할 일이 생겼다. (이전 회사는 다행히도 대기업이었다) 규모가 크지 않은 회사이기도 하고 소프트웨어 개발이 주업이 아닌 회사라서 소프트웨어 관련 인프라가 전혀 없었다. 어디서부터 손을 대야 할지 막막했다. 아무것도 없다면... 가장 먼저 갖추어야 될건 무엇일까...? SW 개발자라면 소스 코드가 자신의 생명과도 같은 것이니, 이 코드 관리가 제일 우선 되어야 하지 않을까? 처음 맞이한 소스 코드 관리 실태는 처참했다. (내 직장을 욕보일 수 있어 자세한 건 생략) 하루빨리 형상 관리 툴을 도입하고 이런 저런 인프라를 만들어야 한다는 생각이 들었다. 그런데.... 인프라가 갖춰지면 과연 다음 스텝을 나갈 수 있을까? 란 의구심이 들었다. 인프라도 인프라.. 2023. 10. 17.
2. Gerrit 이란? 1. 정의 Google 에서 개발한 웹UI 기반의 코드 리뷰 시스템이다. 이름의 유래애 대해서는 명확히 밝혀진것은 없다. 두가지 설이 있는데, 1) 네덜란드어 gerrit 에서 유래 : 네덜란드어로 gerrit 이라는 단어가 있는데, "spear rule" 또는 "ruler with a spear" 이라는 뜻이다. 검토와 판단의 과정을 통해 프로젝트에 기여하는 규칙을 관리하고, 이를 통해 프로젝트의 품질을 개선한다는 측면에서 상징적인 의미를 가진다는 설 2) Git + Error 의 조합 : Gerrit 은 결국 코드 저장소로 Git 을 내부적으로 관리하고 있기에 Git 으로 관리하는 에러 review 시스템의 조합이라는 설 , G + err(or) + it 2. 역사 Google 에서 AOSP (And.. 2023. 10. 17.
3. Gerrit Workflow 지금까지 서버에서 Gerrit 을 설치하고 설정하는 방법에 대해 알아보았다. 이제 서버의 Gerrit project 를 로컬에서 clone 해서 작업하고 코드리뷰 받는 방법에 대해 알아 보도록 하자. 1. Gerrit repository 에서 clone 앞서 잠깐 언급했듯이 clone with commit-msg hook 으로 작업 시작 2. Local working directory 에서 clone 실행 3. 필요한 작업을 하고 commit 여기까지는 내 로컬 PC 에서의 작업이다. 즉, 내 로컬 PC의 git 저장소에 내 수정사항을 반영한 상황이다. 이제 이 로컬에 반영된 사항을 gerrit 서버로 등록해야 한다. 4. 서버에 push 원격 저장소에 수정사항을 반영하는것은 push 명령을 통해 이루어.. 2023. 10. 17.
4. Git vs. Gerrit Git 은 정말 유명한 형상 관리 툴이다. (가장 훌륭하다고도 할 수 있다) Git을 베이스로 하는 Github 는 SW 개발자들에게는 필수 코스로 자리잡았다 (Github 는 2018년에 마이크로소프트사가 75억 달러에 인수했다) Gerrit 도 GerritHub 가 있고 여기 역시 매우 활성화 되어있다. 얘기 하고픈건, Git 과 Gerrit 중에 어느것을 선택해야 하느냐? 이다. 요즘은 둘을 병합해서 사용하기도 한다. (사내 게릿 구축 + Github 연동) 여튼, 둘중에 하나만 사용하건, 둘다 사용하건, 의사결정을 하기 위해서는 둘의 차이를 알아야 한다. 여러 차이와 각각의 장단점이 있겠지만 각설하고, 협업의 workflow 에 대해서만 얘기하고자 한다. Github 협업 모델 다른 저장소의 내용.. 2023. 10. 17.
5. Gerrit 점수에 대한 단상 게릿은..., 나아가 코드 리뷰는 양날의 검이다. 긍정적인 부분만 부각될때는 한없이 좋은 제도지만 자칫 잘못하다가는 개발자들간에 암투가 벌어지고 결국 사이마저 틀어져 버릴 수도 있다. (실제로 이런일이 비일비재하게 일어난다. 대기업에서는 코드 리뷰하다가 파트 하나가 통째로 날라가버리는 사태도 생겼다) 게릿은 -2 ~ +2 점까지 리뷰어 혹은 시스템이 점수를 주게 되어있다. 이 점수는 팀에서 의미 부여하기 나름이지만, 분쟁이 안생기도록 , 팀의 리더는 꼭 한번 깊게 생각해 주길 바란다. 우선 Luca milanesio 라는 사람이 쓴 [Gerrit 코드 리뷰] 라는 책에서의 정의를 살펴보자. (이 책 어렵게 구했다.) Luca Milanesio : GerritForge 의 공동 설립자다. 게릿 커뮤니티에 .. 2023. 10. 17.
6. Change ID Gerrit 은 Change-ID 라는게 있다. 이게 뭐고 Git 의 commit-id 랑은 어떤 차이점이 있는지 알아보자. 우선 git 의 commit-id 부터 알아보자. Git은 SHA-1 해시를 사용하여 체크섬을 만든다. 만든 체크섬은 40자 길이의 16진수 문자열이다. 파일의 내용이나 디렉토리 구조를 이용하여 체크섬을 구한다. SHA-1은 아래처럼 생겼다. 24b9da6552252987aa493b52f8696cd6d3b00373 commit id 는 개발자가 수정사항을 git repository 에 반영할때마다 생성되는 고유 ID 다. 이 고유 ID 로 Git 은 해당 수정사항을 관리한다. git log 를 통해 보면 쉽게 id 를 확인할 수 있다. 확인을 위해 간단하게 커밋을 하나 만들어 보자.. 2023. 9. 1.