74일차

장민우·2024년 7월 22일

DevOps ToolChain : DevOps를 구현하기 위한 도구의 집합

CI/CD


소프트웨어 엔지니어링에서 CI/CD는 CI(지속적 통합)와 CD(지속적 전달/배포)의 결합된 방식

  • CI(Continuous Integration: 지속적 통합): 작은 변경 사항을 메인 브렌치로 자주 병합
  • CD(Continuous Delivery: 지속적 전달): 소프트웨어를 빠른 속도와 빈도로 짧은 주기로 생산하여 언제든지 신뢰할 수 있는 소프트웨어를 출시할 수 있도록하고 배포를 결정할 때 간단하고 반복 가능한 배포 프로세스를 사용
  • CD(Continuous Deployment: 지속적 배포): 소프트웨어 기능이 완전히 자동으로 롤아웃

버전관리(Version Control)

소프트웨어 버전 관리 시스템(Version Control System) :
파일의 변화를 시간에 따라 기록을 해두었다가 특정한 시점의 버전을 꺼내올 수 있는 시스템.

버전 관리 시스템의 장점

  • 버전 별로 데이터를 보존
  • 각 버전 별로 작업 내역 관리
  • 오류 발생시 이전 버전으로 롤백이 가능함

버전 관리 시스템의 종류

  • 로컬 버전 관리
    • 파일/디렉터리를 수동으로 복사
    • RCS(Revision Control System): Patch Set 관리
  • 중앙 집중식 버전 관리
    • CVS
    • Subversion
    • Perforce
  • 분산형 버전 관리
    • Mercurial
    • Bazar
    • Darcs
    • Git
      • Linus Torvalds가 개발한 오픈소스 형태의 분산형 버전 관리 시스템
      • 개발 작업시 별도의 중앙 서버에 대한 접속 없이 개발 작업이 가능함.
      • 빠른 속도가 장점이며 언제든지 원하는 시점에 작업을 마무리하고 통합할 수 있음
      • 데이터를 파일 시스템 스냅샷의 연속으로 취급하고 크기가 매우 작음.
      • 커밋을 하거나 프로젝트의 상태를 저장할 때마다 변경된 파일의 내용만 저장함.
      • 변경이 없는 경우 이전 상태에 대한 링크만 저장함
      • 데이터가 변경되는 시점에 Checksum으로 데이터의 무결성을 보장함.

Git의 상태

  • Committed: 데이터가 로컬 DB에 안전하게 저장됨
  • Modified: 데이터를 수정하였고 이를 아직 로컬 DB에 Commit하지 않은 상태
  • Staged : 현재 수정한 파일을 곧 Commit 할 예정이라고 표시한 상태

Working Directory: 파일을 작업하는 디렉토리
Staging Area: 곧 Commit 할 파일의 데이터를 저장하는 공간
Repository: 프로젝트에 대해 버전 관리를 하는 저장 공간


git 구성파일

  • System Configuration (/etc/gitconfig)

    • 해당 시스템을 사용하는 모든 사용자와 Git 저장소에 적용되는 구성 파일
    • git config --system 옵션을 통해 설정 가능함

    Git 사용자 이름
    #git config --system user.name "NAME"
    *주의: GitHub ID가 아님.

    Git 사용자 Email
    #git config --system user.email "USER@EXAMPLE.COM"
    *주의 : GitHub 계정의 E-Mail 주소와 동일하게 설정

  • Global Configuration (~/.gitconfig)

    • 특정 사용자의 모든 Git 저장소에 적용되는 구성 파일
    • git config --global 옵션을 통해 설정 가능함

  • Local Configuration (.git/config)

    • 특정 Git 저장소에만 적용되는 구성파일
    • git config --local 옵션을 통해 설정 가능함.

실습

file01.txt를 생성하고 status로 확인하면 Untracked files라며 빨간색으로 뜬다.

파일을 Git Repository의 Staging Area에 추가.

Git Repository의 Local DB에 변경사항을 커밋.(반영)

file02.txt 파일 생성 후 추가.

Commit 이력 조회.

Git Repository의 특정 File과 관련된 Commit 이력 조회



  • Git Branch
    기존의 개발 흐름과 다른 개발 흐름을 가져야 할 때(새로운 기능 추가 테스트 등)

새로운 디렉토리 생성.
mkdir git-branch-repo01

브랜치이름을 master에서 main으로 변경.

file01.txt file02.txt 커밋 생성.

test라는 브랜치 생성.

file03.txt 생성후 commit하면 test브랜치인 것을 확인할 수 있음.

file04.txt도 생성 후. commit

main으로 branch를 전환하면 file01,file02만 보인다.


0개의 댓글