본문 바로가기
Android

드로이드 나이츠(Droid Knights) 2019 참관 후기

by 코푸보이 2019. 4. 8.
반응형

2019년 4월 5일 금요일에 열렸던 드로이드 나이츠(Droid Knights) 2019 (https://droidknights.github.io/2019/) 의 개인적인 참관 후기 공유 드립니다. Droid Knights 는 특정 회사 주관으로 진행되는 개발 컨퍼런스가 아닌, 안드로이드 개발자들이 자발적으로 진행 및 추진한 컨퍼런스로 국내에 몇 안되는 유료 안드로이드 개발자 컨퍼런스 입니다.

 

2017년에 국내에서 처음 열린 컨퍼런스이고, 행사의 많은 부분이, 이름을 비롯하여, 일본의 세계적인 안드로이드 개발자 컨퍼런스인 Droid Kaigi (https://droidkaigi.jp/2019/en/) 와 닮았습니다. 아직 규모 면에서 드로이드 나이츠(Droid Knights) 와 Droid Kaigi 가 비교할 정도는 아니지만, 드로이드 나이츠(Droid Knights) 도 행사 규모가 점점 커지고 있어 후년, 내후년 행사도 많이 기대가 됩니다.

Summary

전 개인적으로 정보 제공이 목적인 책이나 글의 구성이 두괄식 인 것을 좋아합니다. 내가 뭘 읽을지 미리 알고 글을 읽는 것이 더 수월하기 때문 입니다. 이에 제가 작성한 후기도 두괄식 구성으로, 제 느낀점과 행사에 대한 3줄 요약을 먼저하기로 하겠습니다.

 

먼저 느낀 점 입니다.

 

저는 모바일 단말 제조사에 있다보니 아무래도 앱 개발 시에 단말 그 자체를 신경을 많이 쓸 수 밖에 없고, 저희 제조사만 신경 쓰는 개발을 하게 될 수 밖에 없었습니다. 다시 말해 시스템 앱 개발이 주 업무이다 보니, 제가 사용하는 기술과 외부에서 사용하는 기술의 차이를 느끼게 되었습니다. 무엇이 더 우월하다 좋다가 아니라 말 그대로 다름을 느끼고 왔습니다. 

 

그리고 확실히 구글에서 미는 기술 그리고 최신 기술에 대한 관심이 매우 높았습니다. 아마 그런 관심이 높은 사람들이 오는 컨퍼런스이기에 그런 면도 있겠지만, 다양한 채널에서 다양한 기술에 대해서 빠르게 접하고 빠르게 각자의 서비스에 적용하려는 노력이 많이 보였습니다.

 

아키텍쳐 적인 면에서도 MVP 정도만 다들 사용할 줄 알았는데 MVVM 은 물론 나아가 MVI, Redux 등을 이야기하는 것에 전 개인적으로 놀라웠습니다.

 

결론적으로 최신 기술 트랜드가 어떤 부분에 있는지에 대해서 잘 알 수 있었던 기회였고 즐거운 경험 이였습니다. 바로 세줄 요약 들어가겠습니다.

  • 안드로이드 최신 기술 트랜드에 대해서 알 수 있는 좋은 컨퍼런스로, 추후 오피셜 유튜브 채널에 컨퍼런스 영상 올라온다고 하니 유튜브에 영상이 올라왔으니 시청 하시는 것을 권장 드립니다. (링크는 글 제일 하단에!)
  • 5만원 돈 값 합니다.
  • 이직하시고 싶으시면 코틀린 + RxJava + 아키텍쳐 패턴 하나(MVP, MVVM) 하세요.

Goods

컨퍼런스 장소에 입장 시 티켓 확인 후 다양한 굿즈를 나눠주었습니다. 제가 받은 굿즈들은 다양한 스티커들과 사진에는 없는 물 한병, 그리고 입기만 하면 5살 제 딸도 '아~! 개발자 구나' 라는 생각을 들게 할 티셔츠, 그리고 이슈를 풀때나 쪼임이 들어올 때 마다 한번씩 부쳐주면 심신의 위안을 얻을 수 있을 만한 부채 입니다.

Facilities

등록을 마친 후 이동하게 되면 사진과 같이 스폰서 업체들의 부스들이 마련되어 있었습니다.

스폰서 부스 외에도 사진에서 보이는 공간과 같이 강연자 외 행사 참여자들끼리 서로 간의 코드 리뷰를 하거나, 자신의 경험담을 공유하는 라이트닝 토크, Flutter 에 대해서 배워볼 수 있는 코드 랩, 그리고 퀴즈를 풀어볼 수 있는 실시간 퀴즈 쇼 등 세션 외 행사들이 진행되는 공간이 있었습니다.

Sessions

아침 10시 부터 시간대 별로 총 3개의 트랙으로 운영 되었습니다. 저는 시간대 별로 각각

  • Master of Android Theme
  • MotionLayout 무릎까지 담궈보기
  • 안드로이드 아키텍쳐 총정리
  • 안드로이드 윈도우 마스터 되기
  • SVC 패턴으로 앱 쉽게 만들기
  • Tensorflow Lite 부터 ML Kit, Mobile GPU 활용 까지

이렇게 총 6개의 세션에 참여 하였습니다. 첫 시간 대인 10시 세션은 지각으로... (;ㅅ;) 그리고 13시 세션의 경우 운영진과의 미스 커뮤니케이션(이라고 쓰고, 밥 시간 착각이라고 읽는다... ;ㅅ;) 으로 참여 하지 못 했습니다.

 

후기를 작성하는 지금(2019/4/7) 기준, 아직 드로이드 나이츠(Droid Knights) 2019 강의와 강의 관련 자료가 공유된 곳이 없어서 발표자가 강연 중 언급한 자료나 링크 혹은 구글에 연관 검색되는 자료와 함께 제 후기를 공유 드립니다.

Master of Android Theme

강좌자료 : https://speakerdeck.com/konifar/master-of-android-theme

 

Master of Android Theme

https://droidkaigi.jp/2019/timetable/70938

speakerdeck.com

강의영상 : https://www.youtube.com/watch?v=u9AGHrSGMLs&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=17

GitHub : https://github.com/konifar/master-of-android-theme

 

konifar/master-of-android-theme

Practical demo app to master Android Theme for DroidKaigi 2019 - konifar/master-of-android-theme

github.com

 

일본인 개발자분의 영문 발표 세션이였고, Android Theme 에 대한 전반적인 Overview 형식의 강연이였습니다. 전반적인 Theme 에 대한 설명과 더불어 Theme attributes 각각에 대해서 어떤 attribute 이고 어떨 때 사용하면 좋은지 등에 대한 이야기를 공유해 주었습니다.

 

강의 내용에 대해서 구글링을 해보니 Droid Kaigi 에서 한 차례 발표했던 내용이였고, 드로이드 나이츠(Droid Knights) 에서 발표한 내용과 동일한 내용이였습니다. 링크의 유튜브 강좌 영상을 한번 보셔도 좋을 것 같습니다.

 

발표 마지막에는 Droid Kaigi 스티커도 발표자 분이 나눠주셔서 낼름 받아오기도 했습니다. :-)

MotionLayout 무릎까지 담궈보기

강의영상 : https://www.youtube.com/watch?v=hUOsbN23sJY&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=18

 

전 이 강좌 발표자 분 때문에 드로이드 나이츠(Droid Knights) 에 대해서 알게 되었습니다. 프로 눈팅러의 역할을 가지고 GDG 슬랙과 이상한 모임 슬랙에 참여하고 있는데, 해당 슬랙에서 이 강좌의 발표자 분이 드로이드 나이츠(Droid Knights) 에 대해서 홍보 해 이 행사를 처음 접하게 되었습니다.

 

MotionLayout 에 대해서도 마찮가지로 이번에 처음 알게 되었습니다. 발표된지 그리 오래되지 않은 아직 따끈 따끈한 친구로 실제 세상에 알려진건 지난 2018년 Google I/O 에서 입니다. Android Animation 을 사용자 Interaction 에 따라 더 유연하고 (상대적으로) 간단하게 작성할 수 있게 도와주는 애니메이터 입니다.

 

꼭 사용자 Interaction 이 있어야 하는 것은 물론 아니지만, 쓰임새로 보았을 때나 구현 방식으로 보았을 때 사용자와의 UI 적인 소통에 있어 많은 도움을 줄 수 있어 보입니다.

 

링크의 강의 영상의 경우 소리가 나지 않는데, 추후 드로이드 나이츠(Droid Knights) 2019 오피셜 유튜브 페이지에서 올라오는 영상으로 발표 내용 더 자세히 확인 하실 수 있을 것 같습니다.

 

발표 자료의 퀄리티도 높고, 발표자 분의 주제에 대한 이해도도 높은 듯 하여 매우 만족스러웠던 발표 중 하나 입니다. (물론, 모든 발표들이 훌륭하고 만족 스러웠습니다. :-D)

안드로이드 아키텍쳐 총정리

강의영상 : https://www.youtube.com/watch?v=0LL7FCWTxoo&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=5

MVP, MVVM, MVI, Redux, Flux 등 다양한 아키텍쳐에 대한 이야기를 한 발표 였습니다. 일단 발표 대상이 각각의 아키텍쳐 패턴이 무엇인지 알고 있다고 가정하고 발표 하는 강의라 이해하는데 약간 난이도는 있는 발표 였습니다.

 

MVP 나 MVVM 은 어느 정도 익숙한 주제였고, MVI 까지는 그래도 이름이라도 들어는 보았는데 Redux 나 Flux 에 대해서는 이번 발표에서 처음 들어 보게 되었습니다. 각각의 패턴을 짧은 후기 글에서 무엇이다 언급하기에는 무리지만 발표에 대한 이해도에 도움을 드리고자 가볍게 훑고만 지나가 보도록 하겠습니다.

 

MVP 나 MVVM 과 같은 아키텍쳐가 공통적인 주제 중 하나는 M 과 V 의 방향성, 의존성(Dependency) 를 어떻게 관리하냐 입니다. MVP 는 M과 V 사이에는 의존성이 없지만 프로젝트가 커질 수록 V-P 간의 읜존성이 강해지고 P가 비대해지기도 합니다. MVVM 은 MVP 처럼 M과 V 사이의 의존성이 없고 V 와 VM 의 연결 고리도 Data Binding 등을 통해 줄일 수 (없앨 수) 있습니다. 하지만 ViewModel 에 대한 설계가 쉽지 않다는 단점도 있습니다.

 

MVI 는 MVP 나 MVVM 과 다르게 M과 V와 I 의 방향성이 단 방향(Uni-directional) 합니다. 따라서 데이터의 흐름에 대한 예측이 가능해서 상대적으로 유지보수가 용이한 아키텍쳐 라고 합니다. 단점이라면 MVI 는 RxJava 와 같이 Reactive 스러운 라이브러리가 필수적으로 필요하다고 합니다.

 

이러한 개념을 가지고 강좌를 들으시면 전반적으로 아키텍쳐를 훑는데 도움이 되는 강좌였다고 생각 합니다.

 

여담으로 저희 팀에서는 MVVM 을 기본 아키텍쳐로 하고 있고, Observable 한 동작을 위해 LiveData를 많이 이용하고 있습니다. 그런데 발표자의 경우 LiveData로 이러한 동작을 일일히 처리하는 것을 '굉장히' 비추한다고 해서 혼자서 조금 민망 했었습니다. :-)

 

