먼저 클라우드(Cloud)란, 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경을 의미한다. 이에서 확장된 클라우드 컴퓨팅(Cloud Computing)은, 클라우드를 이용하여 컴퓨팅 자원을 사용하는 기술적인 방법이다.
이는 서버, 스토리지, 네트워크 등의 자원을 가상화하여 사용자에게 제공하며, 필요에 따라 이를 확장하거나 축소할 수 있다.반면에 클라우드 서비스(Cloud Service)는 클라우드 컴퓨팅을 기반으로 제공되는 서비스를 의미하며, 대표적으로는 SaaS(Software as a Service, 소프트웨어 기반 서비스), PaaS(Platform as a Service, 플랫폼 기반 서비스), IaaS(Infrastructure as a Service, 인프라 기반 서비스) 등의 다양한 형태가 있다.
즉, 클라우드는 개념적인 측면에서의 인터넷을 통한 컴퓨팅 자원의 제공을 의미하며, 클라우드 컴퓨팅은 이를 기술적인 측면에서 구현한다. 마지막으로, 클라우드 서비스는 클라우드 컴퓨팅을 기반으로 다양한 형태로 제공되는 서비스로 이해할 수 있다.
클라우드의 정의를 얼핏 들으면 효과적인 시스템이라는 생각이 들지만, 정확히 클라우드의 장점은 무엇이 있을까? 이는 필요한 자원을 유연하게 확장하거나 축소함을 통해 기업이 직접 인프라를 구축하지 않아도 빠르고 유연하게 서비스를 제공할 수 있다는 점에 있다. 또한, 여러 지역에 분산되어 운영되기 때문에 장애 발생 시에도 높은 가용성과 신뢰성을 보장하며, 고성능 하드웨어와 최신 보안 기술을 적용해 기업이 자체 인프라를 구축하는 것보다 높은 성능을 제공한다. 보안 및 업데이트도 클라우드 제공자가 책임지기에 자체 인프라 구축보다 경제적이며, 관리와 유지 보수의 부담을 줄일 수 있어 별도의 IT 인력이 필요하지 않다.
이처럼 개발과 배포도 빠르고, 협업과 파일 공유가 쉬워져 생산성과 협업 능력이 향상되는 클라우드의 특성을 효과적으로 활용하는 사는 Github(깃허브)이다. 컴퓨터, 코딩에 관심이 있다면 한 번쯤 들어봤을 Github는 코드를 저장하고 공유하며 다른 사람들과 함께 작업할 수 있는 클라우드 기반 플랫폼이다. 예를 들어, Github "저장소"에 코드를 저장하면 작업 공개 및 공유, 코드의 변경 사항 추적과 관리, 타인의 코드 검토와 개선을 위한 제안과 공동 프로젝트에서 작업도 가능하다. 개발자들은 공동 프로젝트에서 협업 시, Github를 통해 소스 코드를 공유하고 협업 개발에 사용할 수 있고, 반면에 개인 프로젝트 진행 시 깃허브를 코드 백업 저장소로 활용할 수 있다.
보다 구체적으로 Github가 클라우드를 어떻게 이용하는지 서술하자면, Git(깃)은 코드 변경을 추적하고 버전을 관리할 수 있는 툴이고 Github는 이 기능을 클라우드 기반의 플랫폼에서 제공하여 협업과 코드 공유가 용이하도록 하는 서비스이다. Git은 모든 변경 사항이 로컬에 저장되어 있기 때문에 팀 내에서 폐쇄적으로 협업할 때 유용한 것에 반해 GitHub를 사용하면 오픈소스 프로젝트나 다양한 의견 수렴이 필요한 경우에 더 적합하다. 왜냐하면 GitHub는 각 프로젝트마다 원격 저장소를 클라우드에 제공하여, 로컬 저장소와 클라우드 저장소 간에 데이터를 동기화할 수 있게 한다. 사용자는 코드 변경 사항을 클라우드에 저장하고 관리할 수 있으며, 다른 사용자도 이 저장소에 접근해 협업할 수 있다.
특히 Github의 VCS(Versions Control System)는 Git을 기반으로 한 버전 관리 시스템을 의미한다. Git은 분산 버전 관리 시스템으로, 로컬 저장소와 원격 저장소에 각각 변경 사항을 저장할 수 있다. GitHub는 이러한 Git의 기능을 웹 기반으로 제공하여 협업, 코드 리뷰, 이슈 관리, Pull Request, CI/CD 통합 등의 다양한 협업 도구를 추가로 제공하여 특히 개발자들간의 협업 프로세스를 원활히 해준다. 또한, 버전 관리 시스템은 코드 변경 내역을 기록하여, 수정된 부분을 쉽게 확인하고 이전 버전으로 롤백할 수 있게 해주기 때문에 개발자에게 중요한 도구이다.
결과적으로, GitHub의 VCS는 기본적으로는 Git을 사용하여 코드의 버전 관리 및 변경 사항 추적을 하지만, 이를 클라우드에서 여러 사용자가 함께 접근하고 관리할 수 있도록 기능을 확장한 플랫폼이라고 할 수 있다.
따라서, 깃허브와 같은 전세계적인 코딩 플랫폼의 클라우드 활용은 역설적으로 클라우드의 중요성을 일깨워준다. GitHub는 클라우드를 통해 언제 어디서나 코드에 접근하고 팀과 실시간 협업을 가능하게 함으로써 개발의 효율성을 극대화한다. 클라우드와의 결합으로 GitHub는 단순한 코드 저장소를 넘어 개발자들이 함께 성장하는 협업의 중심지로 자리잡았다.
참고자료 및 출처:
김경지, 박승범, 이선표. (2020). SaaS 클라우드 서비스 제공기업의 차별화 및 가격전략이 기업성과에 미치는 영향 . 정보화연구(구 정보기술아키텍처연구), 17(2), 141-155.
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/github-velocity/
작성자: ITS 27기 김민지