검수요청.png검수요청.png

"깃허브"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
잔글 (같이 보기)
 
(사용자 6명의 중간 판 29개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''깃허브'''(GitHub)는 소프트웨어 분산 버전 관리(DVC) 툴인 [[깃]](Git)을 사용하는 [[프로젝트]]를 지원하기 위한 [[웹호스팅]] 서비스이다. (Git)이 [[텍스트]] 명령어 입력 방식인데 반해, 깃허브는 화려한 [[그래픽 사용자 인터페이스]](GUI)를 제공한다.
+
[[파일:깃허브 로고.png|썸네일|200픽셀|'''깃허브'''(GitHub)]]
 +
[[파일:깃허브 글자.png|썸네일|300픽셀|'''깃허브'''(GitHub)]]
  
깃허브는 전 세계 최대 규모의 [[오픈소스]] 공유 [[사이트]] 겸 개발자 [[커뮤니티]]로 성장했다. [[루비]](Ruby) 언어를 사용하여 개발했다.
+
'''깃허브'''<!--깃 허브-->(GitHub)는 소프트웨어 분산 버전 관리(DVC) 툴인 [[깃]](Git)을 사용하는 [[프로젝트]]를 지원하기 위한 [[웹호스팅]] 서비스이다. 깃(Git)이 [[텍스트]] 명령어 입력 방식인데 반해, 깃허브는 화려한 [[그래픽 사용자 인터페이스]](GUI)를 제공한다. 깃허브는 전 세계 최대 규모의 [[오픈소스]] 공유 [[사이트]] 겸 개발자 [[커뮤니티]]로 성장했다. [[루비]](Ruby) 언어를 사용하여 개발했다. 깃허브의 [[마스코트]]는 고양이 머리에 문어 다리가 달린 [[옥토캣]](Octocat)이다.
  
2016년 5월 서울특별시는 행정정보 공공데이터 목록 500만건을 깃허브 사이트에 공유했다. 깃허브의 [[마스코트]]는 고양이 머리에 문어 다리가 달린 [[옥토캣]](Octocat)이다.
+
{{:인터넷 배너|호스팅}}
 +
 
 +
== 개요 ==
 +
깃허브는 가장 인기있는 [[깃]](Git) 호스팅 사이트이다. 깃허브의 프로젝트는 표준 깃 명령줄 인터페이스를 사용하여 접근하고 조작할 수 있으며 모든 표준 깃 명령어들이 이 인터페이스와 함께 구동된다. 깃허브는 또한 등록 사용자와 비등록 사용자 모두에게 사이트의 공개 저장소를 찾아볼 수 있는 권한을 제공하며 여러 데스크톱 클라이언트와 깃 플러그인 또한 깃허브 그리고 플랫폼을 연동하는 다른 서드파티에 의해 개발되고 있다. 깃허브를 구동하는 소프트웨어는 루비 온 레일즈와 얼랭을 사용하여 깃허브 개발자들인 '''완스트래스'''(Wanstrath), '''하이엣'''(Hyett), '''프레스턴-워너'''(Preston-Werner)에 의해 개발되었다.<ref name="위키백과">〈[https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C 깃허브]〉, 《위키백과》</ref>
 +
 
 +
== 특징 ==
 +
=== 깃과 깃허브 ===
 +
깃(Git)과 깃허브(Github)를 구별해야 한다. 소스코드를 효율적으로 관리할 수 있게 해주는 형상관리도구인 깃(Git)은 분산 소스 버전 관리 시스템이며 서버를 분산시켜 구축할 수 있게 하는 소프트웨어이다. 개발자들의 버전 제어 및 공동 작업을 위한 플랫폼인 깃허브(GitHub)는 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스를 제공하고 깃을 업로드 할 수 있는 웹사이트이다.<ref name="에이콘아카데미">에이콘아카데미, 〈[https://acornedu.blog.me/221522579114 깃(Git)과 깃허브(GitHub) 궁금하시죠?]〉, 《네이버 블로그》, 2019-04-25</ref>
 +
 
 +
=== 버전관리 ===
 +
버전관리는 개발자간의 협업에 필요하다. 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 서로 공유하며 개발할 수 있다. 버전관리 시 소스 하나 또는 묶음을 하나의 버전으로 간주한다. 파일이나 폴더를 추가, 수정, 삭제하며 사람이 직접 관리를 한다. 원할 때 예전 버전 내용 전체를 되돌려 볼 수 있으며 복잡한 코드를 개발할 때 이전 버전과 비교하기 편하다. 버전관리 활용의 장점은 개발 협업이 용이하다는 것이다. 또한 이력 관리가 개별적으로 가능하고 관리 내용을 오픈소스로 공유 할 수 있다는 장점을 가지고 있다.<ref name="에이콘아카데미"></ref>
 +
 
 +
=== 형상과 버전관리 도구 ===
 +
* '''동시 버전 관리 시스템''' : 동시 버전 관리 시스템(CVS; Concurrent Versions System)은 프로젝트 전체가 아닌 각각 파일 관리가 가능하다. 현재는 한계를 맞아 새롭게 서브버전이 개발되었다.
 +
* '''SVN''' : SVN(Subversion)은 동시 버전 관리 시스템을 대체하는 버전 관리 시스템으로 형상관리 쪽에서는 깃만큼이나 굉장히 많이 쓰이는 툴이다. 현재 아파치 최상위 프로젝트로 세계 여러나라 개발자 커뮤니티와 함께 지속적으로 개발되고 있다.
 +
* '''머큐리얼''' : 머큐리얼(Mercurial)은 파이썬과 일부 C언어로 개발된 '''크로스 플랫폼 분산 버전 관리 툴'''이다. 기본적으로 명령 줄 인터페이스 프로그램으로 모든 명령이 hg로 시작한다.<ref name="에이콘아카데미"></ref>
 +
 
 +
=== 주요 개념 ===
 +
* '''병합''' : 병합(Merge)은 한 브랜치(Branch)에서 완성한 작업을 다른 브랜치에 병합한다.
 +
* '''태그''' : 태그(tag)는 특정 이력을 가지는 커밋(commit)에 대한 참조이다.
 +
* '''풀 리퀘스트''' : 풀 리퀘스트(Pull request)는 완료한 작업을 다른 사람이 리뷰하고 병합하도록 요청하는 작업이다.
 +
* '''이슈''' : 이슈(issue)는 기능에 대한 논의, 버그 추적하는 것을 의미한다.
 +
* '''위키''' : 위키(wiki)는 링크들을 연결해 웹페이지를 생성한다.
 +
* '''푸시''' : 푸시(Push)는 내 컴퓨터 로컬에 저장되어 있던 버전 정보를 서버에 올리는 작업이다.
 +
* '''풀''' : 풀(Pull)는 깃 저장소 서버로부터 내 컴퓨터 로컬로 버전 정보 전체를 가져오는 작업이다.<ref name="에이콘아카데미"></ref>
 +
 
 +
=== 용어 정리 ===
 +
* '''메인 저장소''' : 메인 저장소(Main repository)는 오픈소스 프로젝트의 깃허브 상의 메인 저장소를 의미한다. 개인이 기여하고 싶은 프로젝트의 저장소이므로 개인에게 쓰기 권한이 없고 일반적으로 이를 '''업스트림'''(Upstream)이라고 부른다.
 +
* '''나의 저장소''' : 나의 저장소(My github repository)는 깃허브상에서 자신의 계정상에 존재하는 저장소로 메인저장소로 부터 포크(fork)한 저장소이다.
 +
* '''로컬 저장소''' : 로컬 저장소(Local git repository)는 나의 컴퓨터사에 생성한 로컬 깃 저장소를 의미한다.
 +
* '''작업 공간''' : 작업공간(Workspace)는 컴퓨터상에서 실제 내가 소스를 개발하고 수정하는 작업공간을 의미한다.<ref>Hosang Jeon, 〈[http://guruble.com/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A6%AC%EB%B7%B0%ED%84%B0%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%90%98%EB%8A%94-%EA%B2%83/ 오픈소스 기여를 위한 GITHUB 개념정리]〉, 《Guruble 블로그》, 2014-02-27</ref>
 +
 
 +
=== 브랜치 ===
 +
브랜치(Branch)는 독립적으로 개발하는 것을 의미한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 발생한다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있다. 모든 버전 관리 시스템은 브랜치를 지원한다. 이 브랜치는 다른 것들과 구분되는 특징이자 최고의 장점으로 언급되곤 한다. 가장 두드러지는 특징은 매우 가볍다는 것이다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다.<ref>〈[https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 3.1 Git 브랜치 - 브랜치란 무엇인가]〉, 《깃》</ref>
 +
 
 +
=== 깃허브의 장점 ===
 +
깃허브는 소스코드 다시보기, 문서자료의 분류정리, 커뮤니티 관리, 코드 호스팅, 프로젝트 관리 및 통합에 사용된다. 이러한 깃허브의 장점은 다음과 같다.
 +
 
 +
# 월정액으로 이용시, 비공개 사설 저장소를 제공한다.
 +
# 좋은 웹 [[UI]]를 제공한다.
 +
# [[위키]](Wiki)를 제공한다.
 +
# 이슈 페이지를 제공한다.<ref>에이콘아카데미, 〈[https://acornedu.blog.me/220992535644 [프로그래밍] 깃(Git)으로 빠르고 편리하게 프로젝트 관리하자]〉, 《네이버 블로그》, 2017-04-26</ref>
 +
 
 +
== 데이터 공유 ==
 +
2016년 5월 서울특별시는 행정정보 공공데이터 목록 500만건을 깃허브 사이트에 공유했다.  
 +
 
 +
{{각주}}
 +
 
 +
== 참고자료 ==
 +
* 〈[https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C 깃허브]〉, 《위키백과》
 +
* lsgl, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ufo7142&logNo=220628116787&proxyReferer=https%3A%2F%2Fwww.google.com%2F github란? - github 소개 및 설치]〉, 《네이버 블로그》, 2016-02-15
 +
* 에이콘아카데미, 〈[https://acornedu.blog.me/221522579114 깃(Git)과 깃허브(GitHub) 궁금하시죠?]〉, 《네이버 블로그》, 2019-04-25
 +
* Hosang Jeon, 〈[http://guruble.com/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A6%AC%EB%B7%B0%ED%84%B0%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%90%98%EB%8A%94-%EA%B2%83/ 오픈소스 기여를 위한 GITHUB 개념정리]〉, 《Guruble 블로그》, 2014-02-27
 +
* 에이콘아카데미, 〈[https://acornedu.blog.me/220992535644 [프로그래밍] (Git)으로 빠르고 편리하게 프로젝트 관리하자]〉, 《네이버 블로그》, 2017-04-26
 +
* 〈[https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 3.1 Git 브랜치 - 브랜치란 무엇인가]〉, 《깃》
  
 
== 같이 보기 ==
 
== 같이 보기 ==
9번째 줄: 64번째 줄:
 
* [[마이크로소프트]]
 
* [[마이크로소프트]]
  
{{블록체인 솔루션|토막글}}
+
{{소프트웨어|검토 필요}}
 +
{{인터넷}}
 +
{{블록체인 솔루션}}
  
 
[[분류:프로그램]]
 
[[분류:프로그램]]

2024년 4월 2일 (화) 20:41 기준 최신판

깃허브(GitHub)
깃허브(GitHub)

깃허브(GitHub)는 소프트웨어 분산 버전 관리(DVC) 툴인 (Git)을 사용하는 프로젝트를 지원하기 위한 웹호스팅 서비스이다. 깃(Git)이 텍스트 명령어 입력 방식인데 반해, 깃허브는 화려한 그래픽 사용자 인터페이스(GUI)를 제공한다. 깃허브는 전 세계 최대 규모의 오픈소스 공유 사이트 겸 개발자 커뮤니티로 성장했다. 루비(Ruby) 언어를 사용하여 개발했다. 깃허브의 마스코트는 고양이 머리에 문어 다리가 달린 옥토캣(Octocat)이다.

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

개요[편집]

깃허브는 가장 인기있는 (Git) 호스팅 사이트이다. 깃허브의 프로젝트는 표준 깃 명령줄 인터페이스를 사용하여 접근하고 조작할 수 있으며 모든 표준 깃 명령어들이 이 인터페이스와 함께 구동된다. 깃허브는 또한 등록 사용자와 비등록 사용자 모두에게 사이트의 공개 저장소를 찾아볼 수 있는 권한을 제공하며 여러 데스크톱 클라이언트와 깃 플러그인 또한 깃허브 그리고 플랫폼을 연동하는 다른 서드파티에 의해 개발되고 있다. 깃허브를 구동하는 소프트웨어는 루비 온 레일즈와 얼랭을 사용하여 깃허브 개발자들인 완스트래스(Wanstrath), 하이엣(Hyett), 프레스턴-워너(Preston-Werner)에 의해 개발되었다.[1]

특징[편집]

깃과 깃허브[편집]

깃(Git)과 깃허브(Github)를 구별해야 한다. 소스코드를 효율적으로 관리할 수 있게 해주는 형상관리도구인 깃(Git)은 분산 소스 버전 관리 시스템이며 서버를 분산시켜 구축할 수 있게 하는 소프트웨어이다. 개발자들의 버전 제어 및 공동 작업을 위한 플랫폼인 깃허브(GitHub)는 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스를 제공하고 깃을 업로드 할 수 있는 웹사이트이다.[2]

버전관리[편집]

버전관리는 개발자간의 협업에 필요하다. 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 서로 공유하며 개발할 수 있다. 버전관리 시 소스 하나 또는 묶음을 하나의 버전으로 간주한다. 파일이나 폴더를 추가, 수정, 삭제하며 사람이 직접 관리를 한다. 원할 때 예전 버전 내용 전체를 되돌려 볼 수 있으며 복잡한 코드를 개발할 때 이전 버전과 비교하기 편하다. 버전관리 활용의 장점은 개발 협업이 용이하다는 것이다. 또한 이력 관리가 개별적으로 가능하고 관리 내용을 오픈소스로 공유 할 수 있다는 장점을 가지고 있다.[2]

형상과 버전관리 도구[편집]

  • 동시 버전 관리 시스템 : 동시 버전 관리 시스템(CVS; Concurrent Versions System)은 프로젝트 전체가 아닌 각각 파일 관리가 가능하다. 현재는 한계를 맞아 새롭게 서브버전이 개발되었다.
  • SVN : SVN(Subversion)은 동시 버전 관리 시스템을 대체하는 버전 관리 시스템으로 형상관리 쪽에서는 깃만큼이나 굉장히 많이 쓰이는 툴이다. 현재 아파치 최상위 프로젝트로 세계 여러나라 개발자 커뮤니티와 함께 지속적으로 개발되고 있다.
  • 머큐리얼 : 머큐리얼(Mercurial)은 파이썬과 일부 C언어로 개발된 크로스 플랫폼 분산 버전 관리 툴이다. 기본적으로 명령 줄 인터페이스 프로그램으로 모든 명령이 hg로 시작한다.[2]

주요 개념[편집]

  • 병합 : 병합(Merge)은 한 브랜치(Branch)에서 완성한 작업을 다른 브랜치에 병합한다.
  • 태그 : 태그(tag)는 특정 이력을 가지는 커밋(commit)에 대한 참조이다.
  • 풀 리퀘스트 : 풀 리퀘스트(Pull request)는 완료한 작업을 다른 사람이 리뷰하고 병합하도록 요청하는 작업이다.
  • 이슈 : 이슈(issue)는 기능에 대한 논의, 버그 추적하는 것을 의미한다.
  • 위키 : 위키(wiki)는 링크들을 연결해 웹페이지를 생성한다.
  • 푸시 : 푸시(Push)는 내 컴퓨터 로컬에 저장되어 있던 버전 정보를 서버에 올리는 작업이다.
  •  : 풀(Pull)는 깃 저장소 서버로부터 내 컴퓨터 로컬로 버전 정보 전체를 가져오는 작업이다.[2]

용어 정리[편집]

  • 메인 저장소 : 메인 저장소(Main repository)는 오픈소스 프로젝트의 깃허브 상의 메인 저장소를 의미한다. 개인이 기여하고 싶은 프로젝트의 저장소이므로 개인에게 쓰기 권한이 없고 일반적으로 이를 업스트림(Upstream)이라고 부른다.
  • 나의 저장소 : 나의 저장소(My github repository)는 깃허브상에서 자신의 계정상에 존재하는 저장소로 메인저장소로 부터 포크(fork)한 저장소이다.
  • 로컬 저장소 : 로컬 저장소(Local git repository)는 나의 컴퓨터사에 생성한 로컬 깃 저장소를 의미한다.
  • 작업 공간 : 작업공간(Workspace)는 컴퓨터상에서 실제 내가 소스를 개발하고 수정하는 작업공간을 의미한다.[3]

브랜치[편집]

브랜치(Branch)는 독립적으로 개발하는 것을 의미한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 발생한다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있다. 모든 버전 관리 시스템은 브랜치를 지원한다. 이 브랜치는 다른 것들과 구분되는 특징이자 최고의 장점으로 언급되곤 한다. 가장 두드러지는 특징은 매우 가볍다는 것이다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다.[4]

깃허브의 장점[편집]

깃허브는 소스코드 다시보기, 문서자료의 분류정리, 커뮤니티 관리, 코드 호스팅, 프로젝트 관리 및 통합에 사용된다. 이러한 깃허브의 장점은 다음과 같다.

  1. 월정액으로 이용시, 비공개 사설 저장소를 제공한다.
  2. 좋은 웹 UI를 제공한다.
  3. 위키(Wiki)를 제공한다.
  4. 이슈 페이지를 제공한다.[5]

데이터 공유[편집]

2016년 5월 서울특별시는 행정정보 공공데이터 목록 500만건을 깃허브 사이트에 공유했다.

각주[편집]

  1. 깃허브〉, 《위키백과》
  2. 2.0 2.1 2.2 2.3 에이콘아카데미, 〈깃(Git)과 깃허브(GitHub) 궁금하시죠?〉, 《네이버 블로그》, 2019-04-25
  3. Hosang Jeon, 〈오픈소스 기여를 위한 GITHUB 개념정리〉, 《Guruble 블로그》, 2014-02-27
  4. 3.1 Git 브랜치 - 브랜치란 무엇인가〉, 《깃》
  5. 에이콘아카데미, 〈[프로그래밍 깃(Git)으로 빠르고 편리하게 프로젝트 관리하자]〉, 《네이버 블로그》, 2017-04-26

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 깃허브 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.