티스토리 뷰
버전관리 시스템 : Github 란?
프로그래밍을 공부하는 학생이나 개발자라면
사용은 안해봤어도 지나가다가 한번쯤은 들어봤을 시스템 'Github'에 대해 공부해보려 합니다.
저도 프로그램만 설치하고 테스트 용도로 사용하기만 해봤기 때문에 여러 블로그에서 얻은 지식을 통해 설명드리겠습니다~
단어의 뜻을 알면 무엇에 쓰이는 프로그램인지는 짐작이 오기 마련입니다.
Github = Git(재수없고 멍청한 놈) + hub(중심, 중심지)
외국에서는 git의 의미가 재수없고 멍청한 놈 이외에 다른 뜻으로 사용하기 때문에 사용했는지는 모르겠지만 hub의 의미를 보니 어떤 목적의 중심지를 가진 프로그램이다 라는 추측을 할 수 있습니다.
유래를 간단히 보면 과거 상용되었던 DVCS를 대신하여 '리누스 토발즈'라는 사람을 중심으로 Linux 개발 커뮤니키가 자체 VCS를 개발한게 Git이라고 합니다.
* 참고
- VCS (Version Control System, 버전관리 시스템) :
같은 버젼의 정보에 대해 여러 버젼으로 관리하여 파일의 변화를 시간에 따라 체크하여 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
- CVCS (Centralized VCS, 중앙집중식 버전 관리 시스템) : 개발시에 개발자들이 함께 작업해야 하는 경우에 사용되는 시스템
장점 / 누가 무엇을 하는지 관리하기가 쉬움
단점 / 중앙 서버가 다운될 경우 모든 작업이 중단되고 하드디스크에 문제가 생기면 모든 정보를 잃을 수도 있다.
- DVCS (Distributed VCS, 분산 버전 관리 시스템) : 파일의 스냅샷을 클라이언트가 가져가는 것이 아니라 저장소 자체를 복제하는 시스템
장점 / 서버 다운에도 복원에 용이, 리모트 저장소가 많을 수도 있기 때문에 동시에 많은 그룹과 다양한 방법으로 협업이 가능하다.
- 스냅샷 : 데이터의 보존방법 중의 하나로 어떤 상태의 데이터가 보존된 상태로 캡쳐하듯이 데이터를 담은 거대 이미지파일을 만들어 보관하는 방법...!
(윈도우 pc에서 ctrl + printscroll로 캡처하듯이 이미지로 떠서 보관하는 것이라 하네요..!)
우리가 알아보는 Github는 VCS 중에서도 DVCS로, 기본적으로 자신의 저장파일을 비공개가 아닌 다른 사용자가 볼 수 있는 공개형태를 베이스로 두고 있기 때문에 개발자 뿐만 아니라 많은 분야의 사용자들이 사용하고 있는 프로그램입니다.
여러가지 프로젝트를 만들다보면 많은 사람들이 github에 파일을 올려놓고 공유하는 것을 많이 볼 수 있었는데 아직 저처럼 취준생이나 일반인도 접근하기 쉽기 때문에 많은 사용자가 사용한다고 생각합니다.^_^
(사실 처음 접했을 때는 단순히 자신의 파일을 공유하는 프로그램인줄 알았는데 버젼관리,형상관리가 주 목적이였네요..ㅎㅎ)
나중에 Github에 설치시 해야할 일, 사용되는 간단한 커멘드명령어나 기능들에 대해서 알아보긴 하겠지만
큰 틀에서 보면
프로젝트가 거주할 장소인 온라인 저장소를 생성한 후 프로젝트를 작업할 공간인 컴퓨터에 로컬 저장소를 생성하는 개념인 것 같다.
온라인 저장소와 로컬 저장소를 remote시켜주면 서로 연동되어 사용할 수 있는 것이다...!
사실 이 동영상을 보면 어떤 용도로 사용되는지 딱 정리 될 것이다.
동영상에서 '프로젝트의 역사를 탐험'이라는 말을 쓰는데 이 말이 정말 딱 github를 표현하기 좋은 말인 것 같다.
앞으로 중요 프로젝트나 자료들은 이런 형상관리 시스템에 보관하여 사용하는 것이 중요한 것 같다...!!
==================================================================================
처음 쓰는 글이라 기승전결도 없고 휘갈겨 적은 느낌이 없지않아 있지만 하다보면 실력이 늘것이라 생각한다...ㅎㅎ
사실 누가 이 글을 보고 배웠으면 한다 라는 느낌보다는
내가 정리하면서 한번 더 생각해보고 복습하는 느낌이라 정확한 자료는 밑에 참고 사이트에서 보는 것이 좋을 것 같다!
*참고 사이트
http://flowerykeyboard.tistory.com/1
https://nolboo.kim/blog/2013/10/06/github-for-beginner/
http://recoveryman.tistory.com/249?category=635733
https://moon9342.github.io/git-github
- Total
- Today
- Yesterday
- QueryDSL
- jwplayer
- @subquery
- 예제
- 특징
- SDK
- login
- IN Clause
- 로그인
- @subselect
- on('seek')
- @EventListener
- playsinline
- playbackRate
- 관리자 도구
- Animation
- join subquery
- 의미
- oauth
- 장점
- Queue
- Multi IN Clause
- map
- 자바
- 네트워크
- list
- SET
- beforeunload
- API
- 원리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |