Google I/O를 첫 방문을 지원(I/O 티켓 및 숙박) 해준 Google Korea DevRel팀에 감사를 드리며 글을 시작하겠습니다.
Google I/O 후기 시리즈
Google I/O — Day 2
저는 주로 Machine Learning과 Flutter 위주로 글을 쓸 예정입니다.
Swift for TensorFlow
Google이 swift repository를 fork뜨면서 한때는 안드로이드에 swift를 적용하느냐 이야기가 나왔었는데요, 그와는 다르게 tensorflow를 swift로 작성해 사용할 수 있게되었습니다.
핵심 요약을 하자면
- Colab에서도 swift로 tensorflow를 작성하는 것을 지원
- interoperbility가 매우 좋음 (python, c)
- 왜 다른 언어가 있는데 새로 만들었는가? ⇒ automatic differentiation 가 가능하기 때문이다
- 함수형 패러다임을 deep learning에 섞은 느낌이 강하다 (개인적 생각)
로 요약 할 수 있을 것 같습니다. 자세한 내용은 영상으로 확인 해 주세요!
Making Art with Artificial Intelligence: Artists in Conversation
이 세션은 기술 세션이 아닌, Art 작품을 만드는 분들과 AI가 어떻게 상호작용 하여서 작품을 만들어 냈는지에 대한 세션이었는데요.
사실 AI만 가지고서는 Art작품을 만들 수 없다. 라는 이야기를 주로 하고 있으면서, AI가 만들어 낸 작품에서는 어떠한 혼을 느낄 수 없다고 이야기를 하였습니다. (알파고의 대국에서는 바둑을 두는것에 대한 감동을 느낄 수 없다)
그래서, AI와 인간의 콜라보레이션 작업을 통해 작품을 만들어 내었다라고 합니다.
한 예시로, 자연에서 오는 움직임들, 변화를 가지고 visual하게 나타낸 후 visualization 된 것을 Google AI와 몇가지 음을 이용해 visual한 것에 맞는 음악을 만들어 내었다고 합니다.
이 세션에서는 인간과 AI의 조화에 대해서 다루고 있기때문에, 굉장히 신선했는데요, 앞으로 AI가 발전해 나가면서 우리가 어떻게 AI를 이용해야하는지 살짝 엿볼수 있었던 세션이었습니다.
Machine Learning Magic for Your JavaScript Application
이번 세션에서는 Javascript 진영에서 어떻게 ML을 적용하는지, 특히 tensorflow.js를 이용해서 적용한 사례 및 고객사에 대한 소개가 있었는데요,
tensorflow.js는 node.js가 구동가능한 환경이면 모두 실행 가능하다고 합니다.
다양한 tensorflow.js의 샘플들은 이 링크에서 보실 수 있습니다.
이 세션에서 tensorflow.js는 주로 pre-training 된 모델들을 가지고 와서 사용하는 느낌이 강했는데요, 아무래도 javascript를 통한 하드한 training은 무리(?)여서 이런 뉘양스로 이야길 하지 않았나 조심스럽게 생각해봅니다.
Train Custom Machine Learning Models with No Data Science Expertise
사실 이 세션을 들었던 이유는, ML을 하는데 있어서 80%는 데이터를 가공하는 일이며, 나머지가 모델을 작성하고, 다시 모델을 조정하는 일이라는 생각이 강했기 때문이었습니다.
하지만 어마무시한 구글은 데이터를 가공하고 정제하는 역할을 Google Cloud ML을 이용해서 하라는 !! 이야기를 하고있습니다.
그리고 pre-training 된 모델들이 Google Cloud ML에 있으니 복잡하게 모델 짜지말고 그냥 가져다 써! 라고 하는데요
이제는 비지니스 로직에만 더 집중하라는 구글의 배려(?)가 돋보이는 세션이 아니었나 생각됩니다.
Beyond Mobile: Building Flutter Apps for iOS, Android, Chrome OS, and Web
사실 개인적으로 가~~~~장 기대하였던 세션이었는데요, Flutter를 이용해서 Android, iOS, Chrome OS와 그리고 Web까지 한번에 개발 가능하다는 것을 소개하는 세션이었습니다.
Flutter는 6개월 전에 Android, iOS부분에서 정식 버전을 release하였는데요, React-Native와 항상 비교되며 Cross-Platform의 game changer가 될 수 있을까라는 이야기가 항상 나왔습니다. (feat. Dart…)
이제는 Flutter가 Mobile을 넘어서, Web 그리고 Desktop App을 지원 한다는 것을 소개하였습니다.
Desktop에서는 media query를 사용하여서, 모바일형태로 구조가 잡힌 application을 반응형 처럼 desktop에 맞게 뷰 구조를 바꿀수 있는것을 소개하였습니다.
지금 당장에는 Chrome OS에서만 잘 동작하지만, 추후 다른 플랫폼에 대응하기 위한 준비를 거의 끝마쳐가는것으로 보였습니다.
Flutter desktop에 대해서는 이 링크를 참고해주세요!
Web — 드디어 HummingBird의 출격!
아직 web지원에 대해서는 Technical preview 이지만, 퍼포먼스 이슈는 거의 없다고 이야기를 하였는데요, 정식 릴리즈를 위해서 Flutter Team이 열심히 일을 하고있다고 알려주었습니다.
Dart를 위한 Html, Css, Canvas 코드가 제공 될 것이라고 하였습니다.
Web을 위한 Flutter 구조를 보면 Dart to JS로 컨버팅 하는 컴파일러가 들어가 있습니다. 컴파일러의 성능에 따라서 웹 퍼포먼스가 결정 될 것 같습니다!
만약 flutter web을 테스트해 보고싶으시다면, 아직 stable 단계가 아니라서 flutter_web으로 분기되어있는 widget을 사용해야한다고 하였습니다.
그리고 Android Studio에서 widget inspector를 제공했던 것 처럼 Flutter web을 위한 dev tool을 제공합니다.
Community Lounge
이번 Google I/O에서는 GDG organizer 분들과 I/O참가자 분들이 함께하는 Scavenger Hunt라는것이 있었는데요, 참가자 분들이 organizer분들을 찾아서 질문을 하고, 스티커를 모아 Community Lounge에 가져다 주면, 특별한 선물을 받는 게임이었는데요, 다양한 국적가지고, 다양한 분야에 계신 분들과 이야기 할 수 있었던 너무나도 귀중하고 좋았던 시간이었습니다.
물론 Scavenger Hunt는 Community Lounge가 아니더라도 할 수 있었습니다!
Lounge에서는 GDG 분들의 Small Talk? 같은 조그만한 세션들이 열려있었고, 누가누가 더 빨리 개발 하냐 경쟁하는 게임도 있었습니다.
이번 I/O에서는 참가자 들과 소통할 수 있는 기회가 있어서 너무 좋았다고 작년 참가자 분들이 많이 이야기 하시더라구요!
Experiment Sandbox
experiment sandbox에서는 google에서 몇몇 팀들이 실험적으로 개발한 product를 보여주는 곳이었는데요
해당하는 영상과 카메라로 인식되는 움직임이 일치해야 다음 영상으로 넘어갈 수 있는 product였습니다. 개발자들에게 좋은 스트레칭들만 모아두었더라구요 :)
특히 Creatability라는 것이 굉장히 감동적이었는데요, 자세한 내용은 꼭 해당 영상을 통해서 보는것을 추천드립니다
2일차에서는 세션 뿐만이 아니라, Community Lounge와 Sandbox를 돌아다니며 소통? 하며 다녔는데요, 제 개인적으로 생각하기에는 아직까지도 구글은 스타트업 처럼 프로덕트를 제작하며, 자사의 기술을 이용해서 다양한 사람들을 도울 수 있게 하는 기업으로 느껴졌습니다.
더 많은 Google I/O Session은 아래에서 확인하세요!