제한된 시간내에 최대한 많은 정보를 제공해 주었던 발표로 한번 더 듣고 싶은 발표기도 합니다.

안드로이드 윈도우 마스터 되기

강의 영상 : https://www.youtube.com/watch?v=q6ZC4E4lAM8&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=20

세션 중에 몇몇 세션을 보면 제목 옆에 조그맣게 'For beginners' 태그가 붙은 세션들이 있었습니다. 해당 세션들은 태그에 맞게 세션 내용에 한해 초보 인 분들이 들으면 더 좋은 발표라는 표시로 보였습니다.

 

초보를 대상으로 하는 강의라고 해서 단순히 더 쉽다거나 발표 내용이 다른 발표에 비해 부실하다는 것이 아니라 오히려 더 자세한 설명으로 듣기에 편하고 수월 했습니다.

 

윈도우에 대한 이번 강의도 제목(마스터 되기)과 태그(For beginners) 의 괴리감이 느껴짐과 동시에 다른 강의에 비해 조금 더 Practical 하고 현업에 가깝다는 느낌이 들었습니다.

 

현업에서 앱 개발자가 느낄 수 있는 사례와 문제를 예로 들며 안드로이드 윈도우 attributes 들을 어떻게 설정하여 해당 문제를 해결해 나가는지 차근 차근 설명해 주어서 복습의 의미에서 매우 좋았던 강의 였습니다.

 

