ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컨퍼런스/안드로이드] 드로이드 나이츠 2018
    개발/컨퍼런스 2018. 4. 29. 18:51
    반응형

     4월 22일 KOEX 컨퍼런스룸에서 드로이드 나이츠가 개최되었습니다. 작년에는 개최되었다는 소식을 나중에 들어서 참석을 못했는데 이번에는 늦지않게 신청할 수 있었습니다. 작년과 달라진점은 우선 무료였던 참가비가 올해는 생겼다는것과 주제가 많아지면서 2 Track으로 진행된다는 점이었습니다.


     컨퍼런스에 대한 정보는 페이스 북과 Github Page를 통해서 습득할 수 있으므로 북마크를 해놓도록 합시다

    페이스북 : https://www.facebook.com/droidknights/

    Github Page : https://droidknights.github.io

    YouTube : https://www.youtube.com/channel/UCjeUnwS8mHhsl600-nFJKmw (DroidKnights Community 검색)


     올해 참가신청할때 얼리버드로 신청하면 약간의 할인이 있었으므로 내년에 신청할때는 참고해 보도록 합시다.



     올해 발표내용이었습니다. 솔직히 내용을 보고 고르기 너무 힘들어서 트랙으로 나누지 않고 2일에 걸쳐서 했으면 어땠을까 했습니다. 고민끝에 이번 컨퍼런스 컨셉은 Kotlin, Architecture, Test, Lib 으로 가지고 다른 주제는 추후 공유될 자료를 공부하는걸로 했습니다.



     첫번째 세션으로 선택한 'Kotlin Sealed Class를 이용한 뷰상태 관리' 입니다. UI를 구현할때 어쩔수 없는 타입과 상태에 따른 분기처리를 enum으로 처리하는것 외에 Kotlin에서 제공하는 Sealed Class를 이용해서 좀 더 유연하게 관리 하는 내용을 발표해주셨습니다. 

     sealed class에 대한 첫인상은 enum 클래스의 상위호환 느낌이었습니다. 

    참고 : https://kotlinlang.org/docs/reference/sealed-classes.html



     두번째 세션으로 선택한 'Next Step Architecture'입니다. 오래된 서비스에서 경험할 수 있는 Architecture에 대한 문제점과 개선에 대한 고민을 발표해 주셨습니다. 발표자 분들이 선택한 Next Architecture는 Google에서 발표한 AAC였습니다. 새로 개발하여 적용하는것이 아닌 기존에 서비스되고 있는 것을 개선해야 했기때문에 고려해야 했던 부분들을 들을수 있었습니다.

     개인적으로는 AAC에서 핵심은 LiveData라고 생각을 했었는데 Lifecycle만 적용했다고 하셔서 어떤 구조로 적용하신것인지 들어보고 싶었는데 해당 부분은 민감한 내용이어서 인지 언급이 없으셔서 아쉬웠습니다.

    참고 : https://developer.android.com/topic/libraries/architecture/



     세번째 세션으로 선택한 'Paging Library, 그것이 쓰고싶다'입니다. UI를 개발함에 있어서 가장 많이 사용되는 UI는 리스트 형이라고 생각됩니다. 아이템의 갯수가 적을때는 전체 갯수를 받아와서 등록하는 미련한 방법을 쓸수 도 있지만 서버에서 받아올때는 속도, 사용자의 데이터사용량, 네트워크 속도 등의 이유로 Paging 처리를 할 수 밖에 없는데 AAC에서 공개한 Paging Library를 이용하여 손쉽게 구현 할 수 있는 방법을 발표해 주셨습니다. 

    참고 : https://developer.android.com/topic/libraries/architecture/paging



     네번째 세션으로 선택한 'Kotlin 코루틴은 어떻게 동작하는가?'입니다. 일반적으로 여러개의 비동기 작업을 하기 위해서 별도의 Thread를 동작시키도 callback을 받아서 다음 비동기 작업을 동작하는 방식인데 Kotlin에 구현된 Coroutine을 이용하여 비동기 작업을 여러개 연결해서 동작시키는 방법에 대해서 발표해 주셨습니다.

     여러개의 초기화 API 등을 callback을 이용하여 연결하지 않는다는 점에서 매우 유용해 보여서 활용도가 높아보였습니다.

    참고 : https://kotlinlang.org/docs/reference/coroutines.html



     다섯번째 세션으로 선택한 'Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발'입니다. 기존에 사용하던 card.io는 양각 카드에서는 정상동작을 하는데 프린트된 카드에서 정상동작 하지 않아서 개선하기 위해 여러가지 방안을 시도했던 내용에 대해서 발표해 주셨습니다.

    참고 : https://www.card.io/

    참고 : https://developers.google.com/vision/


     

     여섯번째 세션으로 선택한 'RxJava 적용 팁과 트러블 슈팅'입니다. RxJava를 적용하면서 발생했던 subscribeOn, observeOn 의 Thread문제와 RxJava를 사용함에 있어서 발생할 수 있는 착오 혹은 실수와 해결법에 대해서 발표해 주셨습니다.

     실제로 RxJava를 사용하고 있어서 관심이 있던 세션이고 Thread관련 내용은 실제로 겪기도 했던 내용이고, 다른 문제에 대해서는 예방하는 차원에서 확인해 볼만 했습니다.

    참고 : https://github.com/ReactiveX/RxJava

    참고 : http://reactivex.io/



     일곱번째 세션으로 선택한 'Android Test'입니다. Unit 테스트와 UI 테스트를 할 수 있는 샘플코드와 실제 적용방법에 대해서 발표를 해주셨습니다. 

     개인적으로는 단순히 테스트 방법을 소개해 주셨다기 보다는 테스트를 쉽게 할 수 있는 구조를 구성하는것이 더 중요하고 테스트는 부가적으로 하는것이라고 설명하신것이 매우 인상깊었습니다.

    참고 : https://developer.android.com/topic/libraries/testing-support-library/



     마지막 세션으로 선택한 'Practical FP in Kotlin'입니다. ViewModel을 이용하고 Lambda를 이용하는게 Functional Programing(FP)이 아니라 그것을 위한 일종의 테크닉일 뿐이고 실제 FP형태로 구현하기 위해 고려해야 할 내용과 고민해봐야 할 내용에 대해서 발표해 주셨습니다.


     세션만 따졌을때 아침 10시 부터 저녁 6시까지 점심시간을 제외하고 대략 7시간 정도의 발표가 이어졌는데 충실한 내용의 발표가 계속되어서 아주 만족스러운 컨퍼런스 였습니다. 실제 현업에서 고민했던 내용을 공유 받기도 하고 미처 생각하지 못했던 좋은 기술에 대해서 공유 받기도 해서 얻은게 많았습니다. 다만 발표의 특성상 코드가 있는 경우가 많아서 바로 기억할 수 있는 내용이 생각보다 적었고 키워드 정도만 기억했고 추후 공개될 발표자료를 이용해 다시 내것으로 정리해볼까 합니다.

    반응형
Designed by Tistory.