Internship

GitLab 이론 및 사용법 / github와 다른점

✿(๑❛ڡ❛๑)✿ 2024. 9. 4. 15:40
728x90
SMALL

GitLab이란?

 

소프트웨어 개발을 위한 웹 기반 DevOps 플랫폼으로, Git 저장소 관리, CI/CD 파이프라인, 프로젝트 관리 도구 등을 통합적으로 제공하는 도구

GitHub와 유사하게 GitLab은 Git 버전 관리 시스템을 기반으로 소스 코드 저장소를 호스팅하며, 팀 협업과 소스 코드 버전 관리를 보다 쉽게 할 수 있도록 다양한 기능을 제공한다!

 

github와 다른점? 

깃랩은 지속적 통합/지속적 전달(CI/CD)와 데브옵스 워크플로우를 내장

깃랩은 지라(Jira), 마이크로소프트 팀즈, 슬랙, G메일 같은 애프리케이션 및 플랫폼과 통합을 제공

 

 

CI/CD 파이프라인

https://about.gitlab.com/product/continuous-integration/

깃랩은 개발 단계를 자동화하고 보다 짧은 주기로 고객들에게 애플리케이션을 제공할 수 있도록 *지속적인 통합(CI), *지속적인 제공/배포(CD) 과정을 통합하여 하나의 파이프라인을 통해 코드를 작성, 테스트, 배포 및 모니터링할 수 있도록 지원하고 있다.

 

지속적 통합(CI)

CI(지속적 통합, Continuous Integration): 짧은 주기로 소프트웨어 빌드, 테스트, 컴파일 과정을 자동화하는 것을 의미한다.

위 단계에서는 프로세스 자동화, 공유 저장소 내 코드 통합, 변경사항 자동 기록 및 테스트를 진행한다.

 

지속적 제공/배포(CD)

CD(지속적 배포, Continous Deploy): 짧은 주기로 소프트웨어를 끊어서 배포하고 그 과정 전체(컴파일 - 빌드 - 테스트 - 배포)를 자동화하는 것을 의미한다.

위 단계에서는 애플리케이션에 변경사항이 생기면 이에 대한 오류 테스트 및 리포지토리에 자동 업로드가 진행되며, 마지막으로 애플리케이션에 변경된 사항을 적용하여 프로덕션 환경으로의 자동 배포가 이루어진다.

 

 

명령어 정리 

  • 새로운 Git 저장소 초기화
 git init

 

  • 원격 저장소를 로컬에 복제
 git clone <저장소 URL>

 

  • 변경된 파일을 스테이징 영역에 추가
 git add <파일명>

 

  • 스테이징 영역에 있는 파일을 로컬 저장소에 커밋
git commit -m "커밋 메시지"

 

  • 로컬에서 변경된 내용을 원격저장소로 푸시
 git push origin <브랜치명>

 

  • 원격 저장소에서 최신 변경 사항을 가져와 로컬에 반영
  git pull

 

  • 작업 디렉토리의 상태 확인
git status

 

  • 브랜치 목록 확인
git branch

 

  • 새브랜치 생성
 git branch <브랜치명>

 

  • 브랜치를 전환하거나 특정 커밋으로 체크아웃 할때
git checkout <브랜치명>

 

  • 다른 브랜치에서 변경된 내용을 현재 브랜치에 병합할때 
 git merge <브랜치명>


GitLab CI/CD관련 명령어

gitlab-ci.yml 설정

GitLab CI/CD 파이프라인을 사용하려면 프로젝트 루트에 `.gitlab-ci.yml` 파일을 만들어 CI/CD 파이프라인을 정의

yaml
   stages:
     - build
     - test

   build_job:
     stage: build
     script:
       - echo "Building the project..."

   test_job:
     stage: test
     script:
       - echo "Running tests..."

 

gitlab-runner 등록

로컬 또는 서버에 GitLab Runner를 설치한 후 등록 가능

 gitlab-runner register


CI/CD 파이프라인 실행
밋이나 푸시 시 자동으로 설정된 `.gitlab-ci.yml`에 따라 파이프라인이 실행된다.  GitLab 웹 UI에서 파이프라인 상태를 모니터링할 수 있다.

 

 

❗ 인턴십 카테고리의 글은 보안상 이슈로 이론이나 저작권이 없는 테스트 코드만 업로드 됩니다.

728x90
LIST