형상 관리 시스템: GIT

최성2·2022년 6월 7일
0
post-thumbnail

형상관리 시스템이란?

형상관리란 한마디로 개발과정의 시작부터 끝까지 변하는 모든 사항을 관리하는 작업이라고 할 수 있다. 소스 코드의 변경사항, 버전 등을 체계적으로 관리하는 git 과 같은 툴이 대표적이다

형상관리 시스템이 없었다면,

수정했는데 에러 난다. 근데 그전 코드 저장 안 했어...
컴퓨터 고장 났는데, 복구가 안 된데...
우리 코드 어떻게 합칠까! 메일?! zip?!

위와 같은 문제들 외에도 많은 문제점이 있었을 것이다. 이를 해결하기 위해 만들어진 시스템이지 않을까


형상관리의 구성요소 4가지

  1. 형상식별: 형상항목의 정의, 분류
  2. 형상통제: 변경을 통제하고 관리
  3. 형상감사: 요구사항에 맞게 잘 변경됐는지 확인
  4. 형상기록: 결과를 데이터베이스화

형상관리 툴에는

IBM Rational ClearCase, Perforce, PTC Integrity(유료)
Subversion(SVN), CVS, Git(오픈소스)

등 여러가지가 존재하는데, 최근에는 git이 가장 많이 사용된다 (2020년 기준 - 검색량 80% 차지)


git의 특징은?

git은 분산 버전 관리 시스템이며, 저장소를 복제할 때 변경사항의 기록들, 즉 커밋을 함께 복제해온다는 특징이 있다

버전 관리 시스템은 크게 2가지로 분류할 수 있다

  1. 변경 기록들을 가져오지 않고, 오직 중앙 서버 파일만을 받아오는 중앙 집중식 버전 관리
  2. 저장소의 변경 기록들을 함께 복제해오는 분산 버전 관리

중앙서버에 문제가 생겼을 경우, 전자의 경우 기록들을 모두 잃게 되지만, 후자는 clients 중 하나를 골라 복원시킬 수 있다


git과 GitHub 차이점

깃은 버전관리 툴, 깃헙은 git을 이용한 서비스다. 깃헙이 제공하는 서비스를 활용하여 여러 사람들이 하나의 저장소를 가지고 보다 쉽게 협업할 수 있다


git flow란

git-flow는 기능이 아닌 서로 간의 약속, 즉 컨벤션, 가이드와 같다. 보통 master, develop, feature, release, hofix 약 5가지 브랜치를 사용해서 작업한다

Vincent Driessen
  1. master
    안정적인 버전의 소스코드가 이곳에서 관리된다. 배포해도 될 만큼의 안정성이 충분히 검증된 코드들만 합쳐져야한다

  2. develop
    새로운 기능을 추가하거나, 성능을 개선하기 위한 코드들이 끊임없이 추가된다. feature 브랜치는 develop 브랜치에서 파생된다

  3. feature
    회원가입, 로그인, 장바구니 등의 새로운 기능 구현이 필요할 경우, 생성하는 브랜치다. 혼자 작업할 수도 있으며, 여러 명의 개발자들이 공동으로 작업할 수도 있다. 기능 구현과 검토를 거쳐 develop 브랜치에 합쳐진다

  4. release
    모든 기능 구현이 완료되면 devleop 브랜치에서 release 브랜치를 생성한다. 품질 검사를 하면서 보완점을 보완하고 버그를 픽스한다. 코드가 안정적이라 판단되면 master 브랜치에 병합시킨 후 배포한다

  5. hotfix
    배포 후 미처 발견하지 못했던 버그(긴급하게 수행되어야 할)가 있을 경우, master 브랜치에서 hotfix 브랜치를 생성해 수정한다. 하지만 지속적으로 배포를 하는 조직의 경우에는 불필요한 작업일 수 있다


git-flow도 설치가 가능하다. 설치 시 6개의 브랜치(master, develop, feature, release, hotfix, support)가 지정된다

profile
hello!

0개의 댓글