[Git] 여러가지 소스 형상관리 툴 종류와 사용목적

소스 형상관리의 정의

소프트웨어 형상관리는 Software Configuration Management, 줄여서 SCM라는 단어를 쓰기도 하는데, SW개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대해 형상을 만들고, 이들 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동입니다. 단순히 말하자면 프로젝트를 진행하면서 생성하는 소스코드를 CVS나 SVN, 또는 GIT와 같은 버전 관리 시스템을 이용하는 것을 말합니다. 다수의 개발자가 프로젝트에서 동일한 기능을 동시에 개발한다고 할 때, 작성된 소스 코드와 변경사항을 확인하고, 수정하는 협업을 도와주는 시스템이라고 할 수 있습니다.

 

형상관리는 일반적으로 버전 관리 (version control, revision control), 소스 관리 (source control), 소스 코드 관리 (source code management, SCM)와 동일한 의미로 사용됩니다. 즉, 동일한 정보(프로그램)에 대한 여러 버전을 관리하는 것으로, 소프트웨어 공학에서는 팀 단위로 개발 중인 소스 코드나 청사진(설계도) 등 디지털 문서의 작업 단계별 버전을 관리하는 작업으로 정의됩니다. 소스 형상관리 툴의 대략적인 구조는 아래와 같습니다.

 

버전관리시스템

 

대표적인 소스형상관리 툴

깃

GitHub

깃허브 홈페이지

'깃(Git)'은 2005년 리눅스를 만든 리누스 토발즈와 주니오 하마노가 개발한 분산형 버전관리 시스템입니다. 어떤 코드를 누가 수정했는지 기록, 추적을 할 수 있는 오픈 소스 소프트웨어로 수천명의 사람들이 이용해도 안정적이고, 속도가 빠르다는 장점이 있습니다. 깃허브가 나오기전에는 깃이라는 프로그램을 사용하였는데요. '깃'은 명령어를 입력하면서 이용해야되는 불편함이 있었습니다. 이 불편함을 더욱 편리하게 이용할 수 있게 만든게 바로 '깃허브'입니다. 깃허브는 개발자들끼리 소스를 공유할 수 있는 오픈소스 페이지(개발자 스스로 본인의 소스를 다른사람들에게 공개하여 필요한 정보를 공유할 수 있는 자유로운 공간) , SNS기능, 블로그 기능까지 추가하는 등 소스형상관리기능에서 개발 플랫폼으로 점점 진화하고 있습니다. 개발자들이 굉장히 많이 사용하고 친숙한 형상관리툴입니다. GitHub의 상징 옥토캣 캐릭터도 인기가 굉장히 많죠. 단점이라면 다른 툴에 비해 다소 사용하기 무겁고, 어렵다는 단점이 있습니다. (익숙해지면 쉽습니다.) 

 

svn

SVN

SVN은 SubVersion의 줄임말로 형상관리/소스관리 툴의 일종입니다. Open Source 버전관리 시스템으로 2000년도에 CSV를 대체하기 위해 개발되었습니다. 파일 및 디렉토리의 버전관리 기능을 제공하며, 버전의 파일트리는 한 곳에 집중된 레파지토리에서 관리됩니다.. Subversion은 효율적인 Branch및 Merge기능과 작업의 무결성을 보장합니다. 네트워크 기능 지원(http) 및 크로스 플랫폼 (Windows, Mac, Linux) 을 지원합니다. GIT과 함께 굉장히 많이 쓰이는 소스형상관리 툴입니다. Git하고 SVN이 거의 머 양대산맥이죠 ^^; Git보다 사용하기 가벼우며 핵심적인 기능만 딱딱 제공합니다. 초보자들이 사용하기에도 Git보다는 간편할듯 하군요. 

 

sourcesafe

SourceSafe

마이크로소프트에서 개발한 프로그램으로 풀네임은(Microsoft Visual SourceSafe, VSS)입니다. 현재는 개발이 중단된 소스 관리 프로그램으로 조그마한 소프트웨어 개발 프로젝트를 대상으로 합니다. 대부분의 소스 제어 시스템들처럼 소스세이프는 컴퓨터 파일의 가상 라이브러리를 만듭니다. 소스 코드에 가장 흔히 쓰이는 소스세이프는 데이터베이스내에서 어떠한 종류의 파일도 처리할 수 있지만 구 버전의 경우 이미지와 같은 텍스트가 아닌 많은 양의 데이터나 컴파일된 실행 파일을 저장할 때 불안정한 것으로 알려져 있습니다. SourceSafe는 마이크로소프트에서 만들었기에 비쥬얼 스튜디오와 호환이 좋습니다. C언어 계열 소스 형상관리를 할때 굉장히 많이쓰입니다. 

 

소스 형상관리는 왜 해야할까?

방대한 양의 개발을 혼자서 하기에는 무척이나 힘이듭니다. 고로 개발자들간의 협업은 매우 중요하죠. 공동으로 개발작업을 하다보면 서로가 수정한 소스를 최신 버전으로 공유하여 개발을 진행하여야 합니다. 간단한 프로그램이라면 그냥 카카오톡이나 메일로 소스코드를 주고받으면서 할수도 있겠지만 이것은 소스의 양이 많아지고 페이지가 많아질수록 비효율적이게 됩니다. 또한 형상관리툴을 사용하므로써 얻을수있는 많은 이점들을 얻을 수 없습니다. 그래서 형상관리툴을 활용하여 프로그램 소스라면 특정 저장소(레파지토리)에 저장해놓고 본인이 수정한 최신 소스를 업로드하면서 다른 사람의 최신버전을 내려받아 개발을 진행하는 것이 필요한데, 이를 형상관리라고 합니다. 소스의 형상(모양)을 관리한다는 것 말 그대로 전체적인 틀을 유지한다는 것입니다. 

 

소스 형상관리 툴 사용시 얻는 장점

1. 소스 코드를 프로젝트 팀원 및 관계자들과 공유할 수 있다.

2. 소스 코드의 변경 이력을 관리할 수 있다.

3. 서버나 클라이언트에 배포할 때에도 유용하게 사용된다.

4. 여러 사람이 동일한 소스 코드를 공유해서 개발할 수 있으며 소스 코드를 공유할 때 생기는 버전 충돌 문제를 해결할 수 있다.

5. 장애 혹은 기능상 필요할 때 이전 버전으로 소프트웨어를 원상복구할 수 있다.

6. 동일한 소프트웨어를 여러 개의 버전으로 분기해서 개발할 필요가 잇는 경우에 유용하게 사용된다.

 

[Git] 윈도우버전 Git설치하기 (Git for Windows)

[Git] GitHub 레파지토리(Repository) 생성 & 소스 올리기

[Git] GitHub 레파지토리(Repository) 삭제

 

댓글

Designed by JB FACTORY