Git

05. Github란 무엇인가 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2024. 12. 16. 22:30

1. Github란?

  • 버전 관리와 협업을 위한 웹 기반의 플랫폼
  • 소프트웨어 개발 프로젝트를 호스팅하고 관리하는 데 사용
  • GitHub를 통해 소스 코드를 관리
  • 다른 개발자들과 협업하며, 프로젝트를 추적하고 관리

2. Github의 주요 기능과 개념

  • 버전 관리 (Version Control)
    • Git이라는 분산 버전 관리 시스템을 기반
    • 변경 내용을 효과적으로 추적하고 다양한 시점의 버전을 저장
  • 저장소 (Repository)
    • 프로젝트의 모든 파일과 폴더, 그리고 이력과 버전 정보를 포함하는 공간
    • 공개 저장소와 비공개 저장소 제공
  • 풀 리퀘스트 (Pull Request)
    • 다른 개발자가 소스 코드 변경을 제안
    • 특정 브랜치의 변경 사항을 병합하기 위해 보내는 요청
    • 코드 리뷰와 협업
  • 이슈 (Issue)
    • 프로젝트 관리를 위한 토론 공간
    • 버그 리포트
    • 새로운 기능 제안
  • 브랜치 (Branch)
    • 저장소에서 독립적으로 개발이 가능하도록 하는 개념
    • 각각의 브랜치는 다른 작업을 수행하거나 특정 기능을 개발할 때 사용
  • 위키 (Wiki)
    • 프로젝트에 대한 문서, 설명, 가이드 등을 작성하고 공유

3. Github Actions

  • GitHub에서 제공하는 자동화 서비스
  • 코드 저장소(repository)에서 일어나는 다양한 이벤트에 대해 설정한 작업들을 자동으로 실행
  • CI/CD (Continuous Integration/Continuous Deployment) 구축
  • QA 및 테스트 자동화

4. Github Actions의 주요 특징과 사례

  • 이벤트 기반 실행
    • 특정 이벤트(예: 푸시, 풀 리퀘스트 생성)에 대한 반응으로 자동으로 실행
  • CI/CD 자동화
    • 코드 변경이 발생할 때 자동으로 빌드, 테스트, 배포 등의 작업을 수행
    • 소프트웨어의 품질을 유지하고 신속한 배포를 가능
  • 컨테이너 지원
    • 도커 컨테이너를 사용하여 환경을 쉽게 설정
    • 다양한 플랫폼에서 작업을 실행
  • Github 액션 공개 커뮤니티
    • GitHub Marketplace에는 다양한 작업을 수행하는 액션들이 공개
    • 다른 개발자들이 만들 액션을 가져와 활용
  • 시크릿 관리 (민감 정보)
    • 워크플로우에서 사용하는 중요한 정보(비밀 키, 암호 등)를 안전하게 관리
    • 시크릿 저장소를 제공