도비야 산책가자 2020. 8. 31. 03:24

서론

요즘 대부분 git을 사용하여 코드를 관리한다.

찾아보니 이것또한 리누스 토발즈 선생님이 구상하고 동료들과 작성한 것이라 한다. ICCE에서 리누스 토발즈 선생님을 만났을땐 그저 리눅스의 아버지로만 알고 있었는데 새삼스럽게 더 멋있는 분이구나 깨닫는다.

현재 대부분의 개발자들에게 리눅스 그리고 git은 매우 중요한 부분을 차지할 것이다.

어찌보면 개발자들의 아버지가 아닐까 싶다.

본론

Git 정의

Git의 정의와 히스토리는 위키에 아주 잘 나와있다. 따라서 본인이 생각하는 git을 한마디로 정의하자면

'협업시 동료들과의 code 충돌 방지 및 추적 관리에 용이한 tool'이다.

이를 또 하나의 단어로 표현하자면 '코드 관리 도구', '분산 버전 관리 sw'라 할 수 있다.

 

대게 협업시에 많이 사용하지만 혼자 history를 추적 및 관리할 수 있다.
GNU 일반 공중 허가서를 따르기 때문에 자유 소프트웨어다.

 

짚고넘어가기(Git과 GitHub)

가끔 초보 개발자들의 경우 Git과 GitHub을 헷갈리기도 하는데. 명확히 Git 과 GitHub은 다른 것이다.

 

말 그대로 Git은 위에서정의한 바와 같이 tool이며 Github의 경우 관리가 귀찮은 이들을 위해 git 설정을 supporting 해주는 서비스다. 대부분 웹 베이스에서 소스코드를 열람하는 서비스를 지원 및 SNS기능을 갖추고있다. 

 

특히 깃헙의 경우 많은 오픈소스가 있어 검색 및 적용이 용이해 입문자들이 api, library를 가져오거나 source 참고를 하기에 용이하므로 알아두면 나쁘지 않다. 별도의 환경설정 없이 가입 후 웹페이지를 생성하거나, code를 올리고 관리 할 수있어 매우 용이하다.


과거의 본인은 포폴용으로 코드는 별로 없지만 웹을 구성하여 이력서에 쓰기 모든 이력들을 DNS로 제공했었다. github이 매우 좋은 시스템이지만, 무료 계정이 private 게시물을 올릴 수 없어 yona를 설치하여 setting후 yona에서 git 관리를 했었다. (물론 현재는 회사 정보시스템팀에서 알아서 해주고 있다. 정말 편해!)

 

지금은 github에서 무료 계정도 private로 올릴 수 있다.

아마 내가 연구생이 아니여서 개인이 사비로 별도의 서버를 관리해야 했다면 나는 메인으로 github을 썼을 것이다.

최근 추세는 github id를 적는란이 있는 등 실제로 coding 이력을 보고 싶어하는 회사가 많으니 왠만하면 만드는게 낫다.

 

(깃헙 추가 정책은 당근마켓 개발자인 정창훈님이 잘 정리해뒀으니 궁금하면 참고하자!
https://www.44bits.io/ko/post/news--github-announcing-unlimited-free-private-repository)

 

github contibutions 꾸미기 중 하나 / @그림출처 : https://medium.com/@leandrossimoes/how-do-i-increase-my-github-contribution-graph-b6e12a4f8e58

 

따라서,

  • Git
    • Github : Microsoft사에서 협업지원 및 소셜 코딩 지원, SNS플랫폼, 웹 호스팅 지원을 제공하는 웹기반 서비스
    • GitLab : GitLab사에서 개발한 위키 및 이슈 트래커 기능을 갖춘 데브옵스(Development+ Operations)시스템
    • Yona : Git 저장소 및 이슈트래커 기능을 갖춘 코드 저장소
    • 등등

 

위 와 같은 카테고리로 git base의 서비스들은 다양하게 있다. 명확히 어떤 단어로 지칭되어야 할지 모르겠지만, 일부는 JIRA와 Trello 등을 포함시켜 이슈트래커라고 부르기도 한다.

말그대로 이슈 트래킹 기능도 있기 때문이다. 개인적으로 이슈트래커보다는 개념적으로 레벨링하여 개념만 가지고 있는것이 나을 것 같다.

모든 이슈트래커들을 사용해보지 못했지만 단순 이슈베이스에서 프로젝트를 관리하기 위해 대시보드에서 프로젝트별 이슈를 open, on progress, pending, resolve, close 로 관리하는 몇몇 트래커와는 결이 다르다고 생각하기 때문이다.

 

실제로 사용해 본 경험으로 Github이 가장 편하다. 알아서 관리해주고 웹페이지 호스팅 서비스도 제공하기 때문이다.
(https://github.com/)

하지만 실제로는 yona를 선호했는데 설치형이라 확실히 code가 private하게 관리되기 때문이다. 대신에 해당 서버를 본인이 관리해야 한다는 귀찮음이 있다.

그래도 협업하는 곳이 공공기관 및 사기업 등의 경우 code 공개에 매우 예민하기 때문에 만에 하나 혹은 혹시라는 마음에 Yona를 쓰기도 했다.

 

(대구가톨릭대학교에서 졸업작품 및 일부 진행 프로젝트 관리를 Yona에서 관리하니 Yona가 궁금한 사람들은 들어가서 어떤 시스템인지 확인해보는 것도 좋을 것 같다. http://itgit.cu.ac.kr/

만약 Yona를 보고 마음에 드는 이가 있다면 유로띠라는 개발자님께서 잘 정리해뒀으니 참고하면 좋을 듯 하다.
https://msyu1207.tistory.com/entry/yona%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9D%B4%EC%8A%88-%EA%B4%80%EB%A6%AC%EB%A5%BC-%ED%95%B4%EB%B3%B4%EC%9E%90-yona-%EC%84%A4%EC%B9%98%ED%98%95-%EC%9D%B4%EC%8A%88%ED%8A%B8%EB%9E%98%EC%BB%A4-feat-docker-yona)

결론

git은 현대의 소스코드 관리에 있어 대체 불가능한 코드 관리도구이자, 분산 버전 관리용 sw이다.

git을 base로 하여 다양한 이슈트래커 및 데브옵스 시스템 등이 제공되고 있으니, 본인 성향에 맞게 선택하여 사용하자.