제게 있어, 오피셜 유투브 페이지에 영상이 올라온다면 가장 먼저 다시 듣게 될 발표 였습니다.

SVC 패턴으로 앱 쉽게 만들기

GitHub : https://github.com/naver/svc

 

naver/svc

Easy and intuitive pattern for Android. Contribute to naver/svc development by creating an account on GitHub.

github.com

강의영상 : https://www.youtube.com/watch?v=_-yZPjf9HLo&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=15&t=0s

저는 처음에 SVC 패턴이라고 해서 Google 에서 새로 발표한 또 다른 아키텍쳐의 이름이라고 생각하고 들어갔었는데, Google 이 아닌 Naver 에서 MVP, MVVM 의 대용으로 개발한 별도의 아키텍쳐의 이름이였습니다.

 

SVC 패턴을 이용해서 Lotto 번호 추출 앱을 만드는 과정에 대해서 설명해 주는 발표 였으나 좋은 내용을 모두 담기에는 발표 시간이 조금 부족한 느낌이였습니다. (더 듣고 싶었습니다 흙흙 ㅠㅠ) 개인적으로 한번쯤은 생각해 봐도 괜찮은 패턴이라는 생각이 들었습니다.

 

안드로이드에서 Activity 와 Fragment 가 하는 일이 많으니, Activity 와 Fragment 가 하는 일을 줄여주는 것이 SVC 패턴의 첫번째 목적 입니다. 이에 Screen 과 View 를 별도로 분리하고 ControllTower 를 두어 스펙에 맞게 ControllTower 를 각각 정의하여 이를 S와 V에 연동시키는 것이 특징 이였습니다.

 

