Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

GitHub Universe 2018 참석기 #1

지난 10월 16~17일에 열린 GitHub Universe에 참가하고 왔다. GitHub Universe는 처음 열렸던 2015년에 참가하고 3년 만에 다시 가게 되었다. 사실 GitHub Universe를 가려던 것은 아니었고 다른 콘퍼런스를 가는데 바로 전주에 열리길래 같이 결제를 했다.

이런저런 목적으로 매년 가고 있기는 하지만 정말 샌프란시스코 숙소는 너무 비싸다. 작년에도 먼 곳에 숙소를 잡았다가 운 좋게 시내의 좋은 곳에서 지내긴 했지만 이번에 다시 예약하려니 너무 비싸서 가지 말까도 많이 고민했다. 전에도 이렇게까지 비쌌나 싶을 정도인데 샌프란시스코 시내에서 숙소의 질을 떠나서 개인실에 화장실, 샤워실 있는 곳을 잡으려면 못해서 하루에 30만 원은 줘야 하는 느낌이었다. 오클랜드가 샌프란시스코 서부 쪽으로 가면 좀 싸지긴 하지만 그것도 충분히 싸지려면 대중교통으로 30분 이상은 나가야 했다.

결국, 개인실은 포기하고 다인실을 구하려다가 유니온스퀘어 근처에서 캡슐 호텔을 발견했다. 밤늦게까지 컴퓨터를 하는 경우가 많아서 다인실이 좀 걱정이어서 차라리 캡슐 호텔이 낫겠다 싶었다. 실제로 12일가량 여기서 머물렀는데 만족스러웠다.(호텔 홍보는 아니다.) 일단 유니온스퀘어 바로 옆에 있어서 밤늦게도 위험하지 않고 시내에서 쉽게 왔다 갔다 할 수 있고 방에 들어오려면 카드키가 있어야 해서 어느 정도 보안도 유지되고 캡슐이 잠기는 건 아니지만 캡슐 안에 콘센트랑 작은 금고도 있고 방에 잠글 수 있는 락커랑 캐리어를 묶어둘 수 있는 자물쇠도 있어서 크게 걱정 안 하고 지낼 수 있었다.

워크숍

워크숍은 콘퍼런스 전날인 15일 오후에 열렸다. 처음 살 때는 콘퍼런스 티켓만 샀는데 콘퍼런스 날짜가 다가오니 워크숍 포함한 가격이 콘퍼런스 티켓만 사는 것과 같아져서 취소하고 다시 샀다.

github-universe-day1-01


워크숍은 샌프란시스코 시내에 있는 Contemporary Jewish Museum에서 열렸다. 이 앞은 많이 지나 가봤지만 들어가 보는 건 처음이다. 그리 큰 규모는 아니고 3개의 트랙이 있어서 트랙별로 세션이 진행되었다.

github-universe-day1-02


Probot 트랙을 듣다가(사실 Probot의 주요 커미터들이 GitHub 직원이라는 것도 이번에 알게 되었다.) 이미 Probot으로 앱을 몇 번 만들어 본 적이 있어서 중간부터는 오픈소스 쪽 세션을 들었다. 워크숍이라서 콘센트가 잘 갖춰서 있어서 맥북을 사용하면서 듣기가 좋기는 했다. 세션도 꽤 좋았는데 오픈소스 세션이라서 그런지 실습 위주는 아니라서 워크숍 느낌은 많이 나지 않았다. 후반부 세션은 다른 작업 하느라고 많이 집중하지는 못했는데 내가 들은 세션은 내용은 좋아 보이는데 영어가 너무 빨라서 힘들었다. ㅠㅠ

github-universe-day1-03


워크숍 참가자는 참가자 등록을 이날 먼저 하고 네임 태그도 다 받았다. 백은 저렇게 투명한 재질로 4가지 색이 있었는데 난 백은 별로 맘에 들진 않았다. 기본으로 주는 기념품을 별것이 없었다.

