Outsider's Dev Story

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

GitHub Universe 2015 후기 #1

작년에 휴가로 갔다 온 샌프란시스코에 대해서 어제 글을 올렸는데 재작년에 갔을 때만 그냥 오피스 투어만을 목적으로 갔을 뿐 보통은 콘퍼런스에 참가할 목적으로 가는 편이다.(콘퍼런스 간다고 하면 보통 물어보는데 개인 돈+개인휴가로 갔다 온거다.)

이번에는 GitHub Universe에 참가하기 위해서 갔다 왔다. 재작년에 GitHub에 놀러 가서 GitHub에서는 콘퍼런스 안 하느냐고 물었었는데 그때는 계획이 없다고 했었는데 작년 초에 GitHub Universe10월에 열겠다는 공지가 올라왔다. 사이트에는 알림을 받을 수 있는 메일이 있어서 등록해 놓고는 일정이 다가왔는데 다른 눈에 띄는 콘퍼런스도 없고 GitHub의 첫 콘퍼런스라 가보고 싶기도 해서 휴가 일정을 이때에 맞추어서 잡았다.(추석시즌이라 연휴에 이어서 갔다 올 수도 있었고...)

비행기랑 숙소는 착착 준비하고 있었지만 8월 말까지 아무런 소식이 없어서 GitHub에 계신 분에게 물어봤더니 곧 업데이트된다고 했고 거의 8월 30일쯤 되어서야(그러니까 행사 열리기 거의 한 달 전) 사이트가 열리고 티켓을 판매하고 스폰서를 모집하기 시작했다. 티켓은 $599였는데 얼리버드로 $399에 팔았지만, 사이트에 메일 알림을 등록해 놓은 사람은 $299에 구매할 수 있는 쿠폰을 판매해서 구매하고 갔다가 왔다. 앞의 여행기에서 썼듯이 밋업이나 오피스 투어를 다니면서 콘퍼런스 날짜를 기다렸다.

Pier 70의 위치

GitHub Universe는 도그패치 근처 Pier 70에서 열렸다. 샌프란시스코는 여러 번 가봤지만 마운틴 뷰나 팔로알토에 가기 위해서 칼트레인을 타고 아예 아래쪽으로 내려가 본 적은 있어서 시내에서 내려와서 저 근처에 가 본 적은 없었다. 콘퍼런스 때문에 도그패치 근처로 숙소를 잡으려고도 했었지만 아무래도 다른 때 돌아다니기가 어려울 것 같아서 SOMA 지역으로 숙소를 잡았다. Airbnb로 잡은 숙소 리뷰에 집에서 나오면 왼쪽으로 나와서 5번가 쪽으로 다니라면서 HBO에서 하는 범죄드라마에서 나올 법한 걸 보고 싶으면 오른쪽으로 나와서 6번가로 가보라고 해서 덜덜 떨었지만, 가격이 싸서 그냥 잡았다. 밤에는 6번가로 안 가봤지만 그다지 위험하진 않았다. 재작년에 숙소를 잡았던 텐더로인 지역도 위험하다고 소문났지만 한 일주일 넘게 지내고 다니 정겨워지기도 했었지...

행사 시작 전

아침 일찍 일어나서 Uber를 불러서 Pier 70으로 갔다. 첫날은 몰랐었는데 GitHub Universe에서 Uber와 제휴해서 프로모션 쿠폰을 준다. 첫 이용자에게는 할인을 해주는 쿠폰으로 이 쿠폰을 쓰면 자동으로 목적지까지 행사장인 Pier 70으로 지정되는데 콘퍼런스를 할 때 이런 제휴방식을 꽤 좋아 보였다. Pier 70은 항구 주변에 공장지대처럼 느껴졌는데 이제는 다 폐쇄가 되었는지 들어갈수록 이쪽이 많나 싶은 느낌이었고 적당한 위치에서 내렸지만, 어디인지 알 수가 없었다. 우리가 헤매고 있다가 같이 헤매고 있는 Atlassian 개발자를 만났는데 이 사람도 콘퍼런스 장소를 찾고 있었지만, 발표자라서 명찰을 걸고 있었다. 좀 헤매다 보니 표시판이 보였다.

행사장 건물
사진처럼 엄청나게 큰 폐건물이 GitHub Universe가 열리는 장소였다.
행사장 방향을 알려주는 표지판
저 배경 그러데이션이 엄청나게 예쁘다.
행사장 입구

좀 더 옆으로 돌아가자 안으로 들어갈 수 있는 입구가 나타났고 GitHub Universe 대형 포스터가 붙어있었다. 아~ 예뻐.

GitHub 에코백
등록대에 줄을 서서 이름을 말하니 옥토캣이 그려져 있는 에코백을 줬다.
컨퍼런스 명찰

티켓이 한 달 전에서나 열리고 한 달내내 스폰서를 모집하고 그래서 걱정을 좀 했는데 준비가 엄청나게 잘 되어 있었다. 명찰도 사진처럼 나무로 되어 있어서 한번 쓰고 버리기 아까울 정도였다. 이제 이건 소장용이다. 나는 아주 초기에 참가등록을 해서 기억이 안 나는데 다른 사람들은 GitHub 아이디로 새겨져 있었나. ㅠ 나도 GitHub 아이디 새기고 싶은데 ㅠ

