본문 바로가기
# Tools/- Git

Open Source 혁명의 중심 : Github란?

by Graffitio 2023. 8. 22.
Open Source 혁명의 중심 : Github란?
728x90
반응형
[Github의 개요]

 

Git이란?

 

형상 관리 도구 중 하나로, 컴퓨터 파일의 변경 사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템을 말한다. Git은 프로젝트 폴더 내에서 작업을 기록하고 버전 관리를 통해 체계적인 개발이 가능하므로 소프트웨어 및 하드웨어 개발에서 소스 코드를 효과적으로 관리할 수 있으며, 소스코드를 따로 주고 받을 필요 없이, git을 사용하면 하나의 프로젝트, 같은 파일을 여러 사람이 동시에 작업하는 병렬 개발이 가능하다.

 

출처 : 위키백과

 

Github란?

분산 버전 관리 툴인 Git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이자 형상 관리와 소프트웨어 개발 프로젝트의 협업을 위한 웹 기반 플랫폼으로, 개발자들이 소스 코드를 호스팅하고 관리하며 다른 개발자들과 협력할 수 있는 환경을 제공한다. Github는 대부분 오픈 소스 프로젝트에 사용되며, 코드 저장소의 호스팅, 버그 추적, 풀 리퀘스트, 코드 검토, 이슈 관리   등 다양한 기능을 제공하여 개발자들이 프로젝트를 효율적으로 관리하고 협업할 수 있도록 도와준다.

 


 

[주요 기능 및 개념]

 

Git이 제공하는 핵심 기능

 

버전 관리(Version Control)

문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지를 쉽고 구체적으로 기록하기 위한 버전 관리 시스템

 

백업(Backup)

자료의 유실 및 손상 방지를 위해 백업이 필요하다.

GitHub는 원격 저장소(온라인 저장소)를 통한 백업 공간을 제공하는 인터넷 서비스이다.

 

협업(Collaboration)

GitHub를 통해 팀원들과 동시에 작업을 수행하는 병렬 개발 기능을 수행할 수 있고 버전 관리를 통해 오류 추적 및 수정도 원활하게 이루어진다.

 


 

GitHub의 다른 기능들

 

Repository(저장소)

말 그대로 파일이나 폴더를 저장하는 저장소
Github에서 프로젝트의 코드와 리소스가 저장되는 장소를 의미한다.
저장소는 해당 프로젝트의 모든 버전과 변경 내역을 관리하며, 다른 사용자들과 공유할 수 있다.

 

Commit(커밋)

파일을 추가, 변경한 내용을 Repository에 저장하는 작업
코드 변경 사항을 저장소에 기록하는 작업을 의미한다.
각 커밋은 변경된 파일의 스냅샷을 포함하며, 이력을 추적하고 변경 내역을 관리하는데 사용된다.

 

Branch(브랜치)

원본 코드에서 파생된 개발 경로로, 브랜치를 통해 여러 개발자들이 동시에 다양한 기능을 개발하고 테스트할 수 있다.

이후에 브랜치가 병합되면 병경 사항이 주 코드베이스에 반영된다.

 

Pull Request(풀 리퀘스트)

브랜치에서 작업한 변경 사항을 원본 저장소로 병합해달라 요청하는 기능이다.

다른 개발자들은 해당 변경 사항을 검토하고 논의할 수 있으며, Master에 의해 최종적으로 변경 사항이 병합된다.

 

Issue(이슈)

버그, 개선 제안, 작업 요청 등 프로젝트 관련 사항을 추적하고 토론하는 기능이다.

이슈는 레이블, 마일스톤, 담당자 등의 정보와 함께 관리된다.

 

Wiki와 프로젝트 페이지

Github는 프로젝트의 문서화를 위한 Wiki와 작업 관리를 위한 프로젝트 페이지 기능을 제공하고

여기서 Wiki란, 사용자들이 문서를 협업하여 작성하고 편집할 수 있는 웹 기반 플랫폼을 의미한다.

 

GitHub Actions

지속적인 통합(CI) 및 지속적인 배포(CD)를 자동화하는 기능으로,

코드 변경 사항을 테스트하고 빌드하여 자동 배포를 관리할 수 있다.

 

GitHub Marktplace

다양한 앱과 서비스를 통해 GitHub 기능을 확장하고 사용자 정의할 수 있는 마켓플레이스이다.

 

 

GitHub는 위와 같이 다양한 기능을 통해,

빠른 속도, 단순한 구조, 비선형적 개발, 완벽한 분산 작업, 대형 프로젝트에 유용하는 장점을 가진다.

728x90
반응형