GitHub란?
- 버전 관리와 협업을 위한 웹 기반의 플랫폼
- 소프트웨어 개발 프로젝트를 호스팅하고 관리하는 데 사용
- GitHub를 통해 소스 코드를 관리
- 다른 개발자들과 협업하며, 프로젝트를 추적하고 관리
GitHub의 주요 기능과 개념
- 버전 관리 (Version Control)
- Git이라는 분산 버전 관리 시스템을 기반
- 변경 내용을 효과적으로 추적하고 다양한 시점의 버전을 저장
- 저장소 (Repository)
- 프로젝트의 모든 파일과 폴더, 그리고 이력과 버전 정보를 포함하는 공간
- 공개 저장소와 비공개 저장소 제공
- 풀 리퀘스트 (Pull Request)
- 다른 개발자가 소스 코드 변경을 제안
- 특정 브랜치의 변경 사항을 병합하기 위해 보내는 요청
- 코드 리뷰와 협업
- 이슈 (Issue)
- 프로젝트 관리를 위한 토론 공간
- 버그 리포트
- 새로운 기능 제안
- 브랜치 (Branch)
- 저장소에서 독립적으로 개발이 가능하도록 하는 개념
- 각각의 브랜치는 다른 작업을 수행하거나 특정 기능을 개발할 때 사용
- 위키 (Wiki)
- 프로젝트에 대한 문서, 설명, 가이드 등을 작성하고 공유
GitHub Actions
- GitHub에서 제공하는 자동화 서비스
- 코드 저장소 (repository)에서 일어나는 다양한 이벤트에 대해 설정한 작업들을 자동으로 실행
- CI/CD (Continuous Integration/Continuous Deployment) 구축
- QA 및 테스트 자동화
(* QA란? : "Quality Assurance"의 약자로, 품질 보증을 의미함 소프트웨어의 품질을 보장하기 위해 진행되는 다양한 활동과 절차를 포함)
GitHub Actions의 주요 특징과 사례
- 이벤트 기반 실행
- 특정 이벤트 (예 : 푸시, 풀 리퀘스트 생성)에 대한 반응으로 자동으로 실행
- CI/CD 자동화
- 코드 변경이 발생할 때 자동으로 빌드, 테스트, 베포 등의 작업을 수행
- 소프트웨어의 품질을 유지하고 신속한 베포 가능
- 컨테이너 지원
- 도커 컨테이너를 사용하여 환경을 쉽게 설정
- 다양한 플랫폼에서 작업을 실행
- GitHub 액션 공개 커뮤니티
- GitHub Marketplace에는 다양한 작업을 수행하는 액션들이 공개
- 다른 개발자들이 만든 액션을 가져와 활용
- 시크릿 관리 (민감 정보)
- 워크플로우에서 사용하는 중요한 정보 (비밀 키, 암호 등)를 안전하게 관리
- 시크릿 저장소를 제공