기념품 교환권
기념품 교환권

콘퍼런스 내에 GitHub Shop이 있었는데 등록대에서 거기 가면 기념품을 받을 수 있다고 해서 줄을 서서 받았다. 에코백 안에 위와 같은 기념품 교환권이 들어있다. 이 교환권도 나무로 새겨져 있는데 3가지 디자인 중 하나의 티셔츠랑 YUBIKEY를 준다. 저 기념품 교환권도 너무 예뻐서 끝나고 다시 달라고 하고 싶을 정도였다. 콘퍼런스 시작 전이라 기념품 받는 줄이 엄청나게 길었는데 사실 2일 중 아무 때나 교환할 수 있었다. 혹시 나중에 받으면 선택권이 없을까 해서 잽싸게 줄 서서 받았다.

기념품으로 받은 Atom 티셔츠
교환한 Atom 티셔츠.
기념품인 Yubikey

이게 Yubikey다. 첫날 키노트 세션 중에 이에 대한 발표가 있었는데 인증키 값은 개념이다. GitHub 로그인할 때 2단계 인증을 할 수 있듯이 PC에 저 USB를 꼽아서 인증할 수 있는 방식인데 안전한지는 몰라도 딱히 필요성을 몰라서 아직 써보진 않았다.(그러고 보니 어떤 게 되는 지라도 한번 해야 봐야 되는데...)

기념품으로 받은 3인치 옥토캣

GitHub Universe에서 처음 선보인 3인치짜리 옥토캣 피규어인데 참가자에게 모두 하나씩 주었다. 지금은 GitHub Shop에서 판매하고 있지만, 저 당시만 해도 엄청나게 희소성이 있는 제품이었다. 지금은 $15에 팔고 있는데 콘퍼런스에서는 $10에 판매를 하고 있어서 선물로 여러 개 사왔다. 혹시나 해서 더 살 수 있느냐고 물었더니 판매한다고 해서 일행이 다들 여러 개 사서 왔다.

GitHub Universe에서 준 아침
아침도 준다고 사전 공지가 되었기 때문에 일찍 가서 아침부터 챙겨 먹었다.
GitHub Universe에서 준 점심

이건 점심. 주변에 먹을 데가 없어서 내부에서 식사를 다 제공하고 있었고 물론 별도의 돈은 내지 않는다. 식사는 상당히 만족스러웠다.

키노트가 열리는 장소

가운데는 키노트를 하는 장소가 있었다. 대형 스크린이 3개나 있어서 보기에는 어렵지 않았다. 이 주변으로 3개의 트랙을 진행하는 장소가 마련되어 있고 이곳은 전체가 다 함께 듣는 키노트 세션만 진행하고 평소에는 비어져 있었다. 이번 GitHub Universe의 세션은 Build, Collaborate, Deploy라는 3가지 주제로 진행되었고 다음 사진처럼 각 트랙을 위해 마련된 장소에서 진행되었다.

Build 트랙
Build 트랙이 열리는 장소


Collaborate 트랙
Collaborate 트랙이 열리는 장소


Deploy 트랙
Deploy 트랙이 열리는 장소


행사 시간이 다가오자 키노트 장소로 사람들이 모이기 시작했다. 아래는 화면에 나온 Code of Condect.

Code of Conduct




Day 1


키노트 - Chris Wanstrath

시간이 되자 키노트가 시작되고 GitHub의 CEO인 Chris Wanstrath가 무대 위로 올라왔다. 실제로는 처음 봤다. 그리고 GitHub의 오프닝 애니메이션을 보여주었다.

Chris Wanstrath의 키노트

일반적인 Keynote처럼 Chris도 GitHub이 그동안 성장한 내용과 성과, 앞으로의 방향에 관해서 얘기하는 것이 대부분이었다. 2008년에는 소셜 코딩에 집중해서 오픈 소스나 비영리 프로젝트를 지원했고 2010년에 Organization 기능으로 협업을 강화했으며 2012년에는 Enterprise 제품으로 방화벽 내에서도 GitHub를 사용할 수 있게 했다고 했다.

연도변 오픈소스 저장소 수

현재 1,100만 계정이 있고 3,600명이 매달 방문하고 있다. 매일 1,000개 이상의 풀리퀘스트가 생기고 5,000여개의 공개 저장소가 생기고 있다. GitHub은 디테일이 제품의 경험을 훨씬 좋게 만든다고 생각하므로 디테일에 신경 쓰고 있다고 했다. 이어서 CI 통합 기능이나, 커밋을 생성하고 diff를 스플릿으로 나누어서 보는 기능을 설명하고 GitHub 데스크톱과 Atom, git-lfs등의 제품을 소개했다. Use your favorite tools with Github라고 하면서 이번 콘퍼런스가 Build, Collaborate, Deploy라 분류한 이유를 설명했다.

