Home > CS > 2024 > 💾 [CS] GitHub이란 무엇일까요?

💾 [CS] GitHub이란 무엇일까요?
CS

💾 [CS] GitHub이란 무엇일까요?

  • Git 기반의 분산 버전 관리 시스템을 사용하여 소스 코드와 프로젝트를 관리하는 웹 기반 플랫폼입니다.
  • Github은 단순히 코드 저장소를 제공하는 것뿐만 아니라, 팀 간 협업, 코드 리뷰, 이슈 관리, CI/CD(지속적 통합/지속적 배포)등을 지원하며, 전 세계 개발자들이 오픈 소스 프로젝트와 상용 프로젝트를 개발하고 협력하는데 널리 사용됩니다.

1️⃣ GitHub의 주요 특징.

1️⃣ 원격 저장소 관리.

  • 로컬 Git 저장소와 원격 저장소를 동기화하여 프로젝트의 코드와 이력을 저장하고 공유할 수 있습니다.
  • 팀원 간 코드 변경 사항을 공유하거나 통합하는 데 유용합니다.

2️⃣ 협업 지원

  • Pull Request(코드 변경 요청)를 통해 코드 리뷰 및 병합을 관리할 수 있습니다.
  • Issue Tracker를 사용하여 프로젝트의 문제점, 버그, 개선 사항 등을 관리할 수 있습니다.

3️⃣ 버전 관리.

  • Git을 기반으로 하여 코드 변경 내역을 추적하고 특정 시점으로 되돌릴 수 있습니다.

4️⃣ 오픈 소스 프로젝트 지원.

  • 많은 오픈 소스 프로젝트가 GitHub에 호스팅되며, 누구나 코드에 기여할 수 있는 플랫폼을 제공합니다.

5️⃣ 브랜치 기반 워크플로우.

  • GitHub는 Git의 브랜치 기능을 통해 독립적인 기능 개발, 버그 수정 등을 효율적으로 관리할 수 있도록 지원합니다.

6️⃣ CI/CD 지원.

  • GitHub Actions를 통해 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Delivery)를 구현할 수 있습니다.

7️⃣ 웹 기반 인터페이스.

  • 명령줄 대신 웹 브라우저에서 코드, 커밋 내역, 브랜치 등을 확인하고 관리할 수 있습니다.

8️⃣ 통합 도구 및 서비스.

  • 다양한 외부 도구(Jira, Slack, Trello 등)와 통합할 수 있으며, Visual Studio Code 등 IDE와도 호환됩니다.

2️⃣ GitHub의 주요 기능.

1️⃣ Repository(저장소)

  • GitHub에서 프로젝트를 저장하고 관리하는 공간.
  • Public Repository(공개 저장소)와 Private Repository(비공개 저장소)를 지원합니다.

2️⃣ Pull Request.

  • 다른 브랜치나 포크(fork)된 저장소의 변경 사항을 병합 요청하는 기능.
  • 코드 리뷰 과정을 통해 변경 사항을 검토한 후 병합할 수 있습니다.

3️⃣ Issue Tracker.

  • 프로젝트에서 발생하는 문제점, 버그, 새로운 기능 요청 등을 기록하고 관리하는 도구.

4️⃣ Fork.

  • 다른 사용자의 저장소를 복제하여 독립적으로 작업할 수 있도록 해주는 기능.
  • 오픈 소스 프로젝트에 기여할 때 유용합니다.

5️⃣ Actions.

  • CI/CD 파이프라인을 구성하려 코드를 빌드하고 테스트하거나 배포하는 작업을 자동화할 수 있습니다.

6️⃣ Code Review.

  • Pull Request를 통해 팀원 간 코드 리뷰를 수행하고, 피드백을 주고받을 수 있습니다.

7️⃣ Projects.

  • 칸반 보드 형태로 프로젝트 작업 흐름을 관리할 수 있는 기능.

8️⃣ Wiki.

  • 프로젝트에 대한 문서를 저장하고 관리할 수 있는 공간.

9️⃣ Github Pages

  • 저장소에 있는 HTML 파일을 기반으로 간단한 웹사이트를 무료로 호스팅할 수 있는 기능.

1️⃣0️⃣ Collaborator & Permission Management

  • 프로젝트 협업자를 초대하고, 각 사용자의 접근 권한을 설정할 수 있습니다.

3️⃣ GitHun의 장점.

1️⃣ 오픈 소스 친화적.

  • 수많은 오픈 소스 프로젝트가 GitHub에 호스팅되며, 누구나 기여할 수 있는 플랫폼을 제공합니다.

2️⃣ 쉬운 협업.

  • 코드 리뷰, 이슈 관리, 브랜치 관리 등 팀원 간 협업을 효과적으로 지원합니다.

3️⃣ 웹 기반 관리.

  • Git을 잘 몰라도 브라우저를 통해 기본적인 작업을 할 수 있습니다.

4️⃣ 대규모 커뮤니티.

  • 전 세계 수많은 개발자와 프로젝트가 GitHub에서 활동하며, 풍부한 리소르와 문서를 제공합니다.

5️⃣ 자동화 지원.

  • GitHub Actions와 같은 기능으로 빌드, 테스트, 배포를 자동화할 수 있습니다.

6️⃣ 다양한 통합 도구.

  • Slack, Jira, Trello 등과 연동하여 프로젝트 관리를 한층 더 효율적으로 할 수 있습니다.

7️⃣ 무료로 제공되는 기능.

  • 기본적인 기능은 무료로 제공되며, 소규모 팀도 충분히 사용할 수 있습니다.

4️⃣ GitHub의 단점.

1️⃣ 인터넷 연결 필요.

  • GitHub는 원격 저장소(Remote Repository)를 제공하므로, 작업 동기화를 위해 인터넷 연결이 필요합니다.

2️⃣ 프라이버시 우려.

  • 무료 계정에서 공개 저장소를 사용할 경우, 모든 사용자가 코드를 볼 수 있습니다(Private Repository는 유료 또는 제한적으로 제공).

3️⃣ 사용법 학습 필요.

  • Git과 GitHub를 처음 접하는 사용자에게는 학습 곡선이 있을 수 있습니다.

5️⃣ GitHub의 실제 활용 예시.

1️⃣ 오픈 소스 프로젝트 호스팅.

  • 많은 유명한 오픈 소스 프로젝트(예: React, TensorFlow, Spring Framework)가 GitHub에 호스팅되고 있습니다.

2️⃣ 팀 프로젝스 관리.

  • 협업 도구와 기능을 사용하여 팀 개발에서의 효율성을 높입니다.

3️⃣ 포트폴리오 제작.

  • 개인 프로젝트를 업로드하고, 이를 기반으로 자신의 개발 역량을 홍보할 수 있습니다.

4️⃣ 코드 리뷰 및 피드백.

  • 코드 품질을 높이기 위해 리뷰 과정을 포함한 협업을 진행합니다.