[Git] GitLab

2024. 6. 14. 13:03·Tools/Git

lssue

  • 다른 개발자들과 협업을 하기 위한 기능

Issue Label

  • Label 종료
    • 타입 - 버그, 기능개선, 신기능, 논의사항 등
    • 상태 - New, In Progress, In Review, Done 등
    • 카테고리 - Front-end, Back-end, UI 등
  • Issue의 그룹화
  • Issue의 플랫폼, 의존성 등 부가적인 내용 표기
  • Issue의 상태 관리
  • 본인의 Issue를 손쉽게 검색

Milestone

  • 프로젝트의 이슈를 관리하기 위해 사용
  • 이슈를 Milestone으로 묶을 수 있음
  • Milestone을 사용하면 Issue들의 진척도를 확인하기 수월해짐

MR

  • 다른 브랜치의 변경 사항을 반영하기 위한 요청
  • 새로운 코드를 추가하여 브랜치에 반영(병합/Merge)하고자 함, 병합(Merge)을 요청(Request) 함

→ 브랜치 생성 - 커밋 - Gitlab으로 브랜치 푸시 - Merge Request

MR 하는 이유

  1. 코드 리뷰
  2. Master 브랜치의 안정성 유지
  3. 보안

Merge Request

  • Source Branch : 병합의 소스가 되는 Branch(작업 Branch)
  • Target Branch : 작업된 코드가 추가될 Branch(대상 Branch)

이슈와 MR을 연동하는 방법

  • 이슈 페이지에서 MR / 브랜치를 생성함

Merge

  • MR의 Merge 조건은 자유롭게 설정할 수 있으나 그래야만 하는 것은 아님
  • 최소 Approver 수와 특정 사람의 승인을 Merge 조건으로 걸 수 있음 → 가장 알맞은 것

MR의 Merge

  • Merge 이후에는 소스 브랜치의 변경사항이 타겟 브랜치로 병합됨

CI(CI-Continuos Integration)

  • 새로운 코드에 대한 변경사항이 꾸준히 자동으로 빌드 및 테스트되어 여러 개발자가 동시에 작업할 때 인터럽트가 발생하는 것을 방지할 수 있음
  • 안정성 유지 및 시간 절약
  • 코드 작성에만 집중 가능
  • 분업과 협업을 효율적으로 할 수 있음
  • 변경사항을 효율적으로 관리할 수는 없음

CI 하지 않고 빌드하기

  • CI/CD가 없을 때

  • CI/CD가 있을 때

npm install express
npm install --save-dev mocha should supertest

# npm test
npm test

# Heroku 배포
npm install -g heroku
heroku login
heroku create
git push heroku master

# 배포 확인 -> 웹사이트
still-meadow-28490.herokuapp.com

.gitlab-ci.yml

  • CI 기능에 대한 구성/설정을 저장하여 관리
# CI로 자동화 시키기
image: node:latest

stages:
	- test

cache:
	paths:
		- node_modules/

testing:
	stage: test
	script:
		- npm instsall
		- npm test
  • 프로젝트에 CI 적용

Stage

  • 앞 Stage가 끝나야 다음 Stage가 실행됨
  • 단계별로 실행될 스크립트를 자유롭게 설정할 수 있음
  • 특정 브랜치에서만 실행되도록 설정할 수 있음
  • only : 특정 브랜치에서만 Stage가 작동되도록 하기 위해 주는 옵션

MR에 CI를 연동하는 방법

  • 프로젝트의 MR 설정에서 pipeline이 성공되어야 하게 설정함

Wiki

  • 프로젝트에 대한 설명/안내 등을 문서로 마크다운으로 작성해서 관리할 수 있는 기능

Gitlab의 Member

  • 서브 그룹과 프로젝트는 상위 그룹의 멤버를 상속함
  • 그룹을 한 번에 초대할 때 Max Access Level을 넘지 못함
  • 그룹 아래에 추가적으로 서브 그룹을 계속 생성할 수 있음
  • 권한이 많은 순서대로 Guest - Reporter - Developer - Maintainer - Owner

Lint

  • Lint에서 발생한 에러는 고치지 않아도 실행에 지장이 없음
  • Lint에서 잡힌 자잘한 수정사항들을 고치지 않고 두면 기술부채가 되어 돌아옴
  • Lint 과정을 거침으로서 코드의 질을 향상시킬 수 있음
  • Lint는 무조건 빌드 전에 실행해야하는 것은 아님

Gitlab의 통계

  • MR이 생성되고 Merge/Close 되기까지 걸린 평균 시간
  • 커밋별 CI/CD에 걸린 시간
  • CI/CD 실행 추세 및 pass된 수

Error Tracking

  • 배포된 서비스에서 발생하는 Error에 대한 정보를 추적하기 위해 Gitlab에서 제공하는 기능

Environment

  • 배포 환경을 관리하기 위해 Gitlab에서 제공하는 기능

Feature Flags

  • 서비스의 기능을 깃랩에서 on/off 하고 싶을 때 사용하는 기능
저작자표시 비영리 변경금지 (새창열림)

'Tools > Git' 카테고리의 다른 글

[Git] Git 프로젝트 올리기  (0) 2024.06.14
[Git] Git 명령어  (1) 2024.06.14
[Git] Git 설치  (0) 2024.06.14
[Git] Git이란?  (0) 2024.06.14
[Git] 이미 Push한 커밋 수정하기  (0) 2023.09.30
'Tools/Git' 카테고리의 다른 글
  • [Git] Git 프로젝트 올리기
  • [Git] Git 명령어
  • [Git] Git 설치
  • [Git] Git이란?
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    Linux
    programmers
    springboot
    리눅스마스터 1급
    시큐리티
    스프링
    Flutter
    backjoon
    데이터
    데이터베이스
    스프링부트
    baekjoon
    python
    postgresql
    Spring Security
    Oracle
    백준
    CS
    pcce 기출문제
    JPA
    spring
    CS지식
    프로그래머스
    DB
    Java
    리눅스
    리눅스마스터
    자바
    스프링 부트 쇼핑몰 프로젝트 with JPA
    플러터
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[Git] GitLab
상단으로

티스토리툴바