바닥코딩

GIT 이란 무엇인가 본문

방법론과 DevOps/Git hub

GIT 이란 무엇인가

개발공부개발공부 2020. 1. 30. 13:49

 

GIT?

 깃은 컴퓨터 파일의 변경사항을 추적하고 여려 명의 사용자들 간에 해당 파일드의 작업을 조율하기 위한 분산 버전관리 시스템을 의미합니다. 소프트웨어 개발에서 소스 코드 관리에 주로 서용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적해주기 위해 사용할 수도 있습니다. 

 깃은 다른 대부분의 분산 버전 관리 시스템처럼 또는 대부분의 클라이언트-서버 시스템과는 다르게 모든 노드의 모든 깃 디렉토리는 네트워크 접속이며 중앙 서버와는 독립적으로 동작하는 완전한 이력 및 완전한 버전 추적 기능을 갖춘 성숙한 저장소입니다.

형상관리 & 버전관리 

 형상관리 : 소프트웨어는 한번 만들어졌다고 해서 그걸로 끝나는 것이 아닙니다. 환경의 변화나 기술의 변화에 따라 지속적으로 변경이 이루어지기 때문입니다. 그렇지만 새로 적용한 방식, 변화가 완벽하기만 한 것은 아닐 것입니다. 따라서 특정 소프트웨어가 변화해 온 과정, 이력을 관리하는 것이 필요하며 형상관리란 이런 소프트웨어의 변경사항을 체계적으로 관리하는 것을 의미합니다.

 버전관리 : 버전관리는 동일한 정보에 대한 여러 버전을 관리하는 것입니다. 소프트웨어공학에서는 일반적으로 소스 코드만을 관리하는 것을 버전관리라고 정의합니다. 이보다 더 세밀한 개념으로 변경관리가 있는데, 변경관리는 '소스코드'의 변경사항을 관리하는 것이고 버전관리는 이러한 변경사항을 '버전'이라는 개념을 통해 관리한다는 점에서 그 차이가 있습니다. 

 형상관리와 버전관리는 언뜻 개념에 차이가 없는 것처럼 보입니다. 그러나 정확히 말하자면 형상관리 안에 버전관리가 포함되어 있다고 볼 수 있습니다. 형상관리는 버전관리를 포함하여, 소프트웨어 프로젝트와 관련된 모든 변경사항을 관리한다는 점에서, 단순히 변화를 관리하던 버전관리와, 버전관리 기반의 소프트웨어 운용을 조금 더 넓힐 수 있었다고 볼 수 있기 때문입니다.  그러나 실무에서는 변경관리, 버전관리, 형상관리가 명확하게 구분되고 있지는 않고, 대체로 비슷한 의미로 사용된다고 합니다.