예가 되는 코드나 문서는 GitHub 링크에서 찾아보실 수 있으니, 추후 공개될 발표 영상과 함께 깃헙 페이지를 보시면 좋을 것 같습니다. 페이지도 그렇고 예제도 그렇고 문서화가 잘 되어 있어 보기 좋았습니다.

Tensorflow Lite 부터 ML Kit, Mobile GPU 활용 까지

강의영상 : https://www.youtube.com/watch?v=TrpoKUNLsrw&list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2&index=22

가장 많은 관심을 가지고 보았던 발표 였습니다. 개인적으로 제일 좋아하는 주제이고, 써보고 싶었던 Tensorflow Lite 에 대한 이야기라 재미있게 들었습니다. 간단한 Toy 프로젝트를 가지고 안드로이드 앱 개발자가 Research Engineer 와 어떻게 협업하는지와 TF 기반 Keras 로 모델링 된 .tflite 파일을 이용해 앱에서 추론하는 전체적인 과정에 대해서 오버뷰 하는 방식으로 강의가 진행 되었습니다.

 

발표 내용이 딥러닝에 촛점이 맞춰져 있다기 보다는 이미 생성된 .tflite 를 어떤 식으로 활용하냐에 촛점이 맞춰져 있어서 딥러닝을 모르는 사람이 들어도 무리가 없는 강의 였습니다.

 

개인적인 생각으로 이제 딥러닝이나 머신러닝과 같은 AI도 기술적으로 점점 데이터 베이스화 되어 가는 것 같습니다. 다시 말해, 우리가 DB 스키마나 데이터베이스에 대한 깊은 지식이 없더라도 DB 를 사용하는 것이 보편화 되었듯이 이제 앞으로는 딥러닝/머신러닝 지식이 없더라도 잘 짜여진 API 와 라이브러리로 앱이나 서비스에 AI 를 손 쉽게 붙일 수 있게 된 시대가 온 것 같습니다.

 

다만, 그렇다고 하더라도 DB 에 대한 이해가 높을 수록 더 좋은 스키마를 짜고, 더 효율적인 쿼리를 전달 할 수 있듯이 AI 기술에 대한 이해는 Research Engineer 뿐만 아니라 SW Engineer 에게도 꼭 필요하다는 생각을 했습니다. (딥러닝 머겅, 두번 머겅)

ETC

발표장 한쪽에는 위와 같이 개발 관련 설문조사가 이뤄지는 코너도 있었습니다. 행사가 어느 정도 끝날 시점에 결과를 보기 위해 사진을 찍었는데 각 질문과 질문 별 1위 항목은 다음과 같습니다.

  • 당신이 사용하는 기술은? Reactive X
  • 현재 사용하는 메인 언어는? Java+Kotlin
  • 테스트 코드 어디까지 작성하나요? Unit Test만
  • 사용 중인 앱 아키택쳐? MVVM
  • DI 는 무엇으로? Dagger2
  • 사용하는 Jetpack? Android X
  • minSdkVersion? 16,17,18
  • 사용하는 AAC? ViewModel, Data binding 비슷
  • 사용하는 로컬데이터베이스? Room, Realm 비슷

Relevant Links

드로이드 나이츠(Droid Knights) 2019 유투브 재생목록 https://www.youtube.com/playlist?list=PLu8dnNjU2FmuGAGjExmVqsEnPuL-8alT2

드로이드 나이츠(Droid Knights)2019 공식 홈페이지 https://droidknights.github.io/2019/

드로이드 나이츠(Droid Knights) 2019 GitHub https://github.com/droidknights

반응형

'Android' 카테고리의 다른 글

Android 개발 : 파일 파티션 및 파일 시스템 (1)  (0) 2017.03.06
모토로라-아트릭스  (0) 2011.02.09