형상관리(구성관리)

소프트웨어 구성 관리(영어: Software Configuration Management) 또는 형상 관리는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기한다.
일반적으로 형상 항목(영어: Configuration Item)이라는 형태로 작업 산출물을 선정하고, 형상 항목 간의 변경 사항 추적과 통제 정책을 수립하고 관리한다.
구성관리 - wikipedia

GIT

깃(Git /ɡɪt/)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 기하학적 불변 이론을 바탕으로 설계됐고, 분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 무결성, 분산, 비선형 워크플로를 지원한다.

깃은 2005년에 리눅스 커널 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 리누스 토르발스가 처음 개발한 것이다. 2005년부터 지금까지 주니오 하마노(Junio Hamano)가 소프트웨어의 유지보수를 맡고 있다.

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

깃은 GNU 일반 공중 사용 허가서 v2 하에 배포되는 자유 소프트웨어이다.
깃(소프트웨어)wikipedia)

github VS bitbucket

github

현지시각으로 2018년 6월 4일 오전 6시에 MS 트위터를 통해서 GitHub 인수 소식이 정식 발표되었다.

github는 Github Inc의 대표적인 형상관리 소프트웨어이다.

이 블로그 같은 username.github.io 형식의 static webpage를 지원하기도 하며 svn과 더불어 가장 많이 사용되는 git 플랫폼의 선두주자라고 할 수 있다.

github는 github-desktop이라는 프로그램을 통해 terminal이 익숙하지 않은 사용자를 배려하고 있다.

bitbucket

2008년 Atlassian이라는 회사에서 출범하였으며, github에 비하면 약 1년가량 늦다. 제공하는 기능은 github와 매우 유사하다.

github과 비슷하게 atlassian sourcetree라는 프로그램을 통해 terminal이 익숙하지 않은 사용자를 배려하고 있으며, 사실 두 프로그램 모두 한글 번역은 좀 떨어지는 편이다.

bitbucket repo와 연결한 sourcetree에서의 commit 장면

github와 bitbucket의 차이점

github는 private repository를 제공하지 않는다. 철저하게 open-source 진영이라는 얘기라고도 볼 수 있다. private repository를 구성하기 위해서는 credit을 지불해야 하는데, 이러한 점이 bitbucket과 다르다.

bitbucket은 credit을 지불하지 않고도 private repository를 구성할 수 있으며 repository 구성단계 부터 Access level :: This is a private repository
라는 문구가 보인다. 물론 ‘::’ 대신에 체크박스가 존재한다.

또 다른 차이점은 paid plan이다. 자세하게 들여다 보지는 않았지만, plan에서 차이가 많이 난다. 어느곳이 더 싸고 비싸고 정도의 단순한 비교를 넘어서 제공하는 기능과 그 기능에대한 pricing이 다르며, github 같은 경우는 좀 더 open source project를 지향하는 지향점이 다르다고 생각한다.

마지막으로 가장 좋은 차이점이라고 생각하는 것은 trello이다.
trello는 atlassian 이 갖고 있는 협업 웹서비스(혹은 웹 애플리케이션)인데, trello를 애용하는 편이라 repo에 필요한 board를 연결해두면 아주 편리하다.

bitbucket에 연결한 trello

실수

자주하는 실수로… readme.md 의 추가로 initializing을 해놓은 후, 내 프로젝트 구성 중 필요없는 파일을 뺄 수 있는 .gitignore 파일을 먼저 commit -> push 혹은 해당파일과 동시에 first commit을 해야하는데 일단 먼저 local repo를 commit하고나서 아… 맞다.. 하는 경우가 굉장히 많다.
이번에도 repo 구성단계에서 이번 프로젝트는 eclipse, maven, java 프로젝트이므로 target directory라던가 .class (바이너리 파일) 을 제외해야하는데 미리 올려놓고 이걸 어쩐다…했다.
결국에는 remote repository를 제거한 후에 다시 commit/push 함으로써 해결을 했지만, 또 다시 이런 일이 발생하지 않게 유의해야한다.

git
Powered by Hexo
Original Theme Weightless
Owner Dev.secr3t