리포지토리란 무엇인가요?
리포지토리 또는 리포는 개발자가 애플리케이션 소스 코드에 대한 변경을 수행 및 관리하는 데 사용하는 중앙화된 디지털 스토리지입니다. 개발자는 소프트웨어를 개발할 때 폴더, 텍스트 파일 밑 기타 유형의 문서를 저장 및 공유해야 합니다. 리포는 개발자가 쉽게 코드 변경 사항을 추적하고, 파일을 동시에 편집하고 어디에서든 동일한 프로젝트에서 효율적인 협업을 수행할 수 있게 해 주는 기능을 갖추고 있습니다.
리포지토리가 중요한 이유는 무엇인가요?
리포지토리를 사용하면 소프트웨어 개발 팀이 기본 소스 코드를 손상시키지 않으면서 소프트웨어의 프로그램 코드를 여러 번 변경할 수 있습니다. 변경 사항을 기본 분기에 직접 적용하는 것이 아니라, 리포지토리의 기능을 사용하여 변경 사항을 편집하고 검토합니다. 이렇게 하면 둘 이상의 개발자가 코드의 동일한 부분을 편집할 때 병합 충돌이 줄어듭니다.
또한 개발자들은 애플리케이션의 프로덕션 버전에 영향을 미치지 않으면서 새로운 기능이나 버그 수정을 적용하기 위해 리포지토리를 사용합니다. 작업할 로컬 리포지토리로서, 새 분기 또는 원본 소스 코드의 복사본을 생성합니다. 이렇게 하면 개발자가 고객에게 릴리스하기 전에 새로운 변경 사항을 제대로 테스트할 수 있습니다.
리포지토리가 기업에 제공하는 이점
기업이 애플리케이션 개발에 리포지토리를 활용하면 변화하는 소비자의 요구에 더욱 민첩하게 대응할 수 있습니다. 개발자는 실시간 애플리케이션의 안정성에 영향을 미치지 않으면서 새로운 기능에 대한 작업을 빠르게 수행할 수 있습니다. 리포지토리는 개발자가 변경 사항을 적용하고 잠재적인 문제를 빠르게 해결할 수 있도록 해줍니다. 또한 조직은 원격으로 작업하는 개발자 간에 애플리케이션 개발 작업을 조율할 수 있습니다.
GitHub 리포지토리란 무엇인가요?
GitHub는 개발자가 프로젝트 코드를 체계적으로 저장하고 작업할 수 있는 클라우드 기반 리포지토리입니다. GitHub는 버전 관리 시스템인 Git를 기반으로 하며 개발자 간의 협업을 개선하는 추가 기능을 제공합니다. GitHub는 리포지토리 기능을 간편하게 사용할 수 있는 그래픽 UI를 제공합니다.
또한 GitHub는 개발자를 위한 온라인 오픈 소스 커뮤니티가 되었습니다. 개발자는 GitHub의 공개 프로젝트에서 토론에 참여하고, 도움을 주고, 전문 지식을 제공하면서 동료 개발자와 소통할 수 있습니다.
GitHub는 전 세계 개발자 커뮤니티 사이에서 가장 인기 있고 자주 사용되는 리포지토리이므로, 이 블로그 게시물에서는 GitHub 리포지토리를 집중적으로 다룹니다.
GitHub 리포지토리는 어떻게 작동하나요?
GitHub 리포지토리를 사용하면 개발자가 로컬에 설치된 버전 관리 도구를 사용하여 원격으로, 분산 방식으로 협업할 수 있습니다. 개발자들은 버전 제어 소프트웨어인 Git에서 명령줄 인터페이스를 사용하여 기능을 구현합니다.
Git는 개발자들이 코드 변경 사항을 생성하고, 관리하고, 기본 소스 코드와 병합할 수 있게 해줍니다.
생성
먼저 개발자는 프로젝트의 디렉터리에 코드 파일이 들어 있는 새 리포지토리를 생성합니다. 또는 기존 Git 리포지토리를 복제할 수도 있습니다. Git 리포지토리에는 일반적으로 프로젝트를 설명하는 정보가 표시된 README 파일이 포함되어 있습니다.
구성
로컬 리포지토리를 변경하기 전에 개발자는 사용자 이름 및 이메일과 같은 정보를 추가하여 리포지토리를 구성합니다. 이를 통해 공동 작업자가 특정 Git 리포지토리의 작성자를 식별할 수 있습니다. 그런 다음 개발자는 git commit 명령을 사용하여 코드를 변경하고 저장할 수 있습니다.
변경
개발자가 리포지토리의 코드를 변경합니다. 처음에는 변경 내용이 로컬 시스템에만 저장됩니다. 준비가 되면 변경 사항을 중앙 리포지토리에 병합할 수 있습니다. 다른 개발자가 동일한 파일을 변경할 경우, 해당 개발자는 수동으로 검토하면서 충돌을 해결할 수 있습니다.
GitHub 리포지토리의 주요 기능은 무엇인가요?
GitHub 리포지토리는 개발자에게 다음을 지원하는 중앙 집중식 코드 버전 관리, 공유 및 협업 기능을 제공합니다.
분기
분기는 GitHub에 리포지토리 복사본을 생성하는 프로세스입니다. 기본적으로 GitHub 리포지토리에는 개발자가 처음에 업로드하는 원본 소스 코드와 파일이 포함된 기본 분기가 있습니다. 코드의 특정 부분을 수정해야 하는 경우 코드 파일의 전체 복사본이 포함된 분기를 만들고 그에 따라 분기에 레이블을 지정합니다.
개발자는 기본 리포지토리에서 여러 분기를 만들 수 있습니다. 예를 들어 개발자는 새 소프트웨어 기능의 코드를 작성하는 기능 분기를 하나 만들고, 보고된 문제를 해결하는 분기를 또 하나 만들 수 있습니다.
커밋
커밋은 개발자가 코드 파일에 대해 변경한 내용을 모두 분기에 저장할 수 있도록 하는 기능입니다. GitHub는 개발자가 변경 사항을 커밋할 때, 코드에 적용한 새로운 변경 사항을 설명할 수 있도록 합니다. 개발자가 변경 사항을 설명하면, 팀원이 해당 변경 사항과 변경한 이유가 무엇인지를 알 수 있습니다.
풀 요청
풀 요청은 기본 분기에 대해 작업을 수행하는 다른 작업자 또는 분기 소유자에게 커밋된 변경 사항을 검토하라는 공식 메시지를 보냅니다. 다른 작업자들은 병합을 위해 원래 커밋을 제출하기 전에 커밋을 검토하거나, 커밋에 주석을 추가하거나, 추가로 변경할 수 있습니다. 풀 요청을 검토할 때 작업자는 원래 코드의 변경 사항을 확인할 수 있습니다.
병합
병합은 커밋된 변경 내용을 기본 분기에 적용하는 GitHub 프로세스입니다. 이 작업은 작업자가 커밋된 변경 사항을 검토하고 승인할 때 수행됩니다. 그런 다음 작업자는 GitHub에서 병합 요청을 호출하여 변경 내용을 원래 코드에 병합하기 전에 일련의 검사를 실행합니다.
Git 리포지토리의 유형에는 어떤 것들이 있나요?
개발자는 권한 수준이 다른 두 가지 유형의 Git 리포지토리를 생성할 수 있습니다.
베어 리포지토리
베어 리포지토리에는 인덱스 폴더만 포함됩니다. 개발자는 베어 리포지토리의 파일을 수정할 수 없습니다.
넌베어 리포지토리
넌베어 리포지토리에는 소스 파일의 복사본이 저장됩니다. 개발자는 이 복사본을 작업에 사용하고 이 복사본에 변경 사항을 커밋할 수 있습니다.
AWS는 리포지토리 요구 사항을 어떻게 지원하나요?
Amazon Web Services(AWS)에서 AWS CodeCommit은 프라이빗 Git 리포지토리를 안전하게 호스팅하는 데 사용할 수 있는 온라인 코드 버전 관리 시스템입니다. CodeCommit은 기존 Git 기반 도구와 통합되어 원활한 지속적 전달 및 지속적 통합(CI/CD) 파이프라인을 구성합니다. 다음은 CodeCommit을 사용하는 몇 가지 방법입니다:
- 전송 중과 저장 시에 암호화를 통해 코드를 자동으로 보호
- 리포지토리를 AWS 환경에 보다 가까운 위치에 유지
- AWS 클라우드에서 안전하고 확장 가능한 코드 협업 워크플로 설정
지금 AWS 계정에 가입하여 리포지토리 사용을 시작하세요.