플러터(Flutter) 첫 번째 밋업

2019. 9. 7. 19:11Review

9월 4일 삼성동에 있는 Google for startups에서 열린 플러터 첫 번째 밋업을 다녀왔다. 학부 때도 오프라인 행사에 참여할 만큼 어떤 플랫폼 또는 언어에 관심을 가지거나 애정을 쏟는 일이 없었는데, 그동안 인터넷 여기저기 떠도는 자료들을 찾아보면서 '플러터'라는 기술에 대한 호기심과 탐구력이 퍽ㅋ발ㅋ(!) 하면서 다녀오게 됐다. 물론 비개발자이기 때문에 쬐끔 주눅이 들었지만, '내가 이마에 비개발자라고 써 붙이고 다니는 것도 아니고 뭐!' 하는 무대뽀 마인드를 셋하고 입장했다. 

행사 예매는 Festa.io로 이뤄졌고, 내가 플러터 밋업 행사를 발견했을 땐 다행히도 스탠딩 좌석을 오픈하고 있었다. 처음 참가하는 행사라 이 밋업이 규모의 크기나 중요성에 대해서는 인지하기 어려웠지만, 한시간 한시간 지날 수록 스탠딩 좌석도 빠르게 줄어드는 걸 보면서 플러터를 향한 관심은 어느 정도 느낄 수 있었다. 관심도 관심이지만 이러다 티켓 못 구하고 광광 울 거 같아서, 일단 부장님께 조기퇴근 여부를 여쭙고 오케이가 떨어지자마자 바로 체크카드를 언─로꾸!

티켓 결제! 겟ㅡ챠★

 

평소보다 한 삼십분 정도 일찍 퇴근해서 도착한 삼성동. 3번출구에서 5분 정도 걸으면 오토웨이타워가 나오고, Google for startups은 그 건물 지하 2층에 위치한다. Festa.io에 있는 티켓 QR코드를 입구에서 찍으면, 행사 스태프들이 플러터 스티커팩 1세트와 참석자 명패, 동시통역기를 나눠주신다. 동시통역기에서 간지를 느꼈는데, 실제로 외국 개발자들이 참석하는 밋업행사에 동시통역기가 배부되는 건 흔한 일이 아닌지 주변 사람들도 동시통역기 배부가 꽤 놀라운 듯한 반응이셨다. 

장내는 사람이 많지는 않고 자리가 꽤 비어있었다. 다만 나는 스탠딩 티켓을 구매해서 어떻게 해야할지 몰랐는데, 마침 스탠딩 티켓이라도 일단 자리에 착석해주시면 감사하겠다는 공지가 있어 얼른 장내 앞쪽에 자리하고 앉았다. 그리고 단상 앞에 QR코드가 나와있었는데 알고보니 Q&A 시간에 진행할 질문을 모집하는 구글 폼이었다. 보통 이런 걸 손들고 발표하라고 하면 잘 안한다는 특성때문에 일부러 익명 폼을 열어두셨다고 하셨다. 꽤 인상적인 아이디어였다. 그렇게 시작하기 전에 주최 측에서 준비한 피자 두 조각과 콜라 한 컵을 마시고 바로 행사 시작!

입장 시 배부한 명찰, 스티커, 동시통역기와 질문을 위한 익명폼 QR코드
Google의 위엄(!)과 개발자들이 사랑하는 피자

 

Keynote

밋업의 문을 연 키노트는 잠시 후 플러터 앱 개발과 관련된 발표를 해주실 네이버 아폴로 CIC의 조은 님께서 수고해주셨다. 본격적으로 행사를 시작하기 전 이번 밋업의 취지와 참석자들에게 당부하고 싶은 것과 주의사항을 일러주셨다. 개인적으로 모든 사람에게 친절하게 대해 달라는 사항, 특히 새로운 사람에게 친절하게 대해달라는 말은 나같은 비개발자에게 부담이 조금은 덜고 행사에 적극적으로 참여할 수 있는 계기가 되었다.

조은 님의 키노트와 팀 스니스 님, 맷 설리반 님의 플러터 개요 발표

 

Flutter Overview by Googler

키노트가 끝나고, 첫 발표는 (Oh)미국 구글(Oh), 그것도 플러터 프로젝트 팀의 일원이신 팀 스니스(Tim Sneath, Product Manager) 님과 맷 설리반(Matt Sulivan, Developer Advocate) 님이 진행해주셨다. 모든 설명을 잘 이해하지 못했지만, 열심히 필기하며 이해한 것들을 위주로 서술하겠다.

일단 플러터에 관한 간략한 소개가 있었다. 플러터는 아름답게 UI를 구성할 수 있게 해주는 멀티플랫폼으로, 1개의 코드로 모든 하드워드를 지원하며 풍부한 UX가 가능하다고 한다. 또한 이로 인한 성능 저하 또는 타협을 없을거라고 소개했다. 플러터는 다트로 만들어졌는데, 팀 스니스 님과 맷 설리반 님은 다트가 최적의 클라이언트 베이스의 언어가 될 거라고 하면서 이 때문에 이점이 많으며 생산성을 높일 수 있다고 했다. 또한 플러터는 모든 것이 위젯으로 구성된다는 특징이 있어, 기존에 크로스 플랫폼의 강자였던 리액트 네이티브와는 또 다른 개발 경험을 할 수 있다. 

