들어가며

안녕하세요. 배민서비스개발실 배민프론트개발팀에서 산업기능요원으로 iOS 개발을 하고 있는 강경완입니다.

우아한형제들에서는 iOS 개발을 하고 있지만, GDG (Google Developer Groups) Korea Android 커뮤니티의 오거나이저로 활동하고 있어서 Google I/O 2018에 참여했습니다.

먼 나라 미국까지 날아가서 2박 3일동안 전 세계의 개발자들을 만나며 무엇을 했는지를 짧게 공유해드리고자 합니다.

준비하기

저는 일단 산업기능요원 신분이기 때문에 출국이 자유롭지 않습니다. 그래서 국외여행 허가를 받아야 합니다.

ㄹㄹㄹㄹ

5월의 캘리포니아는 날씨가 매우 이상합니다. 샌프란시스코 쪽은 바람이 많이 불어서 춥고, 구글 I/O가 열리는 마운틴 뷰 쪽은 낮에는 강렬한 태양의 뜨거움과 태양이 없는 그늘에서는 추위를 느낄 수 있습니다. 그래서 개발자 반팔 티셔츠와 입고 벗기 편하게 후드집업을 챙겨가면 좋습니다.

개발자 티와 후드집업으로 세계는 통한다

Google I/O 2018

Google I/O는 2박 3일 일정으로 진행되고, 메인 홀인 Amphitheatre과 Stage 7개에서 서로 다른 주제의 세션이 있습니다. 세션 외에도 각기 다른 주제로 이루어진 부스인 Sandbox가 A부터 I까지 총 9개의 부스가 마련되어 있습니다. 이 외에도 코드랩부스, Office Hour Time 등이 준비되어 있습니다.

Sandbox로는 Android, Android Things, Wear OS, AI/ML, Google Cloud, Googld Assistant, Design, AR/VR 등이 있었습니다.

Android 부스에는 KTX, Android Jetpack, Android P 등에 대한 전시와 함께 해당 분야 팀의 구글러가 옆에서 직접 설명해주거나 질문을 받아주었습니다.

AI/ML 부스에서는 Tensorflow를 이용한 게임, Tensorflow Lite에 대한 간단한 데모 (Local에서 사물 판단하기)와 TPU v1, v2, v3 전시, 이미지 분석을 통한 자율 주행차 등을 전시해두었었습니다.

Google Cloud 부스에서는 Firebase Test Lab에 대한 소개로 실제 Deck을 전시해두고 UITest가 어떻게 진행되는지를 전시해 두었습니다. 또한 Firebase에 추가된 ML킷에 대한 내용도 있었습니다.

Google Assistant 부스에서는 Action on Smart Displays 같이 직접 Assistant를 체험할 수 있도록 해두었습니다.

AR/VR 부스에서는 구글의 Daydream을 이용해서 직접 체험해볼 수 있었습니다.

배우고 느낀 점

글로벌 친구

이렇게 큰 개발자 컨퍼런스의 매력은 역시 전 세계의 많은 개발자들이 한 자리에 모이는 것입니다. 물론 한국에서도 판교만 가도 개발자 같을 것 같으신 분들이 많이 돌아다니시고, 샌프란시스코 역시 마찬가지긴 하지만, 여기는 정말 10명 중 9명은 개발자이며 심지어 다양한 나라에서 날아오신 분들입니다.

작년 I/O17를 다녀온 뒤 I/O에 대한 경험이 주니어 개발자에게 어떤 성장의 거름이 되었는지에 대해 발표를 한 적이 있습니다. 영어가 부족해서 하고 싶은 말이 많았지만 많은 대화를 나누지 못한 것에 대한 회고를 했었는데, 올해 I/O18 에서는 글로벌 친구들과 커뮤니케이션을 많이 하려고 노력했습니다.

주로 안드로이드 개발자를 만나면 패턴이 비슷했는데…

A : 어떤 개발 해??
나 : Android!
A : 오 그럼 Kotlin??!
나 : Kotlin!!!

여담이지만 작년 I/O에서 Kotlin이 Android의 공식 지원언어가 되었고, Java와 Kotlin을 병기하여 나오던 예제코드들이 올해는 100% Kotlin 코드로 세션에서 발표가 되었었습니다. Kotlin 쓰고있냐고 안 물어보는 안드로이드 개발자를 만나지 못했어요

