GitLab 에 대해 알아보자!

Yuri Lee·2021년 5월 2일
1

들어가며

  • 팀에서 곧 코드 리뷰를 진행한다고 한다. 너무 설렌다! 사실 개발 문화가 잘 되어있는 팀이 아니고, 회사 특성상 일정관리에 쫒기는 경우가 대다수이기 때문에 그럴 기대도 할 수 없었다.
  • 하지만, 이번에 Gitlab 을 이용하여 웹 파트 팀원끼리 코드 리뷰를 하기로 했다. 모든 업무는 5시에 끝내고 5시부터 ~ 6시 + α 라는 규칙 하에!
  • 시작은 어렵겠지만, 열심히 해보자 🙌 🙌

GitLab 주요 기능

GitLab은 초기에 Git 원격 저장소, 코드 탐색, 이슈 트래커 기능 등을 제공하는 소프트웨어의 형태로 시작되어, 이후 더 많은 기능들을 추가하여 전체 소프트웨어 개발 라이프사이클을 커버하는 플랫폼으로 성장했다.

  • 그룹 및 프로젝트 관리 : 그룹 및 프로젝트를 통해 업무를 계획(Milestone)하고 세부화한 업무(Issue)를 구성원에게 배정하여 팀의 수행 프로젝트를 관리할 수 있다. 그룹은 동일한 네임스페이스에서 관련 프로젝트를 구성하고 최상위 그룹에 구성원을 추가하여 여러 프로젝트와 여러 팀 구성원에게 더 적은 단계로 액세스 권한을 부여할 수 있다. 프로젝트는 코드베이스 단위로 만든다다. 이를 이슈 트래커로 사용하고, 코드에 대해 공동 작업하고, 내장된 GitLab CI/CD를 사용하여 앱을 지속적으로 빌드, 테스트 및 배포할 수 있다.

  • Repository : 프로젝트를 생성하면 자동으로 Git 원격 저장소가 생성됩니다. 코드베이스를 저장하고 버전 제어를 통해 코드를 변경하는데 사용되며, 파일을 탐색하고 상호 작용하는 다양한 방법을 Web UI로 제공한다.

  • 이슈 트래커(Tracker) : 공동으로 아이디어를 개발하고 문제를 해결하며 작업을 계획하기 위한 고급 도구이다. 새로운 아이디어의 구현 논의, 태스크(Task) 및 작업 상태 추적, 기능 제안, 질문, 지원 요청 또는 버그 보고서의 수락, 새로운 코드 구현에 대해 자세히 설명하는데 활용할 수 있다.

  • 이슈 보드(Board) : 기능 또는 제품 릴리스에 대한 워크플로우를 계획, 구성 및 시각화하는데 사용되는 소프트웨어 프로젝트 관리 도구이다. 칸반(Kanban) 또는 스크럼(Scrum) 보드로 사용할 수 있다. 레이블(Label) 기반으로 이슈 추적과 프로젝트 관리를 결합하여 모든 것을 함께 유지하므로 워크플로우를 구성하기 위해 서로 다른 플랫폼 사이를 이동할 필요가 없다. 레이블을 추가하여 기존 이슈에 해당하는 목록을 만들고, 카드를 한 단계에서 다른 단계로 끌어다 놓을 수 있다.

  • 레이블(Labels) : 이슈, 병합 요청 및 에픽의 수가 증가함에 따라 이러한 항목을 추적하는 것이 점점 더 어려워진다. 특히 조직이 소수에서 수백 또는 수천으로 성장함에 따라 더욱더 그렇다. 레이블은 작업을 구성하고 태그를 지정하여 관심 있는 작업 항목을 추적하고 찾을 수 있도록 도와준다. 버그, 기능 요청 또는 문서와 같은 설명 제목과 색상을 사용하여, 에픽, 이슈 및 병합 요청을 분류하여 동적으로 필터링하고 관리하며 이런 항목들을 검색할 수 있다.

  • 마일스톤(Milestone) : 특정 기간 동안 더 광범위한 목표를 달성하기 위해 생성된 이슈 및 병합 요청(Merge Request)을 추적하는 방법이다. 마일스톤을 이용하면 선택적 시작일과 마감일을 사용하여 이슈와 병합 요청을 응집력 있는 그룹으로 구성할 수 있다.

  • 병합 요청(Merge request) : 한 브랜치를 다른 브랜치로 병합하기 위한 요청이다. 병합 요청을 사용하여 소스 코드에 대해 제안된 변경사항을 시각화하고 협업할 수 있다.

  • 내장 CI/CD : 무료로 내장된 CI/CD를 가지고 있으며 별도로 설치할 필요가 없다. 이를 사용하여 애플리케이션을 빌드, 테스트 및 배포한다. 작업 결과는 쉽게 액세스할 수 있도록 병합 요청(Merge request)에 표시된다.

  • WiKi : 문서화를 위한 별도 시스템이 각 GitLab 프로젝트에 내장되어 있다.. Wiki는 문서를 저장소에 보관하고 싶지 않지만 코드가 있는 동일한 프로젝트에 보관하고 싶은 경우 매우 편리하다. 모든 Wiki는 별도의 Git 저장소이므로 웹 인터페이스에서 또는 Git Clone하여 로컬에서 작업할 수 있다.

  • 스니펫(Snippets) : 자주 사용하는 코드 조각과 텍스트를 저장하고 다른 사용자와 공유할 수 있다.

  • Web IDE : Git CLI(명령 줄 인터페이스)에 익숙하지 않은 사용자도 쉽게 사용할 수 있는 기능으로, 코드를 변경하고 Web 브라우저에서 직접 커밋할 수 있는 커밋 스테이징(Commit Staging)을 제공하여 프로젝트에 변경사항을 빠르고 쉽게 적용할 수 있다.

전체 DevOps 라이프사이클

  • GitLab은 동시(Concurrent) DevOps를 가능하게 하는 소프트웨어 개발, 보안 및 운영을 위한 최초의 단일 애플리케이션으로, 소프트웨어 라이프사이클을 더 빠르게 만들고 비즈니스 속도를 획기적으로 향상시킨다.

    • (Concurrent) DevOps? Concurrent DevOps is a new way of thinking about how we create and ship software. Rather than organizing work in a sequence of steps and handoffs, the power of working concurrently is in unleashing collaboration across the organization.
  • 이슈 추적 및 소스 코드 관리에서 CI/CD 및 모니터링에 이르기까지 모든 것을 한 곳에 모아두면 툴체인 복잡성이 단순화되고 사이클 타임(Cycle Time)이 단축된다.

  • GitLab은 DevOps 라이프사이클의 각 단계에 대한 솔루션을 제공한다.

강력한 클라우드 네이티브 지원

  • 기업은 속도, 안정성 및 확장성을 확보하기 위해 기존 배포 모델에서 클라우드 네이티브 애플리케이션으로 전환하고 있다.

  • GitLab은 클라우드 네이티브 애플리케이션을 구축하는 가장 쉬운 방법이다. 클라우드 네이티브 애플리케이션은 컨테이너, 마이크로 서비스 아키텍처 및 Kubernetes와 같은 컨테이너 오케스트레이션을 사용한다. GitLab은 긴밀한 Kubernetes 통합을 통해 클라우드 네이티브 애플리케이션을 위해 설계되었다.


https://insight.infograb.net/docs/about/gitlab_introduction#%EC%A0%84%EC%B2%B4-devops-%EB%9D%BC%EC%9D%B4%ED%94%84%EC%82%AC%EC%9D%B4%ED%81%B4

profile
Step by step goes a long way ✨

0개의 댓글