소개와 함께 자연스럽게 화두가 된 것은 웹을 위한 플러터(Flutter for Web)였다. 이건 구글 I/O를 다녀오셨던 분의 블로그로 본 적이 있는데, 실제로 눈 앞에서 플러터 코드로 iOS와 안드로이드는 물론 크롬까지 로드가 되는 걸 보면서 신기했었다. 구동 원리는 Dart를 JS로 컴파일해서 보여준다고 하는데, 이때 웹은 아직 핫리로드가 아니라 핫리스타트라고 한다. 그후에 Q&A 시간때 밝히긴 했지만 웹을 위한 핫리로드도 지원할 예정이고 준비 중이라고 한다.

이외에도 Dart FFI(Foreign Function Interface)라는 것을 소개해주셨지만 이해가 부족해 고개만 열심히 끄덕였다(...)

 

Build the new Kin app that using Flutter

다음은 조은 님의 '지식in 앱 플러터 개발기' 발표로, 개발기를 크게 3단계로 나뉘어서 발표하셨다. 플러터를 채택하게 된 배경과 개발 방법, 마지막으로 플러터로 개발한 소감을 말씀해주셨다. 

조은 님의 팀은 기타 조직보다 빠르고 실험적으로 움직여야 하는 배경을 가지고 있는데, 퀄리티 있는 앱을 빠르게 개발해 시장에 출시해야하지만 개중에는 시장에 출시할 수 없는 상황도 발생한다고 하셨다. 또한 여러가지 커뮤니케이션 단계를 거치시면서 오히려 어렵다고 느끼셨고, 이런 복합적인 상황하에 크로스 플랫폼, 그것도 플러터를 채택하게 되신 큰 이유라고 밝히셨다.

하지만 플러터로 개발하면서도 힘겨운 상황은 계속 됐다. 특히 플러터는 다른 개발 생태계보다 자료가 적기 때문에 참고할만한 자료가 적었고, 대부분의 플러그인의 버전이 0.x인 관계로 안정성에서 어려움을 겪으셨다고 했다. 그래서 간단한 수준의 샘플앱부터 시작하자고 생각했고, 처음은 API 네트워크와 목록, 백엔드를 구현하는 앱을 만드는 것부터 시작해서 언어와 개발 환경을 점검하는 것과 UI 구현방식을 점검하는 것을 살펴보면서 (지금은 말할 수 없는!) 신규 앱을 플러터로 만드셨다고 한다. 베일에 싸인 이 신규 앱은 커스텀 UI의 요구가 많았는데, 디버그 모드에서 대부분의 애니메이션이 정상적으로 동작했다고 한다. 또한 네이티브와 플러터를 적절하게 융합시킬 수 있어서 성능이 중요한 기능은 네이티브로 제작하고, UI가 중요한 부분은 플러터로 만드셨다고 한다.

조은 님이 밝히신 플러터로 앱 개발기에 대한 소회는 굉장히 긍정적이셨다. 특히 개발자 만족도가 높았는데, UI 구현과 State 관리가 재미있었다고 한다. 다만 아쉬웠던 점은 조은 님 입장에서는 가독성이 아쉬웠다고 하셨다. 이뿐만 아니라 플러터 개발과 관련된 팁을 남겨주셨다. 플러터는 Android Studio에 지원을 잘하고 있다고 생각해 Android Studio 사용을 권장하셨으며, 안될 것 같은 건 정말 안되니 재빠르게 네이티브로 갈아타라는 조언(!)도 아끼지 않으셨다. Stack Overflow보다는 공식 문서를 참고하는 게 좋고, 공식 레포에 숨어있는 정보가 많다는 꿀팁도 전수해주셨다.

 

Q&A

마지막으로 Q&A가 진행됐다. 나는 플러터는 접한지 아직 극초반이고 배경지식이 부족해서 발표 내용을 따라잡기 버거웠는데, 다들 다양한 질문을 보내주셔서 발표와는 또 다른 유익한 시간이 되었다. 여러가지 질문 중에서 몇 가지만 간단하게 소개해보겠다. 나는 첫 질문부터 강렬하다고 느꼈는데, 바로 코틀린 네이티브와 플러터의 차이점이었다.  맷 설리반 님과 팀 스니스 님 모두 이 질문에 대답하실로 기억하는데, 결론은 코틀린과 플러터는 시작점부터 다르기 때문에 아예 접근이 다르다고 답하셨다. 아무래도 한국어를 영어를 번역하는 과정이 있어서 그런지, 개인적으로는 질문의 핀트에 약간 벗어난 대답이어서 고개를 갸웃했었던 것 같다. 이외에도 두 분에게는 데스크 탑의 지원이나 웹의 핫리로드 지원 등 앞으로의 계획이나 버그와 관련된 질문이 이어졌었다. 또한 조은 님에게는 실제 개발에서 있었던 일들을 위주로 많은 질문이 있었다.

 

행사 시작 전에 쉬는 시간이 없어 숨가쁜 진행이 될 거라는 말과 다르게 유익하고 흥미로웠던 시간이다. 솔직히 내용이 어려워서 따라가기 힘들다 뿐이었지, 이외에는 모두 매끄러웠고 굉장히 만족스러운 행사였다. 다음 플러터 밋업에도 충분히 참석할 의향이 있고, 만약 다음이 허락된다면 공부를 좀 더 해가야겠다고 다짐하기도 했다. 아, 그리고 이번에는 너무 아날로그스럽게 필기구만 챙겨갔는데 다음에는 꼭 노트북을 가져가야겠다고 생각했다. (뭔가 혼자 열심히 필기하고 있어서 머쓱했다^^;) 아무튼 이렇게 성공적인 행사가 되기까지 안보이는 곳에서 열심히 노력해주신 스태프분들께 감사의 박수를 치는 걸 끝으로 후기는 마무리!