::: IT인터넷 :::

gitlab에서 group, project 생성하기

곰탱이푸우 2021. 7. 2. 08:20

gitlab을 설치하는 과정은 이전 포스팅에서 진행했다.

 

시놀로지 NAS에서 GitLab 설정 방법

개요 시놀로지 NAS에서 GitLab도 설치 가능하며, DS21x 모델 기준으로 DS216 부터 추가되었다. 아마도 Docker를 DS216부터 지원하기 시작했기 때문으로 보인다. 기존에 사용하던 DS213은 Git Server 설치가 가

www.bearpooh.com

 

설치를 완료하고 로그인을 하면 다음과 같은 초기 화면이 출력된다.

 

이제부터 무엇을 해야 할까? gitlab을 설치한 목적이 소스코드 형상 관리이므로 코드를 commit 해야 한다.

  • 개발 프로젝트는 1개 이상의 프로그램과 서비스들로 구성되어 있다.
  • 서비스들은 1개 이상의 프로그램들로 구성되어 있다.
  • 프로그램들은 소스코드로 구성되어 있다.

 

 

형상 관리는 사용하는 환경과 목적에 따라 요구사항이 모두 다르기 때문에, 권장 모델을 활용해서 적합한 구조를 선택하면 된다.

 

특정 목표를 달성하기 위한 프로젝트는 gitlab의 group 기능을 사용하면 관리하기 수월하다.

  • gitlab에서는 서비스나 프로그램 단위를 project로 표현하기 때문에, 위에서 언급한 프로젝트와 혼동될 수 있다.
  • group에 project를 구성하는 기준은 개발 언어, 개발 목적, 카테고리 등 정하기 나름이다.
  • 프로젝트 리더나 구성원들이 결정하면 된다. (모범 답안은 있어도 정답은 없다.)

 

예전에 개발팀에 있을때 진행했던 프로젝트들은 산출물 기준으로 관리했고, 형상 관리를 위해 Atlassian의 bitbucket을 사용했다.

  • 프로젝트 단위의 대분류 생성
  • 대분류 (프로젝트) 하위에 프로그램이나 서비스 생성

 

이전에 사용하던 개발 업무환경에 최대한 비슷하게 맞춰보는 목표를 가지고 진행한다.

 

 

group 생성 계획 정리

1인 프로젝트로 진행하는 입장에서는 내가 결정하면 되니까 목적별로 구분하기로 했다.

  • devops - 개발 관련 환경 구축에 필요한 도구 개발
  • automation - 업무 자동화 스크립트나 도구 개발
  • analysis-tools - 업무나 분석 업무에 활용할 도구 개발
  • osint - 외부 오픈(공개) 인텔리전스 데이터 수집을 위한 도구 개발

 

전체적인 큰 그림을 그리는 정도이고, 당분간 devops와 analysis-tools만 사용할 것 같다.

  • 나중에 사용하지 않는 group은 제거할 예정이다.
  • 이미 구성한 group도 이름을 변경하거나, 하위 project를 다른 group으로 변경할 수 있다.

 

group 구성은 나중에 필요한 도구 개발에 맞춰 다시 고민하기로 한다.

 

 

group 생성

화면 상단의 Groups를 선택하고 Create group 버튼을 클릭한다.

 

그룹 생성에 필요한 정보들을 입력한다.

  • Group name - 생성하고자 하는 그룹명을 입력한다. (ex. devops, analysis-tools 등)
  • Group URL - Group name 입력에 따라 자동 입력된다. 필요하면 수정 가능하다.
  • Visibility level - Private (해당 그룹 멤버만), Internal (gitlab 로그인 멤버만), Public (모두 공개)

 

 

group이 생성되면 아래와 같이 상세 페이지로 이동한다.

group 이름 아래에 New subgroup과 New project 버튼이 존재한다.

  • New subgroup - group 하위에 group을 생성할 수 있다. 세분화 할 수 있으나 관리가 복잡해진다.
  • New project - 해당 그룹에 필요한 프로그램 개발을 위한 프로젝트르 추가한다.

경험상 subgroup까지 사용할 필요는 없었던 것으로 기억한다.  2 depth가 가장 무난하다.

 

 

Project 생성

위의 그림에서 New Project을 클릭하거나 상단의 Projects를 누르고 Create Blank Project를 클릭한다.

  • Create from Template 메뉴가 있는데, 생성하면 Branch와 Commit 이력이 상당히 많다.
  • 템플릿을 참고하는 용도로는 활용하기 좋으나, 실제 형상 관리는 불편한 요소가 많을 것 같다.
  • 가급적 Create Blank Project로 생성하고, 내부 구성은 github이나 S/W 공학 관련 자료를 참고한다.

 

프로젝트 생성에 필요한 정보들을 입력한다. (group 생성과 상당히 유사하다.)

  • Project name - 생성하고자 하는 프로그램, 즉 산출물의 이름을 입력한다.
  • Project URL - 프로젝트의 group을 선택한다.
  • Project slug - url에 사용할 구체적인 경로를 의미한다. Project name 입력하면 자동 생성되고 수정도 된다.
  • Project description (optional) - 해당 프로젝트의 구체적인 설명을 기록한다. 생략 가능하다.
  • Visibility Level - Private (해당 그룹 멤버만), Internal (gitlab 로그인 멤버만), Public (모두 공개)
  • Initialize repository with a README - README.md 파일을 초기화한다. 신규 코드 작성에 유용하다.

 

 

프로젝트를 생성하면 상단에 아래와 같은 내용이 표시된다.

  • 첫번째는 SSH Key 등록이다. 다음 포스팅으로 진행한다.
  • 두번째는 CI 옵션 설정이다. gitlab에 추가 된 CI/CD 기능 알림이다. Jenkins로 할 것이므로 x를 눌렀다.

 

더 아래로 내려보면 프로젝트 상세 정보를 볼 수 있다.

  • github, bitbucket보다 직관성이 있는 UI로 보인다. (개인적인 의견)
  • DevOps 설정, LICENSE 추가 (템플릿 포함), CHANGELOG 추가 등 원클릭 입력 가능 (bitbucket 사용할땐 본 적 없다.)

 

화면 우측의 Clone 버튼을 클릭하면 두가지 옵션을 확인할 수 있다.

  • Clone with HTTPS는 gitlab 설정시 지정한 GITLAB_PORT를 포함한다.
  • Clone with SSH는 gitlab 설정시 지정한 GITLAB_SSH_PORT를 포함한다.

 

 

Branch 생성

화면 중앙의 + 버튼을 누르면 세부 기능이 출력된다.

 

This directory와 This repository로 구분된다.

  • This directory - 파일 업로드, 폴더 생성 등을 진행한다.
  • This repository - branch 생성, tag 생성 등을 진행한다.

Branch 생성을 위해 New branch를 선택한다.

 

Branch 생성 화면이다. bitbucket 보다 직관성은 더 좋다.

  • Branch name - 생성하고자 하는 브랜치 이름이다.
  • Create From - Branch 생성에 필요한 원본 코드 저장 경로이다.

예전 부서에서는 Jira 이슈 번호 - 간단한 목적으로 생성했다.  (ex. ABC-1234-modify-main-feature)

일반적으로 master 하위에 Branch 생성하여 작업하고, master로 Merge한다.

 

 

 

Create branch를 클릭하면 실제로 코드 개발에 사용할 branch 경로가 생성 된다.

  • Create merge request - 완료 된 코드를 master에 merge를 요청한다.
  • TEST-1-test-gitlab - branch 이름이다. Jira나 이슈트래킹 시스템의 이슈번호를 붙이면 관리하기 수월하다.

 

이제 생성한 branch의 코드를 가져와서 개발을 진행하면 된다.