다른 에피소드로는 개발 문화적인 차이도 있었습니다. 가령 예를들면 Flutter… 아프리카 지역의 학생 개발자 그룹에서 I/O에 참가하게 되었다고 소개한 대학생 두 명을 만났습니다. Flutter에 빠져있다고 하더군요.

A : Flutter 너무 좋아, 너 안드로이드 개발자면 Flutter는 어때??
나 : 응? 한국에서는 별로 막 우와! 하지는 않는 것 같은데??
A : 그래? 이유가 뭐야??
나 : 음... 글쎄... 

지금도 트위터에서는 native, pwa, react, flutter 등에 대한 discussion이 일어나고 있는 것 같습니다. (Dart 언어이기도 하고.. Flutter는 안써봐서 잘 모르겠습니다.)

Accessibility

장애인들을 위해 Accessibility를 어떻게 더 잘 구현할 수 있을지에 대한 세션이 눈에 띄었습니다.

[Session] What’s new in Android accessibility

[Session] Accessibility for AR and VR

[Session] What’s new in web accessibility

[Session] An accessible process for inclusive design

각 플랫폼 별로 1개씩 있었는데 AR, VR에 대한 Accessibility 세션은 자리가 없을 정도로 인기가 많았습니다. 작년 말에 배달의민족 앱도 accessibility 중 하나인 VoiceOver 지원에 대한 리뷰가 올라와서 대응을 한 적이 있었기 때문에 관심이 가는 주제였습니다. 동영상 자막으로 효과음 또는 그냥 흘러 지나갈 수 있는 대사가 아닌 배경 소리도 자막 처리를 하는 것이 청각장애인을 위한 것이었다는 것에 신선한 충격을 받았었는데, AR, VR 플랫폼도 accessibility 대응을 해야한 다는 생각을 전혀 못하고 있던 저에게 이 또한 신선한 충격이었습니다.

Don't design for yourself or your situation 사용자 경험에 대해 다시 생각해보는 시간이 되었습니다.

모든 플랫폼에서 이제는 ML 시대

얼마 전 Tensorflow Summit에서 Javascript 버전의 Tensorflow JS을 발표하더니 이제는 Firebase 위에서 사용할 수 있는 모바일 버전의 ML Kit 을 발표했습니다.

텍스트인식, 얼굴검출, 랜드마크 인식, 바코드 스캐닝, 라벨링 등 모바일 사용 환경에서 자주 쓸만한 머신러닝 모델들을 제공합니다.

Firebase 클라우드 환경에 데이터를 전송해도 되고, 모바일 환경에서 네트워크 없이 사용할 수도 있습니다.

iOS와 Android 모두 지원하는 ML Kit

ML Kit 외에도 Tensorflow Lite 에 대한 시연을 샌드박스에서 볼 수 있었는데, Tensorflow 보다 가벼운 Tensorflow Lite를 라즈베리파이 같은 작은 기기에서 카메라 모듈을 이용해 라벨링을 하는 것을 볼 수 있었습니다.

생각보다 잘 돌아갔던게, 선글라스와, 그냥 안경 두 가지 모델을 모두 넣었는데 구분해내더군요.

이런 Tensorflow Lite에서 만든 모델을 ML kit에 추가해서 쓸 수도 있다고 합니다. 이젠 정말 모든 플랫폼 개발자가 머신러닝에 대해 공부하거나 준비해야될 때가 되지 않았나 싶었습니다.

마치며

해외 컨퍼런스에 참여한다는 것은 사실 많은 것을 투자해야만 합니다. 비행기 삯과 컨퍼런스 티켓을 포함한 돈과 시간, 연차, 그리고 장기휴가이기 때문에 팀원들과 일정 조율 등등등.. 하지만 많은 것을 투자한 만큼 개인에게 있어 더 가치있고 큰 경험을 얻어갈 수 있는 기회였다고 생각합니다. 단순히 구글에서 발표하는 신기술을 누구보다 빠르게 세션을 통해 알게 되는 것 뿐만 아니라 전체적인 부분이랄까요? 음식점에서 행복을 느낄 때 평가하는 요소가 맛이 전부는 아니잖아요? 내년에는 올해보다 더 성장한 개발자가 되어 다시 가보고 싶습니다!!