codestates / codestates/ds-blog
[오예은] Git-hub? Git? 무엇에 쓰는 물건이고?
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
[[원문 링크]](https://medium.com/@dsdoris/git-hub-git-%EB%AC%B4%EC%97%87%EC%97%90-%EC%93%B0%EB%8A%94-%EB%AC%BC%EA%B1%B4%EC%9D%B4%EA%B3%A0-3336d13d7162)
>이번주에 새롭게 데이터사이언스 교육과정을 듣게 되면서 'Git-hub'라는 것을 새로 접하게 되었다. 개발자들 사이에선 오픈소스의 성지라고 불리며 많이 이용되고 있다고 하는데 도대체 무엇인지, 어떤 용도로 쓰이는지 그리고 나는 어떻게 활용할 수 있을지 알아보고자 글을 작성하게 되었다.
# Git? Git-hub?

**git**은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.(위키백과)
git에서 변경사항이나 시점을 관리하기 때문에 버전별로 파일을 따로 생성할 필요 없이 이전 버전으로 복구가 가능하다. 또한, 하나의 프로젝트 혹은 프로그램을 여러 가지 버전으로 개발이 가능하다.

**git-hub**는 git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다. git을 공유할 수 있는 서비스를 제공하는 일종의 클라우드 저장소라고 생각하면 된다. 비슷한 사이트로는 bitbucket, gitlab 등이 있다.
사용자는 git-hub를 통해 다른 사람이나 기관의 프로젝트의 소스코드가 어떤 과정을 거쳤는지 확인해 볼 수 있다.
# Git-hub를 사용하는 이유
- 수정된 사항을 공유하고 여러 버전을 관리할 수 있다는 장점이 있어 주로 개인 작업보다는 공동으로 작업하는 데 쓰인다.
- GitHub에 공개된 소스를 여러 개발자들이 확인, 수정하는 과정에서 더 나은 결과물이 만들어질 수 있다.
- 위의 과정을 통해 각국의 개발자들이 커뮤니티를 형성하여 관련분야를 활성화시킬 수 있다.
# Git-hub 간단하게 살펴보기
## 이용방법
사실 필자는 데이터사이언스 입문자로 파이썬의 ㅍ의 한 획을 긋기 위해 애쓰는 중이라 아직 git설치을 설치하고 commit, push하는 작업은 해보지 못했다. 대부분의 개발자들은 자신의 로컬 컴퓨터에서 git 파일을 관리하고 GitHub에서 원격으로 소스 관련 데이터를 주고 받으며 작업 하지만 이 글에서는 간단하게 github과 친해지는 목적으로 메뉴나 기능들을 간단히 소개하려 한다.
> 만약 git 사용 방법을 알고 싶다면 유튜브 얄팍한 코딩사전님의 <가장 쉬운 Git 강좌>가 도움이 될 것이다.
## GitHub Repository 메뉴

- **Repository** : 자신의 코드나 프로젝트를 저장하는 곳으로, 일종의 온라인 드라이브라고 할 수 있다. 계정마다 여러개를 생성할 수 있다. (최대 갯수는 조사 후 추가할 예정)
- **Code**: git(로컬)에서 작성한 코드를 커밋하여 업로딩(push한다고 함)하는 곳이다.
- **Issue**: 작업, 버그, 기능 요청 등을 관리하기 위한 페이지로, 프로젝트와 관련된 이슈 사항을 키워드로 검색해보거나 해당 이슈의 진행상태를 확인할 수 있다.
- **Pull-request**: 내 레파지토리로 가져와서(fork*) 수정한 내용을 원래의 레파지토리에 반영해 달라고 요청하는 것이다. 이 기능을 사용하면 어떤 부분이 변경되었는지 확인할 수 있다.
` FYI: fork - 어떤 레파지토리에 있는 내용을 작업하기 위해 내 레파지토리로 통째로 복사해오는 것(일종의 '퍼가요~♡'라고 보면 됨)`
- **Actions**: 소프트웨어 workflow를 자동화할 수 있도록 도와주는 도구로써, 코드를 테스트 하거나 자동으로 배포하는 등 업무에 있어서 자동 프로세스를 만들 수 있는 기능이라고 한다. 이 기능은 조직의 멤버로 가입되어있어야만 이용 가능하다.
- **Projects**: 프로젝트 진행 사항을 관리할 수 있는 곳이다.
- **Wiki**: 해당 repository와 관련된 백과사전을 만들 수 있는 곳이다. 프로젝트 시에 작업상황이나 규칙 등을 기록, 문서화하여 명시하고 싶을 때 쓰면 좋을 것 같다.
- **Security**: 해당 repository에 보안 정책과 관련된 사항에 대해 다루는 메뉴다.
- **Insights**: repository에서 일어나는 제반 사항에 대한 통계를 볼 수 있는 메뉴로, 트래픽, 커밋, 기여도, 의존도, fork 정보까지 다양한 사항의 통계치, 그래프를 확인할 수 있다.
- **Settings**: repository에 대한 설정을 변경하는 곳으로, 저장소 이름, 오픈할 메뉴, 접근 권한, 브랜치(branch) 등을 관리할 수 있다.
# 학습자로서 Git-hub 활용하기
필자는 이제 막 구글 코랩(Google colab)을 이용하여 파이썬 공부를 시작했기 때문에 아직은 콘솔창과 대화할 일이 많지 않다. 그러나 이렇게 웹 상으로 작업하는 경우에도 github 활용성은 충분히 있는 것 같다. 현재 교육을 받으며 이용하고 있는 기능에 대해 적어본다.
1. fork, pull-request 기능 이용하여 소스코드 공부해보기
- 과제 파일을 fork로 받아서 pull-request로 제출해보기
- 사람들이 추천하는 repo(repository)에서 fork해와서 소스 공부
2. issue 메뉴에 TIL 기록하기, 작업(To-do 혹은 task list) 관리하기
- issue를 게시판처럼 활용하여 하루 하루 배운 내용 기록하기(검색가능)
- issue를 task manager로 활용하여 진행상태 점검하기(라벨활용)
---
오늘 가볍게 git과 github에 대해서 알아보았다. 다른 툴과 개발환경도 그렇지만 어떻게 활용하느냐에 따라 활용 방법과 가능성은 천차만별인 것 같다. 무엇보다도 쉽게 만나기 힘든 프로 개발자들의 소스를 보며 학습할 수 있다는 것은 github과 같은 서비스의 큰 매력이 아닐까 생각한다.
#### 참고사이트
- https://ko.wikipedia.org/wiki/
- https://zzsza.github.io/
- https://blog.naver.com/pcmola/222026183913
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.