한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
2018년 개발자 커뮤니티의 성장을 위한 구글의 노력과 그 결과
2018년 12월 26일 수요일
안녕하세요. 구글 개발자 생태계 팀의 임성혁입니다.
다사다난했던 2018년의 끝자락에서 올 한해를 돌아보며 구글이 지원하는 개발자 커뮤니티인
Google Developers Groups
(이하 ‘GDG’)의 현주소를 검토하고, 2019년의 계획에 대해 공유해 드리는 자리를 마련하기 위해 본 포스팅을 작성해 봅니다.
그 전에 GDG에 대해 간단히 설명해 드리자면, GDG는 구글의 기술을 좋아하는 사람들이, 개발자와 비 개발자 상관없이 모두 모여 구글의 기술과 제품에 대한 정보를 공유하는 커뮤니티입니다. 이 커뮤니티를 운영하는 분들을 GDG 운영자로, 해당 커뮤니티를 GDG 챕터로 지칭합니다. 구글은 오직 GDG의 활동 후원과 플랫폼 관리 및 지원(챕터 개설과 운영자 정보 등록)만 담당하고 있으며, GDG의 모든 활동은 전부 운영자의 자발적인 참여를 통해 이뤄집니다.
<GDG 공식 로고>
2018년 초 구글에서는 GDG를 더욱 활성화 시키기 위해 두 가지 키워드를 기반으로 계획을 수립했습니다. 첫 번째는 “
지역 기반으로 저변 확대하기
”입니다. 먼저 2017년까지 활동해오던 기존 GDG 챕터는 다음과 같습니다.
지역별: 서울, 인천
기술별: 안드로이드, 웹테크, 클라우드
번외: 캠퍼스
기술별 챕터는 한국에서 중요한 기술을 대부분 커버하고 있어 챕터 수가 충분했으나, 지역별 챕터의 다양성이 매우 아쉬웠습니다. 번외 챕터인 GDG 캠퍼스는 대학생 및 예비 개발자를 대상으로 하는 커뮤니티임을 고려하면, 지역 기반 챕터의 수가 2개뿐이기 때문이었습니다. 그래서 주요 도시를 기반으로 신규 챕터 개설을 목표로 설정했고, 그 결과 다음과 같이 7개의 지역 챕터를 개설할 수 있었습니다.
서울, 인천, 부산, 광주, 대전, 판교, 송도, 수원, 구로
<한국 GDG 챕터 지도>
두 번째로는 “
운영자 총원 증가시키기
”입니다. 2018년 초에 GDG 운영자로 등록되어 있던 총원은 18명뿐이었습니다. 커뮤니티 활동을 활성화하여 더욱더 많은 사람이 행사에 참여할 수 있게 하기에는 운영자의 수가 현저히 적었습니다. 만약 몇몇 운영자가 개인적인 사정(본업, 건강 등)으로 잠깐의 휴식기가 필요할 경우, 남은 운영자끼리 커뮤니티 활동을 이어가기에는 부담될 수 있기 때문입니다. 그래서 새 챕터에 운영자를 추가하는 것을 도울 뿐만 아니라, 기존 챕터의 운영자 충원도 함께 지원하였습니다. 전체적으로 운영자의 수가 늘어나면, 활동이 가능한 운영자끼리는 커뮤니티 활동을 계속 이어나가기가 좀 더 수월할 것이라는 예측이었습니다
열정 가득한 운영자를 만나기 위해 지원서식을 구글 소셜 채널을 통해 게재 후 지원자 중에 운영자를 충원하였고, 그 결과 현재 활동 중인 운영자 수는 총 45명이 되었습니다
위와 같은 노력은 여러 방면에서 큰 성과를 거두었고, GDG의 활동량 증대를 통해 한국 개발자 커뮤니티의 지역 기반의 저변 확대라는 성공을 가져왔습니다.
<2017년, 2018년 수치 자료>
일단 개최된 행사의 수와 참가한 사람의 수가 눈에 띄게 증가했습니다. GDG가 개최한 전체 행사의 수가 전년대비 2.4배 증가했고, 해당 행사에 참가한 참가자의 수 또한 전년대비 1.8배 증가했습니다. 해당 수치를 환산하면, 2018년 한 해 동안 GDG 행사가 주말마다 평균 2개씩 항상 열렸고, 운영자 1명당 136명의 참석자를 모객한 결과입니다
특히 의미 있는 부분은 글로벌 행사입니다. 글로벌 행사는 전 세계의 GDG가 같은 기간 동안 같은 테마로 개최하는 행사들을 말합니다.
Women Techmakers
,
I/O Extended
,
DevFest
,
Next Extended
가 이에 해당합니다. 전체적으로 행사의 수가 전년대비 2.4배 증가했을 뿐만 아니라, 해당 행사에 참가한 참석자의 수도 전년대비 1.8배 증가했습니다.
이렇듯 한국의 GDG는 질적으로나 양적으로나 큰 성장을 거뒀습니다. 구글은 이를 밑거름 삼아 커뮤니티만을 위한 큰 행사를 마련함으로써 구글의 중요한 업데이트를 운영자들에게 먼저 공유하고, 운영자들 간의 더욱더 긴밀한 협업을 자연스럽게 이끌어 냈습니다. 이는 구글과 커뮤니티의 관계를 더욱 두텁게 하여 개발자 생태계를 만들어 나가는 데에 큰 원동력으로 작용할 수 있었습니다.
<
글로벌 GDG 써밋 @써니베일
>
<
동북아 GDG 써밋 @상해
>
<한국 GDG 써밋>
2019년에도 구글은 커뮤니티의 성장을 기반으로 개발자 생태계를 발전시키기 위한 노력을 멈추지 않을 것입니다. 2019년 커뮤니티의 성장 목표는 다음과 같습니다.
“지역 기반의 GDG 챕터 신설” - 올해 서울/수도권 중심의 GDG 기반을 대한민국 전역으로 퍼뜨리는데 큰 성공을 거뒀지만, 아직도 GDG 챕터가 존재하지 않은 주요 지역이 많이 남아 있습니다. 해당 지역의 개발자들에게 기술과 지식을 전파해 줄 열정적인 운영자를 만나 챕터를 신설하는 것이 목표입니다. 또한, 구글의 중요 기술 중 하나인 클라우드의 지역 챕터도 추가로 개설하는 것을 목표로 하고 있으니, 여러분의 많은 관심과 참여를 부탁드립니다.
“구글과 커뮤니티 간의 개발자 프로그램 협업” - 구글은 커뮤니티 지원뿐만 아니라, 개발자가 직접 참여하고 공부할 수 있도록 하는 프로그램을 직접 만들어 운영하고 있습니다. 대표적인 예로
클라우드 스터디 잼
이 있으며, 이 밖에도 여러 종류의 프로그램이 2019년도에 준비되어 있습니다. 커뮤니티와의 협업을 통해 효율을 극대화하여 이 프로그램들에 대한 개발자의 적극적 참여를 최대한 이끌어 내는 것이 목표입니다.
“GDG 외 커뮤니티의 활동 지원” - 마지막으로 커뮤니티 지원의 폭을 넓히는 것입니다. 구글은 Google Cloud와 TensorFlow(AI/ML)에 관한 주제를 다루는 모든 커뮤티니, 동아리, 그룹 등의 활동에 동기부여를 위해 구글 브랜드 기념품을 보내드리는
커뮤니티 지원 프로그램
을 운영 중입니다. 기한 없이 상시 열려있는 신청서이므로 언제든 참여해 보시기 바랍니다.
구글 개발자 생태계 팀의 2018년 결과를 돌아보고 2019년 계획을 공유해 드리며, 이상으로 본 포스팅을 마칩니다. 내년에도 개발자와 함께하는 구글이 되도록 노력을 아끼지 않겠습니다. 감사합니다.
<2018년 구글 개발자 커뮤니티 연말파티>
국제화 - Action의 현지화
2018년 12월 18일 화요일
개발자가 사용자에게 멋진 사용 환경을 제공하는
Action
을 빌드했습니다. 이제 유일한 문제는 Action을 작성한 언어를 구사하는 사람만 사용할 수 있다는 점입니다. 그대로 방치한다면 개발자가 애써 빌드한 소중한 결과물을 전적으로 즐기고 애용할 수 있는 다른 수많은 사용자를 놓치는 셈입니다. 그렇다면 자신이 개발한 Action을 모든 이가 편리하게 이용할 수 있도록 하려면 어떻게 해야 할까요? 현지화하면 됩니다!
현지화란 무엇일까요?
현지화는 다양한 언어에 대한 사용 환경과 Action의 언어를 맞춤설정하는 것입니다. 다음은 GDG San Francisco Action에 대해 다양한 언어로 된 인사말 문구를 몇 가지 예로 든 것입니다.
“GDG San Francisco에 오신 것을 환영합니다. 소개해드릴 내용이 있는데요…”“Benvenuto a GDG San Francisco. Posso darti informazioni…”“Bienvenidos a GDG San Francisco. Puedo contarte sobre…”“Willkommen bei der GDG San Francisco. Ich kann dir mehr über unsere…”
현재 Action on Google에서 지원하는 언어와 로캘
을 확인해 보세요.
현지화하는 이유
개발한 Action을 더 많은 사용자가 사용할 수 있도록 하기 위해
사용 언어를 기준으로 사용자 환경을 완전히 맞춤설정하고 변경하기 위해
Google 어시스턴트 개발자 커뮤니티 프로그램
을 통해
Taking your Action Global
마일스톤을 받을 수도 있습니다. 이 마일스톤은 개발한 Action을 적어도 2가지 언어(그중 하나는 영어 이외의 언어여야 함)로 제공하고 두 언어에서 모두 최소 참가 사용자 수를 달성한 경우 얻을 수 있습니다.
Action을 현지화하는 방법
docs
에서 Action을 현지화하는 방법에 관한 정보를 찾을 수 있지만, 필자는 이 글이 Dialogflow와 웹훅을 사용하는 Action을 위한 안내서가 되도록 하기 위해 아래에 그 내용을 정리해두었습니다(필자가 참조하는 프로젝트의 유형에 관해서는 이
샘플 코드
를 확인해 볼 것).
1. 올바로 작동하고 안정적이어서 현지화할 준비가 된 Action으로 시작해야 합니다.
그런 Action이 이미 배포 완료된 상태여서
검토 과정
을 확실히 통과할 수 있다면 이상적입니다.
2. Action의 모든 텍스트를 현지화할 다른 언어로 번역합니다.
Action의 응답
각 인텐트에 대한 훈련 문구
맞춤 엔터티
Action의 디렉토리 정보
설명(간략한 설명과 자세한 설명) 섹션
샘플 호출
개인정보 보호정책
서비스 약관(선택 사항)
이 과정이 시간이 가장 많이 소요되는 부분이지만, 가장 중요한 부분이기도 합니다. 원어민에게 텍스트 번역을 맡기고 원어민이 Action의
가상 사용자
역할을 맡아 Action을 테스트하여 현지인에게 자연스러운 느낌이 드는지 확인하는 것이 이상적입니다.
3. 여러 언어를 지원하도록 실행 코드를 업데이트합니다.
i18n
(국제화)을 지원하는 클라이언트 라이브러리를 사용합니다. 다양한 프레임워크에 대해 이를 지원하는 여러 가지 다른 라이브러리가 있으므로, 자신에게 알맞은 것을 고르세요.
Actions on Google에 Node.js 클라이언트 라이브러리
를 사용 중이라면 Actions on Google에서
권장 라이브러리
를 확인해 보세요. (
Number Genie
샘플 코드를 통해 구현 방법을 확인해 보세요.)
4. Dialogflow 콘솔을 통해
Dialogflow 에이전트
에 새 언어를 추가합니다.
에이전트에 언어 추가
— 이 방법을 사용하면 각각의 새 언어에 인텐트가 복사됨
새 언어마다 번역한 훈련 문구, 응답, 엔터티 항목 추가
5.
Action on Google 콘솔
에 Language를 추가합니다.
Overview 섹션 옆에 있는 기어 모양 아이콘을 통해
Project Setting
페이지로 이동하여 Action에 Language를 추가합니다. 거기서
Languages
를 클릭하여 모든 언어를 추가할 수 있습니다.
6.
Action 콘솔에서 Action 테스트
Action 시뮬레이터
에서 각 언어의 모든 대화 흐름을 테스트하여 예상한 결과가 나오는지 확인합니다. 이 시뮬레이터를 사용하여 시뮬레이션 대상 언어뿐 아니라 위치도 변경할 수 있습니다.
여기
에서 관련 문서를 확인해 보세요.
프로젝트에 테스트를 추가할 것을 권장합니다(
Actions on Google Testing Library
,
샘플 예제
)!
다양한 언어로 다양한 대화 흐름을 테스트하면서 Action이 해당 언어로 더욱 자연스럽게 들리도록
SSML을 미세 조정
합니다.
7. 각 언어에 대해 번역된
디렉토리 정보
를 추가하여
Action on Google 콘솔에서 Action을 업데이트
합니다.
설명(간략한 설명과 자세한 설명)
샘플 호출
개인정보 보호정책
서비스 약관(선택 사항)
8. 출시를 위해 제출합니다!
프로덕션 릴리스에 대한 검토 과정과 똑같은 검토 과정을 거치므로
베타 릴리스
를 사용하는 것이 좋습니다. 프로젝트가 일단 승인된 후에는 준비가 되는 대로 바로 프로덕션 단계로 넘어가 출시할 수 있습니다.
많은 작업을 해야 하는 것처럼 보일 수도 있겠지만, 일단 Action을 다른 언어로 번역하고 나면 그 다음부터는 정말 쉽습니다! 애써 개발한 Action, 충분히 시간을 들여 여러 가지 언어로 확장하면 더 많은 사용자가 Action을 사용할 수 있습니다!
더 자세한 정보를 원하세요? Actions on Google 커뮤니티로 가서 다른 개발자들과 Action에 관해 열띤 토론을 벌여보세요. Actions on Google 개발자 커뮤니티 프로그램에 참가한 후 첫 번째 앱을 게시하면 어시스턴트 티셔츠와 매달 $200의 Google Cloud 크레딧을 받으실 수도 있습니다.
안드로이드와 그 너머를 위한 Kotlin 모멘텀
2018년 12월 17일 월요일
<원문 링크는
이곳
에서 확인할 수 있고 번역 리뷰에는 김태호(Google)님이 도움주셨습니다.>
게시자: James Lau(
@jmslau
), 제품 관리자
2018년은 새로운 언어들이 채택되고, 개발자들의 사랑을 받으면서 Kotlin에 있어서는 매우 뜻깊은 한 해였습니다.
사실상
Google Play에 있는 상위 1000개의 Android 앱 중 27%는
이미 Kotlin을 사용하고 있습니다. 더욱 중요한 건, 최근 설문 조사에서
Android 개발자들이
97%가 넘는 만족도
로
언어를 애용하고 있다는 사실입니다. Kotlin이 2018 StackOverflow 설문 조사에서
가장 사랑받는 두 번째 언어
로 뽑혔다는 사실은 전혀 놀라운 일이 아니죠.
Google은 Android 개발을 위한 최고의 프로그래밍 언어로 Kotlin을 지원하고 있습니다. 지난 12개월 동안 Kotlin 개발자 경험을 위해 중요한 사항들을 많이 개선했습니다. 여기에는
Kotlin 친화적 SDK
,
Android KTX
,
새로운 Lint check
및
Android Studio
내 다양한 Kotlin support 개선 사항들이 포함됩니다. 당사는 또한
당사 공식 문서
,
Kotlin의 새 플래그십 샘플
,
새로운 Kotlin Bootcamp Udacity 과정
,
#31DaysOfKotlin
및
기타 심층 분석 콘텐츠
에 Kotlin support를 출시했습니다. 또한 Kotlin 개발자 경험을 향상하기 위해 계속 노력하고 있습니다.
언어가 진보함에 따라, 전 세계적으로 더 많은 개발자가 Kotlin의 장점에 대해 알게 될 것입니다. 최근 당사는 인도를 방문하여
Zomato
같은 현지 개발자들과 협업함으로써 Kotlin이 어떤 방식으로 그들의 Android 개발에 장점으로 작용했는지 더 잘 이해할 수 있었습니다. Zomato는 24개국에서 매월 1억 5,000만 명이 넘는 사용자들이 식당 검색에 이용하는 트렌디한 서비스 앱입니다. Kotlin을 통해 Zomato는 앱의 코드의 줄 수를 획기적으로 줄였으며, 컴파일 타임에 앱 내의 주요한 결함들을 발견할 수 있었습니다. 아래 동영상에서 이들의 Kotlin 스토리를 확인할 수 있습니다.
Android 개발자 스토리: Zomato
Zomato는 더 안전하고 간결한 코드를 작성하기 위해 Kotlin을 사용합니다.
오늘 Google Cloud Platform 팀은 Android를 넘어서는 전용
Kotlin 포털
출시에 대해 발표할 수 있어서 아주 기쁩니다. 이를 통해 개발자들은 Google 클라우드에서 Kotlin 관련 리소스를 더욱 쉽게 찾을 수 있습니다. 모바일에서든 클라우드에서든 Kotlin을 가능한 한 쉽게 사용할 수 있도록 만들고자 합니다.
Google Cloud Platform의 Kotlin 홈페이지
새로운 언어를 채택하는 것은 대부분 회사에 있어서 중요한 결정이기에, 귀사 또한 선택하는 언어에 대해 전망이 좋을 것이라는 확신이 있어야 합니다. 이를 위해 Google은 JetBrain과 의기투합하여 Kotlin 재단을 설립하였습니다. 재단은 Kotlin을 지속적으로 빠르게 발전시키면서, 계속해서 오픈된 자원으로 무료 제공할 예정입니다. Kotlin 재단에 대해
여기
서 자세히 알아보세요.
Kotlin 개발자가 될 수 있는 절호의 기회입니다. 아직 Kotlin을 사용해 보지 않았다면 한 번 빠르게 성장하고 있는 이 글로벌 커뮤니티에 합류하시기를 권장합니다.
kotlinlang.org
또는
Android 개발자 Kotlin 페이지
를 방문해 시작해보세요.
2018년도 진행한 클라우드 스터디 잼을 돌아보며
2018년 12월 7일 금요일
작성자 :
임성혁,
구글 개발자 생태계 팀
지난 4월에 개시됐던 클라우드 스터디 잼이 약 8개월이라는 긴 시간을 끝으로 대단원의 막을 내렸습니다. 이에 프로그램 매니저로서 보고, 느끼고, 배운 것들을 여러분께 공유해 드리고자 본 후기를 작성합니다.
“클라우드 스터디 잼”은 총 5단계로 구성된 클라우드 개발자 교육 프로그램
입니다. 각 단계는 전부 서로가 연계되어 있으며, 오직 현 단계의 이수자만이 다음 단계로 진학할 수 있도록 하는 구조로 진행되었습니다. 이는 “
나도 이수해서 다음 단계까지 올라가고 싶어!
”라는 목표 설정을 유도해 단계마다 이수율을 극대화하기 위한 동기부여 장치였습니다. 결과론적인 이야기지만 이 장치는 의도한 대로 그 기능을 성실히 수행했습니다.
Step1. 입문반
먼저 1단계는 입문반이었습니다. 공개모집을 통해 각 스터디를 이끌 그룹장을 신청받았고, 각자 본인의 스터디 그룹의 멤버가 될 그룹원을 직접 모아 그룹을 구성하도록 하였습니다. 총 121명의 그룹장이 일정 기간에 그룹원을 모집하여 총 1,429명의 참가자라는 숫자에 도달할 수 있었습니다.
해당 참가자들은 구글이 제공한
퀵랩
바우처를 통해 클라우드를 공부했고, 입문반의 이수 조건은 개강 후 4주 내로 정해진 랩을 수료하는 것이었습니다. 모든 참가자를
GCPUG KR 커뮤니티
에 가입하게 했고 구글 클라우드를 공부하며 발생한 문의 사항을 해당 커뮤니티 내 기술 전문가를 통해 답변받을 수 있도록 하여 이수율을 더욱더 높이는 노력을 했습니다. 그 결과 총 650명의 참가자가 입문반을 이수했습니다.
<입문반 개강파티>
Step2. 심화반
다음 2단계는 심화반이었습니다. 입문반 이수자 중 총 291명이 심화반에 지원하셨고, 그들은 구글이 제공한
코세라
바우처를 통해 더욱더 깊게 구글 클라우드를 2주간 공부했습니다.
그다음 2주 동안은 미화 500달러의 GCP 크레딧을 모든 참가자에게 주어 배운 내용을 실제
클라우드 콘솔
에서 연습해 볼 수 있도록 하는 코스도 제공했습니다. 그리고 팀 빌딩과 네트워킹의 시간을 제공해 드리기 위해 치킨과 맥주를 제공해 드리는 장치도 마련했습니다. 게다가, 유튜브 라이브스트리밍 기능을 활용하여 구글 클라우드 엔지니어의
BigQuery
와
Kubernetes
기술 세션을 제공함으로써 더욱더 전문적으로 깊게 공부할 수 있도록 교육 콘텐츠를 구성했습니다. 그리하여 4주 후 총 126명의 참가자가 심화반을 이수했습니다.
<심화반 종강파티>
Step3. 해커톤
3단계는 해커톤이었습니다. 하루 동안 한자리에서 프로젝트를 수행하는 일반적인 해커톤이 아닌, 6주 동안 팀별로 협동을 통해 지금까지 배운 것들을 바탕으로 데모를 만드는 것이었습니다. 이러한 형식으로 코스를 진행한 이유는 참가자분들이 대부분 직장인이셨기 때문입니다.
완성된 프로젝트 데모를 데모데이에서 소개하며 시연하는 것을 이수 조건으로 삼았습니다. 이 과정에서 데모를 잘 만드실 수 있도록 모든 참가자에게 미화 300달러의 GCP 크레딧을 추가로 제공해 드렸습니다.
총 18개의 팀이 참가하여 16팀이 성공적으로 데모를 만들어 3단계를 이수하셨고, 이수한 참가자 수는 총 89명이었습니다.
<해커톤 데모데이 종료 후>
Step4. Cloud Summit 에서의 발표
4단계는 상당히 특별했습니다. 자신이 배우고 만들어 낸 것들을 대중에게 발표하도록 하는 코스였습니다.
개발자들의 가장 강력한 무기는 서로 지식을 공유하고 함께 협력하는 ‘오픈소스’ 문화를 기반으로 한다는 것입니다. 또한, 개발자 본인 스스로가 발표, 기술 블로그 활동 등을 통해 다수의 개발자에게 영향 미칠 수 있다는 개발자 생태계가 있다는 점입니다.
위와 같은 활동을 훈련하기 위해 클라우드 서밋 서울 2018에 개발자 커뮤니티 라운지라는 무대를 마련하게 참가자분들이 발표하게 하였습니다.
행사 당일 라운지에는 약 1,000명 이상의 방문객이 참가자의 발표 세션을 들었으며, 그 과정에서 65명이 이수하셨습니다. 이수 조건은 팀에서 한 명 이상이 발표하기였습니다.
<Cloud Summit에서 발표하는 참가자>
Step5. GDE ( Google Developers Experts )
사실상 4단계에서 프로그램은 마무리되었습니다. 그 이유는 바로 5단계가 장기적 코스였기 때문입니다. 5단계는 바로 Cloud GDE에 도전하기였습니다.
GDE는
Google Developers Experts
의 약자로써, 구글의 특정 기술에 대한 지식과 경험이 구글의 엔지니어 수준인 외부의 개발자를 구글이 직접 인증하여 구글의 기술을 대변할 수 있도록 하는 글로벌 프로그램입니다.
이는 여러 단계의 인증 절차를 통해 이뤄지는 전문적인 자격이므로, 클라우드 스터디 잼 졸업생들에게 장기적으로 계속 클라우드를 공부할 수 있게 하는 것이 목표였습니다. 그 결과 예상보다 많은 참가자가 Cloud GDE를 준비하시게 되었습니다.
위와 같은 모든 과정을 끝으로 총 45명의 졸업생과 함께 클라우드 스터디 잼 졸업식을 했습니다. 졸업식에서 지난 8개월을 돌아보며 우리가 모두 서로 얼마나 클라우드를 깊이 있게 공부했는지 확인하는 좋은 계기가 됐습니다.
특별히 졸업식에서는 상당한 난이도를 자랑하는
클라우드 자격증 프로그램
의 바우처가 제공됐고, 이를 효율적으로 취득할 수 있도록 도와주는 교육 세션이 구글의 클라우드 엔지니어를 통해 제공됐습니다. 그리고 해당 자격증은 졸업생 개인의 숙제와 목표로 남겨뒀을 뿐 결과를 추적하지 않았습니다.
<졸업식 후>
단계마다 참가자의 이수 욕구를 극대화하기 위해 한 가지 장치를 더 마련하였습니다. 각 단계를 수료할 때마다 특별한 배지를 했고, 해당 배지들을 전부 모으면 하나의 큰 방패가 되는 기념품을 준비했습니다. 이는 개발자의 수집 본능을 자극함으로써 동기부여의 촉매제 구실을 하였습니다.
<핀배지 쉴드>
이수율이 50% 가까이 나왔다는 결과는 상당히 놀랄만한 수치입니다. 교육 콘텐츠의 난이도가 쉽지도 않았을 뿐만 아니라, 본업을 병행하며 이를 수료한다는 것은 매우 어려운 일이기 때문입니다. 이는 한국 개발자들의 배움에 대한 열정이 얼마나 뜨겁고 무한한지 보여주는 지표라고 생각합니다. 여러분들의 노고에 감사드립니다.
사실 참가자들의 문의 사항에 일일이 실시간으로 전부 직접 답변하고, 오프라인 행사와 기념품 등을 준비하며, 밤낮없이 프로그램을 더욱 견고히 만들 아이디어를 짜내느라 남들 모르게 고생 조금 했습니다. 그 고생에 대한 보상이라도 하듯, 2019년이 코앞으로 다가왔습니다. 네, 맞습니다. 2019년 개발자 프로그램이 곧 개시됩니다. (만세…)
내년을 위한 클라우드 개발자 프로그램의 계획 수립이 모두 완료된 상태이며, 각 프로그램의 타임라인에 맞춰 저희
공식 구글 개발자 소셜 채널
을 통해서 공지될 예정입니다. 해당 채널을 반드시 구독하셔서 프로그램 지원서 제출 기한을 놓치는 일 없으시기를 바랍니다.
올 한해 마무리 잘하시길 바라며, 내년에도 뜻하신바 꼭 이루시기를 바랍니다. 내년에도 개발자 여러분과 함께 하는 구글 개발자 생태계 팀이 되겠습니다. 곧 다시 뵙겠습니다!
Flutter 1.0: Google의 휴대용 UI 도구 키트
2018년 12월 6일 목요일
게시자: Tim Sneath, Flutter의 그룹 제품 관리자
오늘 Flutter Live에서는 단일 코드베이스에서 iOS 및 Android를 위한 아름다운 네이티브 사용 환경을 만들기 위한 최초의 안정적인 Google의 UI 툴킷 버전인
Flutter 1.0
을 발표합니다.
오늘날의 교차 플랫폼 모바일 개발은 적당한 절충과 타협으로 가득 차 있습니다. 개발자는 여러 운영체제를 위해 똑같은 앱을 여러 차례 빌드하거나 이식성을 고려해 기본 속도와 정확성을 맞바꾸는 최소 공통 분모 방식의 솔루션을 수락하거나 양자택일할 수밖에 없는 처지입니다. 하지만 Flutter의 등장으로, 우리는 두 가지 인기 모바일 운영체제를 모두 대상으로 하는 네이티브 ARM 코드로 구동되는 하드웨어 가속 그래픽과 UI라는 두 마리 토끼를 모두 완벽히 잡을 수 있게 해주는 솔루션을 보유하게 되었다고 믿습니다.
Flutter 소개
Flutter는 모바일 앱을 빌드하기 위해 전통적인 Apple 및 Android 앱 모델을 대체하지는 않습니다. 그 대신, 기존 앱에 삽입하거나 완전히 새로운 앱을 위해 사용할 수 있는 앱 엔진입니다.
우리는 Flutter의 특성을 다음 네 가지 차원에서 생각합니다.
Flutter를 사용하면
아름다운
앱을 빌드할 수 있습니다. 우리는 디자이너가 기본 프레임워크의 제한 때문에 어쩔 수 없이 적절히 절충할 필요 없이 창의적 비전을 완벽히 펼칠 수 있도록 하고 싶습니다. Flutter를 사용하면 화면에서 모든 픽셀을 하나하나 제어할 수 있고, 강력한 합성 기능을 통해 제한받지 않고 그래픽, 동영상, 텍스트, 컨트롤을 오버레이하고 애니메이션으로 구현할 수 있습니다. Flutter는 iOS와 Android에서 모두 완벽한 픽셀의 경험을 선사하는 위젯 세트를 완벽히 갖추고 있습니다. 또한 Flutter 덕분에 디지털 환경을 위한 Google의 개방형 디자인 시스템인 Material Design의 궁극적 실현이 가능합니다.
Flutter는
빠릅니다
. Flutter는 Chrome과 Android를 뒷받침하는 바로 그 하드웨어 가속 Skia 2D 그래픽 엔진으로 구동됩니다. 우리는 기기의 기본 속도로 결함과 버벅거림이 없는 그래픽을 지원할 수 있도록 Flutter를 설계했습니다. iOS 및 Android용 네이티브 32비트 및 64비트 ARM 코드에 대한 컴파일을 지원하는 세계적 수준의 Dart 플랫폼으로 Flutter 코드를 구동합니다.
Flutter는
생산적
입니다. Flutter에서는 모바일 개발자 및 디자이너가 실시간으로 자신의 앱에 대해 반복할 수 있는 새롭고 획기적인 기능인
상태 저장 핫 리로드
를 도입합니다. 상태 저장 핫 리로드를 사용하면 앱을 다시 시작하거나 그 상태를 잃지 않고 앱의 코드를 변경하고 그 즉시 변경 결과를 볼 수 있습니다. 상태 저장 핫 리로드는 개발자의 앱 빌드 방식을 변화시킵니다. 사용자 설문조사에서 개발자들은 이 기능 덕분에 개발 사이클의 생산성이 3배나 향상되었다고들 합니다.
마지막으로, Flutter는
공개되어 있습니다
. Flutter는 BSD 스타일 라이선스를 가진 오픈소스 프로젝트로, 전 세계 수백 명의 개발자가 소스 코드 개발에 기여하고 있습니다. 뿐만 아니라, 수천 개의 플러그인으로 이루어진 활력 넘치는 생태계도 조성되어 있습니다. 모든 Flutter 앱이 표준 Android 및 iOS 빌드 도구를 사용하는 네이티브 앱이므로, Android에서 Kotlin 또는 자바로 작성한 코드와 UI 그리고 iOS에서 Swift 또는 Objective-C로 작성한 코드와 UI를 포함한 모든 것에 기본 운영체제를 통해 액세스할 수 있습니다.
이 모든 것을 한데 묶고 이를 다시 Visual Studio Code, Android Studio, IntelliJ 또는 개발자가 선택한 프로그래머 편집기를 위한 동급 최고의 도구와 결합한 것이 바로 Flutter이며, 따라서 Flutter는 단일 코드베이스에서 iOS 또는 Android를 위한 아름다운 네이티브 사용 환경을 빌드하기 위한 개발 환경이라 할 수 있습니다.
Flutter의 성장과 발전 모멘텀
우리는 10개월 전 Mobile World Congress에서 Flutter의 첫 베타 버전을 발표했으며, 더욱 폭넓은 커뮤니티에서 이를 채택한 속도를 지켜보며 흥분을 감출 수 없었습니다. 우리가 1.0 버전을 출시하기도 전에 Apple과 Google Play의 앱 스토어에 이미 게시된 Flutter 앱의 개수만 해도 벌써 수천 개나 된다는 점만 보더라도 그 채택 속도를 가늠해 볼 수 있을 것입니다. 개발자들이 UI 개발에 대한 새로운 접근 방식을 받아들일 준비가 되어 있다는 점은 분명합니다.
Flutter는 Google 내부에서도 폭넓은 범위의 제품에 사용되고 있는데,
Google Ads
의 경우 이미 iOS 및 Android 앱은 Flutter로 전환했습니다. 1.0이 나오기도 전에 Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly, Tencent를 비롯한 광범위한 글로벌 고객이 Flutter로 앱을 개발하거나 Flutter를 사용한 앱을 출시하고 있습니다.
Capital One 팀의 Michael Jones 엔지니어링 상무이사는 자신의 팀이 Flutter를 사용하며 경험한 바를 이렇게 말합니다.
"우리는 고성능 교차 플랫폼 개발에 관한 Flutter의 독특한 접근 방식에 무척 매료되었습니다. 우리의 엔지니어들은 신속하게 개발하겠다는 약속과 핫 리로드 기능을 높이 평가했고, 지난 1년간 우리는 프레임워크, 특히 네이티브 통합 과정에서 놀라운 성과와 진전을 보았습니다."
"Capital One은 Flutter 덕분에 'iOS나 Android를 우선시'하는 방식이 아니라, 진정한 모바일을 우선시하는 모델에서의 기능에 대해 진지하게 생각할 수 있게 되었습니다. Flutter 1.0이 나온다고 하니 정말 기대되고, 엔지니어링 커뮤니티에서의 발전 속도와 신선한 자극에 계속 감동을 받을 것 같아요."
오늘 열린 Flutter Live 이벤트에서, 인기 결제 서비스 제공업체인 Square는 Square 결제 리더기를 사용하여 직접 결제하든 모바일 앱 내에서 결제하든 상관없이 Flutter를 이용해 상품 및 서비스 대금 결제를 쉽게 수락할 수 있게 해주는
두 가지 새로운 Flutter SDK
를 발표했습니다. Square는 태평양 연안 북서부 주변 지역의 농산물 시장에서 과일을 재배하고 판매하는 가족 농장인
Collins Family Orchards
의 앱을 사용하여 Square의 결제 SDK를 사용하는 사례를 시연했습니다.
Collins Family Orchards 앱 개발자 Dean Papastrat가 자신의 경험에 대해 이렇게 들려주었습니다.
"프로덕션 빌드에서 이루어지는 모든 애니메이션과 전환의 속도에 완전히 압도되었죠. 웹 개발자인 제게는 Flutter로 전환하는 일이 너무나 쉽고 간단했는데, 불과 일주일 만에 결제 기능을 완벽히 수행할 수 있는 앱을 빌드할 수 있었다는 사실이 믿기지 않습니다."
또한 Flutter Live에서는
2Dimensions
가
Flare
를 바로 사용할 수 있다고 발표하기도 했는데, 이는 디자이너가 Flutter 앱에 직접 삽입하고 코드로 조작할 수 있는 벡터 애니메이션을 만들 수 있도록 지원하는 주목할 만한 새로운 도구입니다. Flare를 사용하면 하나의 앱에서 디자인하고 다른 앱에서 애니메이션을 구현한 다음에 그 모든 것을 기기마다 특정한 자산과 코드로 변환할 필요가 없습니다.
Flare로 빌드한 애니메이션을 기존 Flutter 앱에 위젯으로 삽입할 수 있는데, 이를 통해 애니메이션이 전체 작성자에 참여하고 다른 텍스트, 그래픽 레이어 또는 심지어 UI 위젯과도 오버레이되도록 할 수 있습니다. 이런 식으로 통합하면 애니메이션이 다른 아키텍처의 '블랙 박스' 제한으로부터 자유로워지고, 앱이 완성되는 순간까지 디자이너와 개발자 간에 지속적으로 협업할 수 있습니다. Flutter와 Flare 사이의 이처럼 긴밀한 통합으로 세심하게 잘 마무리된 모바일 사용 환경을 만들고 싶어 하는 디지털 디자이너와 애니메이션 제작자에게 매우 매력적이고 설득력 있는 솔루션을 제공합니다.
Flutter에 승부수를 던진 또 다른 파트너로
Nevercode
가 있는데, 모바일 앱을 위한 지속적 통합 및 지속적 배포(CI/CD) 도구를 공급하며 급속히 성장 중인 공급자입니다. 이 회사는 Flutter Live에서 단일 자동화에서 Android 및 iOS 모두를 위한 Flutter 앱의 빌드 및 패키징 프로세스를 쉽게 자동화하도록 할 목적으로, 특히 Flutter에 적합하게 설계한 새로운 도구인
Codemagic
을 발표했습니다. 현재 베타 버전으로 제공되는 Codemagic을 사용하면 Flutter 프로젝트가 포함되어 있는 GitHub 저장소를 선택할 수 있고, 몇 번의 클릭만으로 테스트를 실행하는 지속적 빌드 흐름을 만들고 Apple 및 Google Play 스토어에 업로드할 수 있는 바이너리 앱 번들을 생성할 수 있습니다.
우리는 개발자들이 베타 버전 출시 이후로 Flutter로 빌드하고 있는 앱의 범위와 다양성을 강조해서 보여드리기 위해 아래의 짧은 동영상을 제작했습니다.
Flutter 1.0의 새로운 특징
첫 베타 버전 출시 이후, 우리는 Flutter에 새로운 기능을 추가하고 더욱 완벽하게 다듬는 작업을 해오고 있습니다. 특히, 새로운 위젯으로
픽셀 단위까지 완벽한 iOS 앱
을 위한 지원의 완성도를 더욱 높이고, 거의 20가지의 서로 다른 Firebase 서비스를 위한 지원을 추가하고, Flutter 앱의 성능 개선 및 크기 축소를 위한 작업을 수행했습니다. 또한 커뮤니티에서 받은 피드백을 바탕으로 수천 가지의 문제를 해결했습니다.
Flutter는 또한 Dart 2의 업데이트 버전으로서, 코드 크기가 더욱 작아지고 유형 검사 속도가 더욱 빨라지고 유형 오류에 대한 사용성이 더욱 개선된 Dart 플랫폼의 최신 버전인 2.1도 포함합니다. Dart 2.1에는 사용자 환경을 빌드할 때 생산성을 향상하기 위한 새로운 언어 기능도 있습니다. Dart 2.1을 이미 채택한 개발자들은 최신 엔진으로 전환한 것만으로도 상당한 속도 향상 효과를 보고 있다고들 말합니다.
1.0 버전 출시의 주 포커스는 버그 수정과 안정화이지만, 우리의 예상으로는 2019년 2월에 있을 다음 분기별 출시에 포함할 프리뷰 모드에서 개발자들이 사용해볼 수 있도록 두 가지 새로운 주요 기능인
앱에 추가
및
플랫폼 뷰
에 대한 프리뷰도 선보일 예정입니다.
앱에 추가
우리는 처음에는 Flutter를 빌드할 때 누군가 처음부터 새 애플리케이션을 빌드하는 상황에서의 생산성에 초점을 맞췄습니다. 그러나 당연히 모든 이가 새하얀 캔버스에 자신만의 그림을 그리기 시작할 수 있는 사치를 누리는 건 아닙니다. 규모가 큰 몇몇 고객 회사 담당자들과 대화해 보니, 고객은 기존 애플리케이션 내에서 새로운 사용자 경험이나 새로운 기능을 구현하기 위해 Flutter를 사용하거나, 기존 애플리케이션을 단계적으로 Flutter로 변환하고 싶어 한다는 점이 분명했습니다.
Flutter의 아키텍처는 이 모델을 제대로 지원하며, 결국 모든 Flutter 앱은 호스트 Android 및 iOS 컨테이너를 포함합니다. 하지만 우리는 기존 앱을 위한 템플릿, 도구, 안내 지침을 업데이트하여 Flutter를 더 쉽게 점진적으로 채택할 수 있도록 노력했습니다. 그래서 우리는 Flutter와 호스트 코드 사이에서 자산을 더 쉽게 공유할 수 있도록 했습니다. 또한 애플리케이션과 함께 디버거를 실행하지 않고 기존 Flutter 프로세스에 쉽게 연결할 수 있도록 도구를 다시 손봤습니다.
이러한 사용 환경을 더욱 개선하기 위해 계속 노력하겠습니다. 많은 고객이 이미 '앱에 추가' 기능에 대해 우리가 제시한 안내 사항을 올바르게 따르고 있지만, 앞으로도 계속 샘플을 추가하고 복잡한 시나리오를 위한 지원을 확장해나가겠습니다. 한편,
기존 앱에 Flutter를 추가하기 위한 안내는 위키에 소개되어 있으며
, 나머지 작업은
GitHub 프로젝트 보드
에서 추적할 수 있습니다.
플랫폼 뷰
'앱에 추가' 기능은 기존 애플리케이션에 Flutter를 점진적으로 도입하는 방법으로서 유용하지만, 때로는 다른 우회로를 택해 Flutter 앱에 Android 또는 iPhone 플랫폼 컨트롤을 삽입하는 방법이 유용하기도 합니다.
그래서 각 플랫폼에서 이런 종류의 콘텐츠를 삽입할 수 있게 해주는 플랫폼 뷰 위젯(AndroidView 및 UiKitView)을 도입했습니다. 우리는 두어 달 동안 Android 지원의 프리뷰를 진행해왔지만, 지금은 iOS로 지원 범위를 확장하고 있고 이를 이용하는
Google 지도
및
WebView
와 같은 플러그인을 추가하기 시작하고 있습니다.
다른 컴포넌트와 마찬가지로, 우리의 플랫폼 뷰 위젯은 컴퍼지션 모델에 참여하며, 이는 곧 이를 다른 Flutter 콘텐츠와 통합할 수 있다는 의미입니다. 예를 들어 위 스크린샷에서 오른쪽 아래 모서리의 부동 작업 버튼은 50% 알파가 적용된 배경색을 가진 Flutter 위젯입니다. 이는 Flutter의 고유한 아키텍처상 장점을 잘 보여줍니다.
개발자가 사용해볼 수 있도록 이 작업을 준비하는 동안 우리가 계속 성능과 기기 호환성을 개선하는 작업을 수행하고 있으므로, PlatformViews에 종속되는 앱을 배포할 경우 주의하도록 당부드립니다. 우리는 계속 활발하게 플랫폼 뷰를 최적화할 것이며, 다음 분기별 업데이트 시점에 맞춰 프로덕션 준비가 될 것으로 예상합니다.
Flutter, 모바일을 넘어
지금까지 Flutter는 주로 iOS와 Android를 대상으로 삼았습니다. 하지만 우리가 Flutter에 대해 품고 있는 포부는 모바일의 영역을 넘어 더욱 광범위한 플랫폼으로 확장하는 것입니다. 실은, Flutter는 처음부터 픽셀이 사용되는 곳이면 어디든 유연하게 적용하기에 충분한 휴대용 UI 도구 키트로 설계되었습니다.
이러한 작업 중 일부는 이미 공개한 바 있습니다.
Flutter Desktop Embedding
은 Windows, MacOS, Linux를 비롯한 데스크톱 운영체제에 Flutter를 적용한 초기 단계 프로젝트입니다. 또한 우리는 최근에 완전한 데스크톱 환경을 포함하지 않을 수 있는 더 작은 규모의 기기에 대한 Flutter 삽입 지원을 시연하기 위한 방법으로서
Raspberry Pi에서 Flutter를 사용하는 비공식적 방법의 세부 사항
을 공개했습니다.
이번 주 Flutter Live에서 우리는 Flutter를 실행할 수 있도록 상당히 확장한 실험실 환경에서 작업 중인 시험용 프로젝트를 최초로 살짝 공개했습니다.
Hummingbird는 Dart 플랫폼의 기능을 이용하여 네이티브 ARM 코드뿐 아니라 자바스크립트로도 컴파일하는 Flutter 런타임을 웹 기반으로 구현한 프로젝트입니다. Hummingbird를 사용하면 따로 변경할 필요 없이 Flutter 코드를 표준 기반 웹에서 실행할 수 있습니다.
Hummingbird의 기술적 구현 세부 사항
을 설명하는 별도의 블로그 게시물을 Medium에 올려두었으니 참고하시기 바랍니다. 그리고 2019년도 Google I/O에서 Hummingbird에 관해 공유할 정보가 많을 것이므로, 그때 뵙고 자세한 얘기를 나눌 수 있기를 바랍니다!
물론, 모바일은 여전히 우리의 최우선 관심사이므로 앞으로 몇 개월에 걸쳐 이러한 핵심 모바일 시나리오에 많은 투자가 이루어질 것으로 기대하셔도 좋습니다.
결론
Flutter 1.0의 출시와 함께, 우리는 기존의 베타, 개발 및 마스터 채널 외에도 새로운 '안정' 채널을 마련했습니다. 안정 채널은 다른 채널보다는 업데이트 빈도가 덜하겠지만, 다른 채널을 통해 이미 빌드에 대한 검사를 마쳤으므로 품질에 관해서는 더욱 확신하는 바입니다. 분기마다 가장 엄격한 테스트를 거친 빌드로 안정 채널을 업데이트할 것으로 예상합니다.
https://flutter.io
웹사이트에서 Flutter 1.0을 다운로드할 수 있으며, 이곳에서
다른 프레임워크에서 전환하는 개발자를 위한 문서
,
코드 랩
,
공통 샘플 설명서
,
기술 동영상
도 찾아보실 수 있습니다.
지금까지의 여정에서 우리와 함께 한 얼리 어답터가 특히 많은 기여를 해주셨습니다. 그분들은 적극적으로 피드백을 제공하고 문제를 파악하고 콘텐츠를 만들고 제품의 전반적인 형태를 잡아주는 등 큰 역할을 해주셨습니다. Flutter 커뮤니티는 하나의 프로젝트로서 우리가 가진 최대의 자산 중 하나입니다. 커뮤니티에 속한 모든 분 역시 이 오픈소스 프로젝트에 대한 관심이 크시므로, 사심 없이 자발적으로 활동하며 많은 도움을 주시는 개인들이 모인 다양하고 따뜻한 분위기의 커뮤니티입니다.
여러분을 위해 Flutter가 준비되어 있습니다. 무엇을 빌드하시겠습니까?
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed