깃허브(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]
깃허브의 장점[편집]
깃허브는 소스코드 다시보기, 문서자료의 분류정리, 커뮤니티 관리, 코드 호스팅, 프로젝트 관리 및 통합에 사용된다. 이러한 깃허브의 장점은 다음과 같다.
- 월정액으로 이용시, 비공개 사설 저장소를 제공한다.
- 좋은 웹 UI를 제공한다.
- 위키(Wiki)를 제공한다.
- 이슈 페이지를 제공한다.[5]
데이터 공유[편집]
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 브랜치 - 브랜치란 무엇인가〉, 《깃》
같이 보기[편집]
이 깃허브 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|
개발 : 프로그래밍, 소프트웨어 □■⊕, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
운영체제(OS)
|
데비안 • 도스(DOS) • 레드햇 리눅스(RHEL) • 리눅스 • 맥OS • 붉은별 • 비에스디(BSD) • 센트오에스(CentOS) • 솔라리스 • 아이오에스(iOS) • 안드로이드 • 에이아이엑스(AIX) • 엑스윈도우 • 엠에스도스(MS-DOS) • 오에스투(OS/2) • 우분투 • 운영체제(OS) • 윈도우 • 유닉스 • 유오에스(UOS) • 지엔유(GNU) • 타이젠 • 티맥스오에스 • 페도라 • 프리비에스디(FreeBSD)
|
|
웹서버
|
구글 웹서버 • 아이아이에스(IIS) • 아이플래닛 • 아파치 웹서버 • 엔진엑스 • 웹투비 • 웹티어
|
|
와스(WAS)
|
글래스피시 • 레진 • 와스서버 • 와일드플라이(제이보스) • 웹로직 • 웹스피어 • 제우스 • 톰캣
|
|
소프트웨어 개발 도구
|
JDK • SDK • 나모 웹에디터 • 넷빈즈 • 델파이 • 드림위버 • 메이븐 • 비주얼 스튜디오 • 안드로이드 스튜디오 • 알스튜디오 • 앱타나 스튜디오 • 엑스코드 • 이알윈(ERWin) • 이클립스 • 인텔리제이 아이디어 • 코드블럭스 • 통합개발환경(IDE) • 파워빌더 • 파이참
|
|
버전관리 도구
|
깃 • 깃허브 • 버전 • 버전관리 • 분산버전관리 • 서브버전(SVN) • 서브클립스 • 젠킨스 • 토터스SVN • 형상관리(구성관리)
|
|
성능관리 솔루션
|
로드러너 • 밸리데이터 • 스트로버스 • 시스마스터 • 엔그라인더 • 제니퍼 • 제이미터 • 지티메트릭스 • 쿨체크
|
|
소프트웨어
|
BaaS • CaaS • DaaS • FaaS • IaaS • NaaS • OaaS • PaaS • QaaS • RaaS • SaaS • SECaaS • UaaS • XaaS • 가상머신 • 개발 툴 • 내그웨어 • 다운그레이드 • 도네이션웨어 • 도커 • 레거시 시스템 • 레지스트리 • 로컬호스트 • 리팩토링 • 미들웨어 • 상용 소프트웨어 • 서버 • 셰어웨어 • 셸 • 소프트웨어 • 소프트웨어 개발 • 소프트웨어 툴 • 시스템 • 시스템 소프트웨어 • 실서버 • 업그레이드 • 업데이트 • 에뮬레이션 • 에뮬레이터 • 오픈소스 • 응용 소프트웨어 • 자바 가상머신 • 자유 소프트웨어 • 커널 • 컴퓨터과학 • 크로스 플랫폼 • 크리플웨어 • 테스트 툴 • 툴 • 툴킷 • 트라이얼웨어 • 패치 • 패키지 소프트웨어 • 프로세스 • 플랫폼 • 플러그인 • 프리웨어
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|
개발 : 프로그래밍, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷 □■⊕, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
인터넷
|
PC통신 • 그누텔라 • 네트워크 • 다크넷 • 다크웹 • 딥웹 • 무선인터넷 • 슈퍼피어 • 스타링크 • 아르파넷 • 아이투피(I2P) • 엑스트라넷 • 오버레이 네트워크 • 오투오(O2O) • 오프라인 • 온라인 • 온오프라인 • 유선인터넷 • 인터넷 • 인트라넷 • 초고속 인터넷 • 토어(토르) • 표면웹 • 프리넷 • 피투피(P2P) • 하이브리드 피투피(P2P) • 홈네트워크
|
|
인터넷 기술
|
ARP • DNS • FTP • G-클라우드 • HTTP • HTTPS • IPFS • IPv4 • IPv6 • IRC • IRI • ISBN • LDAP • MOIP • OpenSSL • OSI 7 계층 • RFC • RFID • SFTP • SOAP • SSH • SSL • SSO • TCP • TCP/IP • TLS • UCI • UDP • URI • URL • URN • VoIP • 강화 내부 게이트웨이 라우팅 프로토콜 • 검색 • 검색엔진 • 게이트웨이 • 경계 경로 프로토콜 • 내부 게이트웨이 라우팅 프로토콜 • 다운로드 • 데몬 • 라우팅 정보 프로토콜 • 백엔드 • 사물인터넷 • 서버 • 서버-클라이언트 • 서브넷마스크 • 세션 • 스트리밍 • 식별자 • 아이피(IP) • 업로드 • 에듀테크 • 온프레미스 • 원격 프로시저 호출(RPC) • 유비쿼터스 • 인터넷 기술 • 자율시스템 • 정보기술 • 정보통신 • 채팅 • 챗봇 • 최단경로 우선 프로토콜(OSPF) • 쿠키 • 크롤링 • 클라이언트 • 키워드 • 텔넷 • 토폴로지 • 트래픽 • 패킷 • 포털 • 포트 • 프런트엔드 • 프로토콜 • 프록시 • 해시태그
|
|
이메일
|
IMAP • POP3 • SMTP • 계정메일 • 네이버 메일 • 다음 메일 • 센드메일 • 스팸 • 스팸메일 • 스팸필터링 • 아웃룩 익스프레스 • 야후 메일 • 웹메일 • 이메일 • 지메일 • 카카오 메일 • 한메일 • 핫메일
|
|
웹
|
KWCAG • WCAG • 서핑 • 시맨틱 웹 • 오프라인 웹 • 웹 • 웹 1.0 • 웹 2.0 • 웹 3.0 • 웹개방성 • 웹서비스 • 웹접근성 • 웹접근성 인증마크 • 웹주소 • 웹표준 • 웹호환성 • 피드
|
|
웹사이트
|
BBS • GNB • LNB • UI/UX • 게시판 • 관리자 사이트 • 그래픽 사용자 인터페이스(GUI) • 누리집 • 대시보드 • 드롭다운 메뉴 • 랜딩 템플릿 • 랜딩 페이지 • 리더보드 • 마이홈피 • 메뉴 • 모달창 • 미니홈피 • 방명록 • 배너 • 사용자 경험(UX) • 사용자 인터페이스(UI) • 섹션 • 왼쪽메뉴 • 웹기획 • 웹사이트 • 웹페이지 • 인터페이스 • 쪽지 • 커뮤니티 • 탑메뉴 • 탭메뉴 • 템플릿 • 팝업 • 페이지 • 페이지뷰 • 햄버거 메뉴 • 호버 • 홈페이지 • 화면
|
|
웹브라우저
|
넷스케이프 • 모자이크 • 브라우저 • 브레이브 브라우저 • 블록체인 브라우저 • 사파리 • 삼성인터넷 • 스윙 • 엣지 • 오시리스 • 오페라 • 웨일 • 웹브라우저 • 인터넷 익스플로러(IE) • 크롬 • 파이어폭스 • 판도브라우저
|
|
인터넷 서비스
|
구글 • 구글 미트 • 구글챗 • 구글 행아웃 • 깃허브 • 네아로 • 네이버 • 네이버 웹툰 • 네이버 카페 • 넷플릭스 • 다음 • 라이코스 • 레진코믹스 • 메일루 • 멜론 • 바이두 • 바이트댄스 • 비트토렌트 • 빌리빌리 • 빙 • 소리바다 • 스포티파이 • 아마존 웹서비스(AWS) • 애플 • 야후 • 야후재팬 • 얀덱스 • 에버노트 • 에어비앤비 • 왓챠 • 웹소설 • 웹툰 • 유튜브 • 인스타툰 • 인터넷 서비스 • 인터넷카페 • 잼라이브 • 줌 • 카카오 • 카카오 웹툰 • 카카오페이지 • 탑툰 • 텐센트 • 팟캐스트 • 패스 • 페이오니아 • 페이팔 • 해시넷 • 화상통화 • 화상회의
|
|
인터넷쇼핑
|
11번가 • 그립 • 네이버 쇼핑 • 네이버 쇼핑 라이브 • 라이브방송 • 라이브커머스 • 모바일쇼핑 • 스쉐라이브 • 스타일쉐어 • 아마존 • 알리바바 • 오픈마켓 • 옥션 • 온라인쇼핑 • 위메프 • 이베이 • 인터넷쇼핑 • 인터파크 • 전자상거래 • 지마켓 • 징동닷컴 • 카카오 쇼핑 • 카카오 쇼핑 라이브 • 커머스 • 쿠팡 • 쿠팡 라이브 • 타오바오 • 티몬
|
|
소셜 네트워크
|
SNS(소셜 네트워크 서비스) • 구글 블로거 • 네이버 밴드 • 네이버 블로그 • 디시인사이드 • 링크드인 • 마이크로블로그 • 맞팔 • 브런치스토리 • 블로그 • 소셜 네트워크 • 엑스 (트위터) • 웨이보 • 인스타그램 • 트루스소셜 • 티스토리 • 팔로우 • 페이스북 • 플리커 • 핀터레스트
|
|
메신저
|
골프메신저 • 님버즈 • 대화방 • 두레이 • 디스코드 • 딩톡 • 라인 • 라인웍스 • 마이크로소프트 팀즈 • 메신저 • 버디버디 • 스냅챗 • 스노우 • 스카이프 • 슬랙 • 아이씨큐(ICQ) • 왓츠앱 • 웹메신저 • 위챗 • 잔디 • 직톡 • 카카오워크 • 카카오톡 • 카톡방 • 큐큐(QQ) • 탱고 • 텔레그램 • 틱톡 • 페이스북 메신저 • 플로우
|
|
도메인
|
네임서버 • 다국어도메인 • 도메인 • 레지스트라 • 레지스트리 • 아이피 • 인터넷주소 • 인터넷키워드 • 한글인터넷주소 • 후이즈
|
|
호스팅
|
메일호스팅 • 서버호스팅 • 웹호스팅 • 코로케이션 • 클라우드 • 클라우드 네이티브 • 파킹 • 포워딩 • 호스팅
|
|
위키
|
구스위키 • 나무위키 • 노스모크 • 더위키 • 디시위키 • 리그베다위키(엔하위키) • 리브레위키 • 미디어위키 • 바다위키 • 백괴사전 • 아이티위키 • 알파위키 • 엔하계 위키 • 요다위키 • 우만위키 • 위키 • 위키낱말사전 • 위키독스 • 위키문법 • 위키문서 • 위키문헌 • 위키미디어재단 • 위키백과 • 위키스 • 위키엔진 • 위키원 • 위키원드 • 위키트리 • 위키휴가 • 제이위키 • 제타위키 • 중국위키 • 팬덤(위키아) • 한국어 위키백과 • 한국위키미디어협회 • 항공위키
|
|
인터넷 사용자
|
가입 • 가입자 • 강퇴 • 계정 • 관리자 • 네트워크 관리자 • 네티즌 • 누리꾼 • 대기자 • 데이터베이스 관리자 • 등록자 • 디지털 원패스 • 로그아웃 • 로그인 • 방문자 • 방장 • 블로거 • 블록체인 관리자 • 비회원 • 사용자 • 사이트 관리자 • 서버관리자 • 시삽 • 시스템 관리자 • 아이디(ID) • 운영진 • 웹관리자 • 웹마스터 • 유튜버 • 접속자 • 차단 • 최고관리자 • 탈퇴 • 탈퇴자 • 회원 • 회원제 • 휴면 • 휴면계정
|
|
인터넷 단체
|
IANA • ICANN • W3C • 다르파 • 유럽입자물리연구소(CERN)
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘, 알고리즘, 블록체인 플랫폼, 블록체인 솔루션 □■⊕, 블록체인 서비스
|
|
개발 툴
|
리믹스 • 바이낸스엑스 • 베리파이바스프 • 블록캣 • 비습 • 서브스트레이트 • 오픈제플린 • 이더파티 • 줄 • 체인댑스 • 트러플 • 포티스 • 하이퍼레저 익스플로러 • 하이퍼레저 첼로 • 하이퍼레저 캘리퍼 • 하이퍼레저 컴포저 • 하이퍼레저 퀼트
|
|
미들웨어
|
바이프로스트 • 스월즈
|
|
개발 사이트
|
기티 • 깃허브
|
|
사용자 도구
|
세이자 • 이더스캔 • 이오스허브 • 클레이튼스코프
|
|
하드웨어 솔루션
|
유비박스
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|