github-universe-day1-04


워크숍 참가자에게는 특별하게 금색 Mona Lisa Octocat 피규어를 줬다. 참가 전에 인스타그램으로 홍보를 해서 알고 있었는데 레어탬이라 특히 더 맘에 들었다.

Day 1

github-universe-day1-05


GitHub Universe는 금문교 앞에 있는Palace of Fine Arts Theatre에서 열렸다. 건물이 특이하게 생겨서 그 앞을 지나가면서 무슨 건물 인가 했는데 이번에 처음 들어가 봤다. 시내에서는 약간 멀어서 Uber를 타고 이동했다.

github-universe-day1-06


앞의 저 사진 말고 뒤에 넓은 건물이 있는데 실제 행사는 이 안에서 진행되었다. 밖에서 볼 때보다 생각보다 엄청 넓었다.

github-universe-day1-07






Opening keynote

키노트는 특이하게 원형 무대 위에서 진행이 되었다. 모니터가 3면으로 설치되어 있고 이 가운데서 키노트 발표자가 발표했다. 키노트 이후에는 3개의 모니터를 기준으로 커튼을 치고 3개의 트랙이 진행되는 방식이었다. 원형 무대에서 발표를 하니 발표자가 일정 주기로 돌면서 발표해야 해서 힘들겠다는 생각을 했다.

github-universe-day1-08


대부분의 키노트가 그렇듯이 지난 10년간의 GitHub을 자랑(?)하고(의외로 Microsoft 얘기는 거의 없었다) GitHub의 다양한 수치를 보여주었는데 이는 이번에 공개한 Octoverse에서 대부분 볼 수 있다. 그리고 Pull Request 리뷰어가 직접 코드를 제안하고 바로 적용할 수 있는 Suggested change를 공개하고 GitHub Enterprise에서 github.com까지 같이 검색하고 연동할 수 있는 GitHub Connect도 발표했다. 그리고 GitHub 서비스는 40,000개의 CPU와 5.4 Petabytes의 스토리지로 운영되고 있고 일간 피크타임에는 초당 100기가비트의 트래픽이 발생한다고 한다.

github-universe-day1-09


그래도 이번 GitHub Universe의 가장 큰 발표는 GitHub Actions였다. 키노트에서 처음 공개하고 아직 베타라 사이트에서 신청을 하고 승인되어야 사용할 수 있지만, 일부 세션과 키노트의 상당 부분을 Actions에 대한 홍보에 사용했다. GitHub 액션은 간단히 말하면 어떤 작업의 Workflow를 GitHub 내에서 사용할 수 있는 기능이다. 예를 들어 소스가 올라오면 AWS나 GCP에 배포한다거나 배포용 바이너리를 빌드한다거나 새로운 기여자가 오면 댓글을 남기는 등의 자동화 작업을 할 수 있다. 워크플로우는 HCL로 작성하는데 기본적으로 GitHub에서 GUI를 제공하고 있다.

이 기능은 꽤 놀라운데 느낌으로는 CI의 상당 기능을 커버할 수 있을 것으로 보여서 맘에 들면서도 사실 GitHub을 중심으로 한 생태계가 무너지는 것은 아닌지 걱정될 정도였다. 개발 콘퍼런스면서도 새로운 기능 소개와 발표가 많아서 아주 즐거운 키노트였다. 전체 영상은 아직 안 올라왔지만 키노트는 Youtube에서 볼 수 있다.

Connecting your software lifecycle with GitHub’s platform

이 세션은 GitHub Actions를 설명하는 세션이었다. 제목을 저렇게 지은 것은 키노트에서 공개하기 전에 Actions을 언급할 수는 없기 때문으로 보인다. .github/main.workflow파일에서 워크플로우를 정의하고 HashiCorp의 HCL로 정의할 수 있는데 GUI로 제공되기 때문에 실제 사용할 때 GUI를 많이 쓸지 코드로 직접 작업하게 될지는 잘 모르겠다. 더 자세한 설정을 보려면 actions 저장소를 참고하면 되고 현재 26가지 이벤트를 지원한다고 한다.