마지막으로 이번 콘퍼런스가 소프트웨어를 만드는 사람들 즉, 미래를 만드는 사람들을 위한 것이라고 했다. 우리는 미래를 만들고 있고 여기에는 끝이 존재하지 않는다. 이번 콘퍼런스에서 서로 어떻게 만들고 협업하는지 또 어떤 도구를 좋아하는지를 공유하기 바란다고 했다. 사실 뒤에도 쓰겠지만, 청중에게 GitHub을 소개 혹은 자랑하는 느낌이 더 강했고 대단한 내용은 없었다. 이후에도 키노트 세션이 몇 개 더 있었는데 집중이 안 돼서 다 듣지는 않았다. 여기서도 참가한 세션 중에서 인상이 깊었던 세션에 대해서만 정리한다.

Pull requests, code review, and the GitHub flow - Brent Beer, GitHub

GitHub flow 세션

여러 트랙 중에 고르다가 GitHub를 이용한 협업에 관심이 많아서 선택한 세션이었는데 완전 실패였다. 풀 리퀘스트와 코드리뷰, GitHub 플로우를 이해하는 것이 이번 세션의 목표라고 했는데 정말 기초 중의 기초라서 GitHub 콘퍼런스에서 저런 내용을 하다니 하는 느낌이었다. 풀 리퀘스트란 무엇인가? 하면서 풀 리퀘스트를 하는 데모를 보여주고 이렇게 사용할 수 있고 코드 리뷰를 할 때 CI 자동 연동을 할 수 있고 특정 브랜치에는 푸시하지 못하게 protect를 걸 수 있는 등의 설명을 했다. 너무 쉬운 내용이라 금방 잘못 들어왔다고 느꼈지만 이동하긴 늦었으므로 그냥 앉아있었다. GitHub flow도 그냥 공개된 내용을 간단히 설명하는 정도였고 고급 내용은 전혀 없었다. PR을 코드리뷰할 때 리뷰자의 수를 강제할 수 있는 ReviewNinja정도의 도구가 처음 알게 된 내용일 뿐이다.

CI in world of MicroServices - Surya Gaddipati, Groupon

CI에서 필요한 요구사항은 패러럴로 실행해야 하고 UI가 예쁘면서 확장성이 좋아야 한다. 그리고 GitHub 인증을 지원해서 GitHub private 저장소를 지원해야 한다. DotCi는 Jenkins를 사용하고 Docker Compose를 사용해서 서버 환경설정을 자동화했다. 그냥 만든 내용 설명하고 별 내용은 없었던 듯...

Open Source Principles for Internal Engineering Teams - Brandon Keepers, GitHub

이 발표에서는 투명성(tranciparancy), 참여(Participation), 협업(Collaboration) 3가지를 뽑았다.

투명성(tranciparancy)에는 일단 공개된 소스코드를 얘기한다. "소프트웨어의 구조와 그 소프트웨어를 개발하는 팀의 구조는 유사해진다"라는 콘웨이의 법칙을 설명하면서 커뮤니케이션 방법도 지리적 위치, 타임존, 문화에 따라 분산된다고 했다. 그래서 이슈트랙커, 버전 관리, 메일링 리스트나 채팅 등의 도구를 이용하고 비동기적인 커뮤니케이션으로 직접 만나지 않고 기다리지 않아도 작업할 수 있어야 한다고 했다. 그리고 lock-free로 즉시 뭔가 하지 않도록 해서 동시에 여러 작업을 수 있어야 한다. 이슈 히스토리, 버전 관리 채팅 로그 등 모든 메시지는 아카이빙해야 한다. 한 팀이 공유된 목표를 향해 일할 수 있도록 정보를 공유해야 한다.

참여(participation)에 대해서는 마찰을 최소화(minimize friction)해야 한다고 했다. 여기서 마찰은 "기여를 원한다"와 "기여했다"의 중간에 있는 것인데 이를 위해 README.md와 Contributin.md를 추가할 수 있고 부트스트래핑이나 실행, 테스트하는 스크립트를 제공할 수 있다. 리뷰도 어느 정도 자동화할 수 있고 실제로 잘 아는 사람보다 잘 아는 로봇으로부터의 피드백을 사람들이 더 잘 받아들인다고 했다. 그러면서 블로그의 문법을 자동으로 검사해주는 리뷰 과정을 보여주었다. 협업(Colloaboration)

Making Movies is Harder than it Looks: Building Tools for Telling Stories - Dr. Michael B. Johnson, Pixar

Pixar에서 나와서 Pixar에서 애니메이션을 만드는 과정과 그 가운데서 기술을 사용하는 접근 등을 설명했는데 영어만 잘 알아들었다면 아주 재미있는 세션이었을 텐데 알아들은 게 얼마 안돼서 너무 아쉬웠다. 아는 애니메이션의 화면이 예시로 많이 나와서 반가웠지만 영어가 발목을.. ㅠ 다음 두 말이 기억에 남는다.

Quality is the best business plan. - john lesseter

Plan is temporary. Suck is forever. - jason deamer




이 글은 GitHub Universe 2015 후기 #2로 이어집니다.

2016/01/31 23:36 2016/01/31 23:36