테크레시피

깃허브 개발 환경, 코드스페이스로 이동 설치 10초로

깃허브(GitHub)가 팀이나 엔터프라이즈 클라우드 플랜에 대해 브라우저에서 액세스할 수 있는 통합 개발 환경 코드스페이스(Codespaces)를 활성화했다고 2021년 8월 11일 발표했다. 또 이에 따라 깃허브닷컴 개발 대부분을 맥OS 기반에서 코드스페이스로 전환했다고 덧붙였다.

14년간 개발을 진행해온 깃허브닷컴 코어 저장소는 100만 개 이상 커밋이 있고 대부분은 맥OS에서 빌드나 테스트하는 개발자 것이었다. 깃허브닷컴 저장소는 디스크에 13GB 가까이 있고 복제만 해도 20분 가량 시간이 걸린다. 또 종속성 설정까지 합치면 코드스페이스에서 깃허브닷컴 개발 환경을 시작하려면 45분 이상 소요된다. 또 커밋 객체에서 지점을 만들 때마다 부트스트랩을 1시간 가까이 해야 하는 일도 자주 있었다고 한다.

따라서 깃허브는 14년간에 걸친 맥OS 중심 깃허브닷컴 개발 환경을 코드스페이스로 전환하기로 결정헀다. 먼저 코드스페이스에서 깃허브를 복제할 때 저장소 전체를 로컬에 복제하는 전체 복제가 아닌 최신 버전만 셰도복제(shallow clone)를 수행해 최신 커밋으로 코드스페이스가 재시작되면 백그라운드에서 저장소 기록을 제거, 셰도복제 구조로 전환한다. 이에 따라 복제에 걸리는 시간은 20분에서 단 90초로 단축헀다고 한다.

다음으로 깃허브닷컴이 지원하는 소프트웨어와 서비스 네트워크를 캐싱한다. 이런 소프트웨어와 서비스에는 기존 젬파일(Gemfile) 기반 종속성 뿐 아니라 C, Go, 루비 사용자 지정 빌드로 작성된 것도 포함되어 있다. 따라서 깃허브는 깃허브 액션(GitHub Action)에서 저장소를 복제해 종속성을 부트스트랩하는 등 흐름을 자동화하고 도커 이미지가 깃허브 내 데브컨테이너(devcontainer)에 코드스페이스 개발 환경에 맞게 조정된 기본 이미지로 사용되게 됐다. 따라서 깃허브닷컴 내 코드스페이스 개발 환경 95% 이상이 부트스트랩에서 생성되게 됐다.

또 응용 프로그램이나 서비스 최적화를 할수록 깃허브닷컴 코드스페이스 개발 환경 출시가 45분에서 5분으로 단축됐다. 하지만 깃허브는 5분이라는 시간은 곧바로 시작하기에는 너무 길다며 한 연구에선 사람들이 집중하는 상태로 전환하는데 10초 밖에 걸리지 않는다고 한다며 비약적인 발전을 이뤘지만 아직 중간쯤 온 셈이라고 밝히고 있다.

셰도복제를 수행해 복제에 걸리는 시간을 대폭 단축하려는 시도는 코드스페이스를 빠르게 시작할 수 있게 돕지만 어딘가에서 전체 복제를 할 필요가 있다. 이를 통해 복제와 부트스트랩이 끝난 걸 사전에 작성해 개발자 코드스페이스 환경이 10초에 준비하게 되는 것이다.

개발 환경 전환에 대해 깃허브 엔지니어는 지금까지는 코드스페이스에 회의적이었지만 지금은 다르다며 CPU가 소스에서 루비를 컴파일할 필요는 2번 다시 없을 것이라고 밝히고 있다. 깃허브는 매일 더 많은 서비스와 더 많은 엔지니어를 깃허브에 영입하고 그 과정에서 코드스페이스가 만들어내는 가치에 대한 새로운 얘기를 발견하고 있다며 하지만 스토리 중심에는 모든 엔지니어의 마음을 울리는 일관성 있는 테마가 있으며 더 나은 도구가 발견되고 생산성이 올라가고 있으며 기존으로 되돌아가지 않는다고 밝히고 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사