영어를 다 알아듣는 게 아니고 사용해본 기능이 아니라 애매하긴 한데 내부적으로 동작은 Docker로 돌아가는 것 같았다. 그래서 제공하지 않는 커스텀 기능은 Docker로 작성해서 워크플로우에 추가할 수 있는 것 같은데 정확하지는 않다. 이렇게 Docker로 할 수 있다면 대부분 기능은 가능하리라 생각하고 있다.

Infrastructure as product: Building GitHub's future

GitHub의 인프라스트럭처 팀 이야기였다. 인프라스트럭처 팀은 인프라스트럭처 팀만의 시각이 있고 장기목표에 집중하면서 그에 대한 책임을 져야 하므로 사내라고 하더라도 인프라스트럭처를 제품처럼 제공해서 사용자들이 충분히 이해할 수 있게 해야 한다는 맥락 정도를 이해했으나 영어를 알아듣기가 힘든 세션이었다. ㅠ

GitHub Learning Lab: Teaching robots to teach

github-universe-day1-10


GitHub에서 몇 달 전에 공개한 Learning Lab을 만든 과정을 설명했다. Learning Lab은 GitHub App을 만드는 프레임워크인 probot을 이용해서 만들었다고 한다. 이 Learning Lab 안내 메일은 받아봤지만 해보진 않았는데 Probot을 이용해서 인터렉티브하게 배울 수 있게 만들어져 있는 것 같다. Probot을 만든 사람이 GitHub 직원인데 이날 발표한 사람은 probot으로 Learning Lab을 만든 사람이고 디자이너 출신이라고 한다. 전날 워크숍이 이 사람이 진행했다. Learning Lab이 어떻게 동작하는지를 설명하고 보여주었는데 "중요한 부분은 일단 제대로 동작하게 만든 뒤 잊으라"라는 말이 인상적이었다.

From millions of OAuth tokens to GitHub Apps

GitHub이 서드파티가 사용할 수 있는 기존의 Service를 폐기하고 Apps로 옮겨갔기 때문에 이미 사용 중인 OAuth 토큰을 Apps로 마이그레이션 한 과정에 관한 얘기로 Code ClimateTravis CI가 번갈아 가면서 설명했다. 여러 가지 이슈가 있는데 GitHub 이벤트에는 인증 모델이 포함되어 있지 않고 Authorization은 앱이 설치된 저장소를 기반으로 하고 있어서 처음에는 OAuth App을 만들어서 대응했고 Travis CI는 아직도 OAuth 문제를 완전히 해결하지 못했는데 OAuth 사용자 토큰과 조직에 설치된 것 사이에서 어려움을 겪고 있다고 한다. Rate Limit 문제도 있는데 복잡한 GraphQL 쿼리의 경우 Rate Limit을 계산하기가 어려워서 GraphQL Rate Limit을 기록하는 메트릭을 추가해서 사용하고 있다고 한다.

GitHub Universe Party

저녁 파티는 Sentry와 Travis CI의 후원으로 진행되었다. 해외 콘퍼런스를 가면 꼭 이런 네트워킹 파티가 있는데 국내에는 없는 문화라서 항상 흥미롭긴 하다.

github-universe-day1-11


파티는 샌프란시스코 시내에서 진행되었는데 숙소에서 걸어갈 수 있는 거리라 좋았다. 지하에 있는 Pub이면서 옆에는 볼링장이 있었다. 이렇게 시끄러운 곳에서는 거의 대화를 할 수 없으므로 나는 조용히 앉아서 폰으로 놀면서 칵테일을 계속 주문해서 먹었다. ㅎㅎ

github-universe-day1-12


이 글은 GitHub Universe 2018 참석기 #2로 이어진다.

2018/11/06 02:43 2018/11/06 02:43