2018년 6월 초, Microsoft(이하 MS)는 분산 버전 관리 툴 Git을 기반으로 한 프로젝트 지원 서비스 GitHub를 인수했다. GitHub를 인수할 당시 그 이유와 가치에 대해 설왕설래가 많았다. 하지만 GitHub는 온라인 버전 및 프로젝트 관리 툴 중 명실공히 부동의 1위를 유지하고 있었고, 대일밴드가 반창고의 대명사로 쓰이듯 GitHub또한 관리 툴의 대명사로 쓰였으므로 가장 많은 개발자들을 흡수하기 위해서는 당연히 GitHub가 좋겠지 라는 생각 정도로 그쳤었다.
MS에서 개최하는 컨퍼런스 중 연례행사로 자리매김한 Microsoft Build는 COVID-19 여파로 인해 올해는 온라인으로 진행되었다. MS Build 2020에서 다양한 이야기가 나왔지만, GitHub에 대한 이야기를 들을 수 있었고 GitHub를 인수한 이유를 조금 더 명확히 알 수 있는 시간이 되어 간략하게나마 정리하려고 한다.
50 Million Developer가 활동하고 있는 GitHub, 끊임없는 발전
누구나 생각할 수 있는 이유로, 아주 많은 개발자가 GitHub내에서 활동하고 있다. 올해 기준으로 약 5,000만명 가량의 개발자가 GitHub에서 활동하고 있다고 하며, MS에서는 개발자가 더욱 재밌고 효율적으로 개발할 수 있게 끊임없이 고민하며 다양한 Activity를 제공하려고 노력하고 있기 때문에 Gitlab이나 Bitbucket 등의 툴을 이용하는 개발자들까지 점점 더 흡수할 수 있지 않을까 생각한다.
특히 MS Build 2020 말고도 GitHub와 관련된 컨퍼런스로 Github Satellite Virtual 2020이 온라인으로 개최되었는데, 어떠한 Activity를 다양하게 제공하는지 구체적으로 설명했다고 한다. 하지만 전체 스트리밍 시간이 12시간에 육박하기 때문에 볼 엄두가 나지 않으므로 다른 개발자분들의 유튜브와 블로그를 통해 요약하여 내용을 파악했다. 핵심 내용은 크게 3가지라고 볼 수 있다.
1. Codespaces
이게 가장 하이라이트이지 않을까 싶다. GitHub내에서 VS Code 기반으로 코딩을 할 수 있다는 개념인데, 결국 클라우드 기반의 IDE를 도입해다는 것이다. 또한 VS Code를 기반으로 한 Azure를 이용하고 있다면 동일하게 사용 가능하다. 여기서 Codespaces를 확인해볼 수 있다.
시연 영상을 보고 나니 시험해보고 싶었지만, 아직은 베타 서비스라 그런지 유입을 한정적으로 제한하고 있나 보다. 유입을 바로 승인해줄 것이라고 생각했는데 생각보다 메일이 늦어지고 있어서 일단은 글을 먼저 쓴다.
가장 큰 장점이라고 생각하는 이유는 어느 컴퓨터에서든 웹 브라우저 내에서 클라우드 기반으로 코딩을 할 수 있게 되니 환경 설정 이슈를 고려하지 않고 본인의 컴퓨터를 두고 다닐 수도 있다는 생각이 들기 때문이다. 물론 지금도 그런 클라우드 기반 IDE가 꽤 있지만 GitHub에서 제공한다는 것은 매우 반가운 소식이다.
2. GitHub Discussions
GitHub 내에 Discussion할 수 있는 섹터를 만들었다. 이를 통해 얻을 수 있는 이점은 무엇일까? 아무래도 개발자들 사이에서 대표적인 Q&A 사이트인 Stack Overflow에서 질문하는 것보다 더욱 확실하게 질문할 수 있을 것으로 보인다. 또한 오픈 소스를 develop시키는 데에도 효율을 증진시켜줄 것으로 보인다.
3. Code scanning and secret scanning
코드 내부의 보안 관련 이슈를 자동으로 스캐닝해주는 기능을 더욱 발전시켰다. GitHub Satellite Virtual 2020 영상 중 1시간 33분대를 보면 코드 라인의 수와 보안에 대한 위협은 정비례하는 것을 알 수 있다. 즉, 대형 프로젝트를 할수록 보안에 대한 이슈를 놓칠 위험이 크다는 것인데, GitHub에 push할 때마다 자동으로 스캐닝해준다고 한다.
이와 같이 MS는 GitHub를 인수한 뒤 끊임없이 개발자들을 위해 성능을 개선시키며 개발자들이 GitHub에 갖는 브랜드 충성도(loyalty)를 높이고 있다. 궁극적으로는 이러한 충성도가 GitHub와 연동된 azure나 vs code 등을 더욱 활성화시키는 데에 이바지할 수 있을 것이다.
GitHub 내 소스코드를 Training Dataset으로 활용
MS Build 2020에서 상당히 충격적인 장면을 목격했는데, 인간이 어떤 기능을 코딩하겠다고 주석으로 작성해놓으면 인공지능이 언어를 인식한 후 코딩해내는 장면이었다. 여기에 나오는 영상에서 30분부터 33분 40초 정도까지 해당 장면이 나오는데, 물론 마지막 부분을 보면 주석을 약간 잘못 이해하여 사람이 약간 수정해주는 모습을 볼 수 있다. 하지만 인공지능만으로 코딩을 할 수 있는 미래가 조금 더 가까워졌다는 것은 부정할 수 없는 사실이다. 이것이 가능하게 된 이유는 GitHub 내에 있는 소스코드들이라고 할 수 있다. MS는 자사가 보유한 슈퍼컴퓨터로 OpenAI의 자연어 처리 모델(GPT)을 활용하여 GitHub 내에 있는 오픈 소스들을 학습시켰고, 이러한 과정을 통해 인공지능은 사용자의 특정 요구에 따라 어떠한 기능을 구현하면 좋을지 학습이 된 것이다.
하이프 사이클로 유명한 가트너는 매년 핵심적인 기술 트렌드를 발표하는데, 올해 발표한 '2020년 10대 전략 기술 트렌드'에서는 전문성의 민주화(Democratization of Expertise)라는 기술이 언급되었다. 다른 전략 기술들은 직관적으로 이해가 갔는데, 전문성의 민주화라니. 약간은 의아스러웠다. 하지만 MS의 행보를 보니 가트너가 주장한 '민주화'란 것이 어떠한 의미인지 단번에 이해가 갔다. 이제 머지않은 미래에는 코딩을 배우지 않아도 필요한 기술을 구현할 수 있게 될 것이며, 개인 혹은 기업이 필요한 데이터를 전문가 없이도 분석할 수 있는 시대가 올 것이다.
고민이 된다. 답도 없는 고민이지만, 그렇다면 개발과 데이터 분석을 공부하고자 했던 나는 어떠한 방향으로 공부를 해나가야 하는 것일까? 데이터 분석의 경우, 데이터 유형과 데이터 분석의 목적에 맞는 알맞은 분석 기법과 적절한 파라미터의 정도를 알고 있어야 하는 것일까? 물론 알고 있을 경우 다른 '일반인'보다는 훌륭한 결과물을 낼 수 있을 것이다. 하지만 그것마저 충분한 학습이 이루어져 자동화된다면 어떻게 되는 것일까 의문이 생긴다. 플랫폼 내 AI 기술을 구현하는 엔지니어들 말고, 적당한 수준의 개발자나 그 이하의 코더들은 다 죽어나는 것일까? 정말 궁금한 미래고, 앞으로의 방향성에 대해 다시 한번 심도 있게 고민해보게 된다.
Reference
1. Microsoft: Microsoft Build 2020
2. Microsoft: The future of tech, with Kevin Scott and guests
3. Youtube: GitHub Satellite Virtual 2020
4. GitHub Blog: GitHub Satellite Virtual 2020 Summary