목 차
1. GitLab 소개
A. 버전관리 시스템
B. git
C. 원격 저장소
2. 비교분석 (비용측면)
A. bitbucket
B. github
C. gitlab
3. gitlab에서 프로젝트 생성하기
4. gitlab 프로젝트 코드 받아오기
5. 참조
1. GitLab 소개
우선 아래 유투브 동영상을 한번 보자. 조금 길기는 한데 설명이 좋은 동영상이다.
A. 버전관리 시스템
‘버전관리 시스템’은 소프트웨어를 제작하면서 발생하는 변화들을 기록해서 소프트웨어의 변화를 열람하고, 수정 할 수 있도록 도와주는 시스템이다.
아래와 같은 상황에서 ‘버전관리 시스템’의 도움이 절실하다.
실수로 코드를 지워버렸을 때
동시에 두 명의 개발자가 같은 모듈을 수정할 때
이미 출시된 오래된 버전에서 문제가 발생했고 꼭 수정해야할 때
출시를 앞두고 버그 fix 외에는 코드 수정을 막고자 할 때
중요 출시 이벤트를 방해 받지 않으면서 신규 기능을 추가할 때
이외에도 ‘버전관리 시스템’을 사용하는 장점은 수도 없이 많다. 만약 현재 일하고 있거나 일하고자 하는 업체에서 버전관리 시스템을 사용하고 있지 않으면 최대한 빨리 이직해야 한다. 그 정도로 ‘개발’과 ‘협업’에 있어서 기본이 되는 시스템이다.
B. git
버전관리 시스템을 구현한 구체적인 제품 중의 하나이다. 분산형 버전관리 시스템이라는 특징을 가지고 있고, 가장 많이 사용하는 버전관리 시스템이다.
리눅스 커널부터 시작해서 최근에는 수많은 오픈소스 프로젝트들이 git을 통해서 관리되고 있다. git 자체에 대한 내용은 다음 링크에 가서 공부하자. 생각보다 내용이 많은데 오픈소스 프로젝트를 살펴보기 위해서는 꼭 알아야 하는 기술이다. 그래도 필수적으로 알아야 하는 명령어는 그렇게 많지 않다. (clone, commit, add, push, pull 정도??)
C. 원격 저장소
저장소는 소스코드의 버전을 관리하는 파일로 이루어진 데이터베이스이다. 이 파일을 원격지에 두면 원격 저장소가 되고 로컬에 위치하면 로컬 저장소가 된다. 로컬 저장소를 가지는 버전관리 시스템을 분산형 버전관리 시스템이라고 하는데 git이 여기에 속한다.
분산형 버전관리 시스템의 경우, tree 형태로 저장소가 분기 된다. 수 많은 저장소가 생겨날 수 있지만 root는 하나이다. 가령 리눅스 커널의 경우, 많은 저장소가 생겨나고 관리되고 있지만 모두가 인정하는 공신력있는 저장소는 토발즈가 운영하는 저장소이다.
따라서 모든 분산형 버전관리 시스템 하의 수정들의 최종 목적지는 원격 저장소다. 그렇게 함으로서 협업, 백업 등이 이루어진다. 하지만 경우에 따라서는 원격 저장소에 반영하지 않는 수정사항도 존재한다. 가령 상황이나 제품에 특화되거나 임시적인 느낌이 강한 수정사항의 경우 로컬 저장소에 (혹은 원격저장소의 브랜치 / 최상위가 아닌 원격 저장소) 두기도 한다.
2. 비교분석 (비용측면)
A. bitbucket
5명 까지는 무료지만 10명 이상부터는 비용이 발생한다.
B. github
public 프로젝트의 경우에는 비용이 발생하지 않지만 private 저장소를 만들기 위해서는 비용을 지불해야 한다.
C. gitlab
보면 알겠지만 Free 버전의 경우도 사람 수에 관계없이 무료로 이용할 수 있다. (private & public) 다만 지원을 받기 위해서는 포럼을 통해서 알아봐야 한다는 단점이 존재한다.
비용 측면에서는 gitlab이 최고로 좋은 솔루션으로 보인다. 포럼을 통해서 지원을 받아야 하지만 다른 솔루션들도 무료 사용자들에 대해서는 수준 높은 지원을 제공하지 않을 것 같다.
3. gitlab에서 프로젝트 생성하기
아래 동영상도 살펴보자. 보기 싫으면 바로 아래로 이동한다.
우선 로그인한 gitlab에서 프로젝트를 하나 생성한다.
아래와 같이 새로 생성할 프로젝트의 정보들을 기입할 수 있다.
보면 알겠지만 이미 진행 중인 프로젝트들에서 쉽게 소스코드를 가져와서 프로젝트를 만들 수도 있다. 외부로 공유하지 않겠다는 의미로 private 저장소를 생성했다.
그럼 다음과 같은 프로젝트 생성 설명이 나온다. 빨간색을 보면 소스 코드를 받을 수 있는 위치에 대해서 나와 있다. 일단 파일을 하나 넣어보자. ‘add a file’ 초록색 버튼을 누른다.
그럼 아래와 같이 텍스트 파일을 추가할 수 있는 창이 뜬다. 본인이 원하는 텍스트를 넣고 ‘Commit Changes’를 클릭해보자.
그럼 아래와 같이 파일이 하나 생성되었음을 볼 수 있다.
4. gitlab 프로젝트 코드 받아오기
아래 내용을 이해하기 위해서는 두 가지가 선행되어야 한다.
우선 받아야하는 코드의 주소는 다음과 같다
git@gitlab.com:ID/PROJECT_NAME.git
git@gitlab.com:kkangeva/mytest_app.git
다운을 시도해본다. (명령은 아래에 있다) 실패하는게 당연하니 당황하지 말자. 저장소에 대한 권한이 없으니 체크하라는 에러 로그가 발생할거다. 어떤 상황이냐면 웹사이트에 로그인을 하는데 ID만 넣고 비밀번호는 넣지 않은 상황이다. 당연히 비밀번호를 넣지 않았으니 실패할 수 밖에…
git clone git@gitlab.com:kkangeva/mytest_app.git
한마디로 비밀번호를 서버에 등록해줘야 한다는 의미인데 우선 어디에 등록해야 하는지 살펴보자. 홈페이지에서 [Profile settings → SSH keys] 로 이동하면 'Add SSH Key'라는 버튼만 홀로 있는 텅텅빈 페이지가 뜬다. 여기서 SSH Key (비밀번호)를 넣어주면 된다.
키를 생성하는 것 관련해서 동영상 하나를 첨부한다. 윈도우가 아닌 다른 플랫폼을 사용하는 사람이라면 다음 중 하나의 링크를 살펴보자 : 동영상 / 텍스트
ssh key를 생성하는 방법은 간단하다. 아래의 명령이 핵심 명령이다.
ssh-keygen -t rsa -b 4096 -C "kkangeva@gmail.com"
윈도우 콘솔창에서 ssh key를 생성해보자. 중간에 질문이 나오면 그냥 엔터치고 넘어가면 된다. 그리고 생성된 ~/.ssh/id_rsa.pub 파일의 내용을 서버에 등록만 해주면 끝이다. 아래는 키를 얻는 방법에 대한 이미지이다. 키를 얻어서 'Add SSH Key'를 통해 등록하자.
이제 다운을 다시 시도해본다. 아까와는 달리 소스코드를 다운 받을 수 있음을 알 수 있다. 서버에서 장난삼아 만들어 놓은 README 파일도 보인다. 이제 남은 건 열심히 개발하고 원격 저장소 (gitlab)에 나의 수정사항을 반영하는 거다.
5. 참조
'소프트웨어 > 기타' 카테고리의 다른 글
구글의 자바 코딩 규약 (스타일) (5) | 2015.06.24 |
---|---|
[Eclipse] WebApp 개발하기 (20) | 2015.05.06 |