사내 Android 개발자 행사, LINE Android Day 후기

LINE Android Day 소개

안녕하세요. LINE Android Day 행사의 진행을 맡았던 문희주, 김준영입니다. 이번 글에선 LINE Android Day에서 발표됐던 주제와 참가자들이 느꼈던 점을 공유하려고 합니다. 

제 1회 Android Day

LINE에서는 LINE Android에 필요한 다양한 개발을 진행하면서 각 개인이 얻은 경험과 지식이 개인에서 끝나지 않고 조직의 역량으로 발전할 수 있도록 많은 노력을 기울이고 있습니다. LINE Android Day는 이런 노력을 문화로 만들기 위한 활동 중 하나로, LINE 내 Android 개발자 간의 교류를 활성화시키기 위해 마련한 행사입니다. 이번 행사는 COVID 19 환경 속에서 더 많은 분들이 안전하면서도 편하게 참여할 수 있도록 온라인 행사로 진행했습니다. 

행사를 위해 화상 회의에 참여한 LINER!

이번 행사에서 발표된 주제는 다음과 같습니다.

  • 자신이 겪은 트러블 슈팅 과정 소개
  • Android 신기술 적용기
  • 개발 환경을 개선하기 위한 팁 소개

행사 취지에 맞게 발표 주제나 내용의 깊이에 별도로 제한을 두지 않아서 많은 분들이 자신의 경험이나 지식을 편하게 공유할 수 있는 자리가 만들어졌습니다. 앞으로 LINE Android Day를 주기적으로 시행할 예정입니다. 향후 더 많은 조직에서 다양한 임직원이 참여하기를 기대하고 있습니다.

 

행사 일정

LINE Android Day는 다음과 같은 일정으로 진행됐습니다.

No.시작 시간발표자주제발표 시간
11:00행사 소개
111:10김종민Clean architecture30분
211:40우동훈Android R changes30분
312:10오철원Android DataStore20분
412:30김남곤Vim plugins : ideaVim, Vimium20분
12:50점심시간(1시간 10분)
514:00김영재OpenGL Basics on Android30분
614:30김성진VIPER for Android Overview.30분
715:00장혁재DEVDAY2020: LINE 앱에 기계 학습 기능을 도입한 경험 공유30분
815:30차영호DEVDAY2020: AppBundle 적용 경험 공유10분
915:40Gradle Enterprise Build Scan20분
16:00쉬는 시간(20분)
1016:20이광제Android unit test20분
1116:40박지현Square Event Fetch Structure20분
1217:00권혜영Coroutine basic: Dispatchers and Structured concurrency20분
1317:20윤현수Finding out what class dependency exists during modularization20분
17:40종료

 

발표 내용 및 소감 

LINE Android Day에서 발표된 각 세션의 내용과 발표자들이 남긴 행사 소감입니다.

  김종민 – Clean architecture & Google architecture guide

  • 모듈화를 진행할 때 적용하기 좋은 클린 아키텍처(Clean architecture)와 Google 아키텍처 가이드 소개
  • Google 아키텍처 가이드를 바탕으로 개인 프로젝트를 진행한 과정과 트러블 슈팅 경험 공유
안녕하세요. Android 클라이언트 개발자 김종민입니다. 저는 이번 발표에서 클린 아키텍처와 Google 아키텍처 가이드에 대해 소개했는데요. 이번 발표 내용이 관심사 분리(Separation of concerns)와 단일 진실 공급원의 원칙(Single source of truth)을 지키며 보다 견고하고 테스트 가능한 모듈을 작성하시는 데 조금이라도 도움이 되셨으면 좋겠습니다.
 우동훈 – Android R changes

  • Android 11에서 개인 정보 보호를 강화하기 위한 변경 및 제한 사항과 새롭게 추가된 API 소개
  • 현재 LINE에서 Android 11과 관련해 진행 중인 사항 공유
안녕하세요. Android 클라이언트 개발자 우동훈입니다. 이번 행사에서 기술적인 내용뿐만 아니라 생산성을 높이거나 근무 환경을 개선하고 싶을 때 팁이 될 수 있는 내용까지 다양한 정보를 들을 수 있어서 좋았습니다. 다음 행사에서는 발표 후 Q&A 시간이 조금 더 확보되면 좋을 것 같습니다.
 오철원 – Android DataStore

  • SharedPreference를 대체할 수 있는 DataStore 소개
  • 데이터 구조를 만들고 기존 데이터를 마이그레이션할 수 있는 방법 공유
