"깃허브"의 두 판 사이의 차이
(→개요) |
잔글 (→같이 보기) |
||
(사용자 6명의 중간 판 27개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''깃허브'''(GitHub) | + | [[파일:깃허브 로고.png|썸네일|200픽셀|'''깃허브'''(GitHub)]] |
+ | [[파일:깃허브 글자.png|썸네일|300픽셀|'''깃허브'''(GitHub)]] | ||
− | 깃허브는 전 세계 최대 규모의 [[오픈소스]] 공유 [[사이트]] 겸 개발자 [[커뮤니티]]로 성장했다. [[루비]](Ruby) 언어를 사용하여 개발했다. | + | '''깃허브'''<!--깃 허브-->(GitHub)는 소프트웨어 분산 버전 관리(DVC) 툴인 [[깃]](Git)을 사용하는 [[프로젝트]]를 지원하기 위한 [[웹호스팅]] 서비스이다. 깃(Git)이 [[텍스트]] 명령어 입력 방식인데 반해, 깃허브는 화려한 [[그래픽 사용자 인터페이스]](GUI)를 제공한다. 깃허브는 전 세계 최대 규모의 [[오픈소스]] 공유 [[사이트]] 겸 개발자 [[커뮤니티]]로 성장했다. [[루비]](Ruby) 언어를 사용하여 개발했다. 깃허브의 [[마스코트]]는 고양이 머리에 문어 다리가 달린 [[옥토캣]](Octocat)이다. |
− | + | {{:인터넷 배너|호스팅}} | |
== 개요 == | == 개요 == | ||
− | 깃허브는 가장 인기있는 깃(Git) 호스팅 사이트이다. 깃허브의 프로젝트는 표준 깃 명령줄 인터페이스를 사용하여 접근하고 조작할 수 있으며 모든 표준 깃 명령어들이 이 인터페이스와 함께 구동된다. 깃허브는 또한 등록 사용자와 비등록 사용자 모두에게 사이트의 공개 저장소를 찾아볼 수 있는 권한을 제공하며 여러 데스크톱 클라이언트와 깃 플러그인 또한 깃허브 그리고 플랫폼을 연동하는 다른 서드파티에 의해 개발되고 있다. 깃허브를 구동하는 소프트웨어는 루비 온 레일즈와 얼랭을 사용하여 깃허브 개발자들인 '''완스트래스'''(Wanstrath),'''하이엣'''(Hyett), '''프레스턴-워너'''(Preston-Werner)에 의해 개발되었다.<ref name="위키백과">〈[https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C 깃허브]〉, 《위키백과》</ref> | + | 깃허브는 가장 인기있는 [[깃]](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만건을 깃허브 사이트에 공유했다. | ||
{{각주}} | {{각주}} | ||
13번째 줄: | 55번째 줄: | ||
* 〈[https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C 깃허브]〉, 《위키백과》 | * 〈[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 | * 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 브랜치 - 브랜치란 무엇인가]〉, 《깃》 | ||
== 같이 보기 == | == 같이 보기 == | ||
18번째 줄: | 64번째 줄: | ||
* [[마이크로소프트]] | * [[마이크로소프트]] | ||
− | {{블록체인 솔루션 | + | {{소프트웨어|검토 필요}} |
+ | {{인터넷}} | ||
+ | {{블록체인 솔루션}} | ||
[[분류:프로그램]] | [[분류:프로그램]] |
2024년 4월 2일 (화) 20:41 기준 최신판
깃허브(GitHub)는 소프트웨어 분산 버전 관리(DVC) 툴인 깃(Git)을 사용하는 프로젝트를 지원하기 위한 웹호스팅 서비스이다. 깃(Git)이 텍스트 명령어 입력 방식인데 반해, 깃허브는 화려한 그래픽 사용자 인터페이스(GUI)를 제공한다. 깃허브는 전 세계 최대 규모의 오픈소스 공유 사이트 겸 개발자 커뮤니티로 성장했다. 루비(Ruby) 언어를 사용하여 개발했다. 깃허브의 마스코트는 고양이 머리에 문어 다리가 달린 옥토캣(Octocat)이다.
[아사달] 스마트 호스팅 |
목차
개요[편집]
깃허브는 가장 인기있는 깃(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]
깃허브의 장점[편집]
깃허브는 소스코드 다시보기, 문서자료의 분류정리, 커뮤니티 관리, 코드 호스팅, 프로젝트 관리 및 통합에 사용된다. 이러한 깃허브의 장점은 다음과 같다.
데이터 공유[편집]
2016년 5월 서울특별시는 행정정보 공공데이터 목록 500만건을 깃허브 사이트에 공유했다.
각주[편집]
- ↑ 〈깃허브〉, 《위키백과》
- ↑ 2.0 2.1 2.2 2.3 에이콘아카데미, 〈깃(Git)과 깃허브(GitHub) 궁금하시죠?〉, 《네이버 블로그》, 2019-04-25
- ↑ Hosang Jeon, 〈오픈소스 기여를 위한 GITHUB 개념정리〉, 《Guruble 블로그》, 2014-02-27
- ↑ 〈3.1 Git 브랜치 - 브랜치란 무엇인가〉, 《깃》
- ↑ 에이콘아카데미, 〈[프로그래밍 깃(Git)으로 빠르고 편리하게 프로젝트 관리하자]〉, 《네이버 블로그》, 2017-04-26
참고자료[편집]
- 〈깃허브〉, 《위키백과》
- lsgl, 〈github란? - github 소개 및 설치〉, 《네이버 블로그》, 2016-02-15
- 에이콘아카데미, 〈깃(Git)과 깃허브(GitHub) 궁금하시죠?〉, 《네이버 블로그》, 2019-04-25
- Hosang Jeon, 〈오픈소스 기여를 위한 GITHUB 개념정리〉, 《Guruble 블로그》, 2014-02-27
- 에이콘아카데미, 〈[프로그래밍 깃(Git)으로 빠르고 편리하게 프로젝트 관리하자]〉, 《네이버 블로그》, 2017-04-26
- 〈3.1 Git 브랜치 - 브랜치란 무엇인가〉, 《깃》
같이 보기[편집]
|
|