안녕하세요. Android 클라이언트 개발자 오철원입니다. 이번 발표는 발표 주제인 DataStore에 대해 조금 더 깊이 있게 공부할 수 있는 기회가 되었을 뿐만 아니라 많은 Android 개발자들과 소통할 수 있었던 뜻깊은 자리였습니다.
 김남곤 – Vim Plugin – ideaVim, Vimium

  • Vim의 플러그인인 IdeaVim과 Vimium에 대한 설명과 커맨드 소개
  • IdeaVim과 Vimium의 단축키를 커스터마이징하는 방법 공유
안녕하세요. Android 클라이언트 개발자 김남곤입니다. 이번 발표를 준비하면서 다시 한번 Vim과 플러그인들에 대해서 공부할 수 있어 좋았습니다. 또한 다른 분들의 발표도 알차고 재밌게 들었습니다. 내년은 물론 그 후에도 이런 행사가 지속적으로 열렸으면 좋겠습니다.
 김영재 – OpenGL Basics on Android

  • OpenGL ES 소개 및 Android에서 OpenGL ES 빌드 환경 구성 방법 소개
  • ‘삼각형 그리기’ 예제를 통해 OpenGL API와 그 활용법 공유
안녕하세요. Android 클라이언트 개발자 김영재입니다. 이런 행사는 대부분 무거운 분위기에 참여 인원도 많아서 부담이 적지 않았는데요. 이번 LINE Android Day는 회사 동료들에게 공유하면서 반대로 도움도 얻을 수 있는 자리라는 생각이 들어 부담감보다는 기대감이 컸습니다. 다음에는 더 많은 분들이 참석해 자리를 빛내주시면 서로에게 더 큰 도움이 될 것이라고 생각합니다.
 김성진 – VIPER for Android Overview

  • Android 환경에서 클린 아키텍처 기반의 VIPER(View Interactor Presenter Entity Router) 소개
  • 역할 구분이 명확하고 유닛 테스트하기 쉬운 구조인 VIPER를 Android에 쉽게 적용하는 방법 소개
안녕하세요. Android 클라이언트 개발자 김성진입니다. 아키텍처는 유행에 따라서 계속 변화하며 종종 한쪽으로 쏠리는 현상도 발생하는데요. ‘세상은 넓고 아키텍처는 많다’라는 생각으로 발표를 준비했습니다. 발표하는 부담은 있었지만, 같이 이야기할 수 있는 시간과 자리가 마련돼 좋았습니다.
 장혁재 – DEVDAY2020: LINE 앱에 기계 학습 기능을 도입한 경험 공유

  • LINE 앱에 여러 기계 학습을 적용했던 과정과 그 과정에서 얻은 교훈 공유
  • 기계 학습을 이용한 비디오 하이라이트 추출 기능 개발 과정 공유
안녕하세요. Android 클라이언트 개발자 장혁재입니다. 저는 같은 내용으로 LINE DEVELOPER DAY 2020에서도 발표했는데요. 비록 화상 회의를 통한 발표였지만 내용을 녹화해서 전달하는 것이 아니라 생생하게 제가 생각한 내용을 직접 전달할 수 있어서 좋았습니다.
 차영호 – DEVDAY2020: AppBundle 적용 경험 공유 / Gradle Enterprise Build Scan

  • DEVDAY2020: Android App Bundle 적용 경험 공유
    • LINE 앱에 Android App Bundle을 도입하면서 변경한 CI(Continuous Integration) 설정
    • Android App Bundle 도입 후 사내 앱 배포 형식 변경
    • Android App Bundle 및 Dynamic Feature와 관련된 Android Gradle 플러그인의 버그 및 수정 사항
  • Gradle Enterprise Build Scan 소개
    • 빌드 로그 수집 시스템인 Gradle Enterprise Build Scan 소개
    • LINE Android 클라이언트 팀의 개발 환경에 맞게 커스터마이징한 부분 공유
안녕하세요. Android 클라이언트 개발자 차영호입니다. 지루한 재택근무의 연속에서 오랜만에 동료분들과 함께 하는 시간을 갖게 되어 즐겁게 준비할 수 있었습니다. 그동안 공유하고픈 정보들이 이것저것 쌓이고 있었는데 이번 기회를 빌려서 부채를 털어낸 듯한 기분입니다.
 이광제 – Android unit test

  • 좋은 유닛 테스트를 작성하기 위한 테스트 고립(test isolation)의 개념과 필요성 공유
  • Android 개발 환경에서 유닛 테스트를 작성하는 데 적합한 라이브러리의 용도와 사용법 공유
안녕하세요. Android 클라이언트 개발자 이광제입니다. 이번 발표를 통해 관심 있는 분야의 정보를 얻을 수 있어 좋았고 자기 계발 욕구를 자극하는 계기가 되었습니다.
또한 발표를 잘 할 수 있을지 걱정이 됐고 발표 중 실수를 하기도 했지만, 조직 내에서 발표 연습을 해 볼 수 있는 좋은 기회가 되었다고 생각합니다.
 박지현 – Square Event Fetch Structure

  • LINE OpenChat의 LINE Square 이벤트 페치(fetch) 구조 소개
  • 기존 LINE 메신저 오퍼레이션과 OpenChat의 Square 이벤트 페치 차이점 및 특징 공유
안녕하세요. Android 클라이언트 개발자 박지현입니다. 이번 발표를 준비하면서 어떻게 설명해야 듣는 사람이 쉽게 이해할 수 있을지 고민이 많았지만, 그런 고민을 통해 제 생각을 잘 정리할 수 있어서 좋았습니다. 
 권혜영 – Coroutine basic: Dispatchers and Structured concurrency

  • Kotlin Coroutine의 dispatcher의 종류와 동작 설명
  • Structured concurrency 소개 및 Kotlin Coroutine에서 이 개념을 어떻게 적용하고 있는지 설명
안녕하세요. Android 클라이언트 개발자 권혜영입니다. 이번 발표를 준비하면서 잘못된 정보를 전달하는 상황을 방지하기 위해 이미 알고 있는 부분도 근거 자료를 더 찾고 Coroutine의 코드 레벨까지 살펴보다 보니 저 스스로에게도 많은 학습이 되었습니다. 또한 다양한 주제로 준비하신 다른 분들의 발표도 들을 수 있어서 좋았습니다.
 윤현수 – Finding out what class dependency exists during modularization

  • LINE Android 모듈화 현황 간략 소개
  • 클래스와 패키지 의존성(dependency)을 확인할 수 있는 방법 공유
안녕하세요. Android 클라이언트 개발자 윤현수입니다. 저에게 이번 행사는 발표자 혼자서 이야기하는 시간이 아니었습니다. 좋은 피드백이 있었고 모두가 함께 얻어 갈 수 있는 자리였습니다. 앞으로도 꾸준히 이런 자리가 마련되어 함께 내딛는 한 걸음을 만들어가면 좋겠다고 생각합니다.

 

마치며

바쁜 업무 중에도 수준 높은 내용으로 준비해 주신 발표자분들과 많은 관심을 갖고 참여해 주신 여러 LINER분들 덕분에 걱정 반, 기대 반으로 준비했던 LINE Android Day를 무사히 마칠 수 있었습니다. 이번 행사를 기회로 업무상 접점이 없었던 다양한 개발자분들과 함께 할 수 있어서 정말 좋았습니다. 서로 업무가 다르더라도 ‘나 혼자만 하는 고민’은 분명 없을 것이라고 생각합니다. 그러므로 해결 과정이 쉽고 어렵고를 떠나 본인의 경험과 고민에 대한 결론을 공유하는 것만으로도 누군가에게 도움이 되리라고 생각합니다. 

처음 진행해 본 행사라 부족한 부분이 많았지만, 본 행사가 앞으로 더 많은 분들의 다양한 이야기가 자유롭게 공유되는 LINE 클라이언트 개발 팀의 하나의 문화로 자리 잡았으면 하는 바람입니다. 이상으로 LINE Android Day 후기를 마치겠습니다. 감사합니다. (웃음)