안녕하세요. LINE 클라이언트 개발자 신윤권, 김윤재입니다. 저희는 지난 10월 27일과 28일, 양일간 LINE Platform Engineering 1 센터에서 사내 기술 공유 행사로 개최한 'LINE Client Day 2021'를 진행했습니다. 먼저 행사에서 다양한 주제를 공유해 주신 발표자분들과 행사에 참여해 주신 분들께 다시 한 번 진심으로 감사드립니다. 이번 글에선 LINE Client Day 2021 행사에서 발표됐던 주제와 참가자들의 소감, 그리고 사내 행사를 진행하면서 저희가 느꼈던 점을 공유하겠습니다.
LINE Client Day 소개
'새로 알게 된 지식을 옆자리 동료도 알게 하라'라는 말로 LINE의 기술 공유 문화를 적절히 표현할 수 있을 것 같습니다. LINE의 많은 개발자는 열심히 연구하며 자신의 지식을 꾸준히 넓혀 나가고 있고, 그 과정에서 알게 된 새로운 지식을 수시로 주변 동료들과 공유합니다. LINE에서는 흔히 볼 수 있는 일인데요. 이 정도로는 부족했나 봅니다. 자신의 연구 결과를 더 많은 동료에게 더욱 자세하게 공유하고 싶은 LINE 개발자들의 니즈가 점점 늘어났습니다. 이런 니즈를 충족하기 위해 2020년에 LINE Android Day를 개최했고, 올해는 iOS 파트까지 합세한 LINE 클라이언트 개발자들 간의 기술 공유 행사, LINE Client Day 2021을 개최했습니다.
LINE Client Day는 개발자들 간에 기술을 공유하며 조직 간 교류를 늘리고 조직 역량을 높이는 것이 주목적입니다. 우선 일부 부서원으로 시작하고 있지만 점차 참여 범위를 확대해서 더욱 큰 개발자 행사이자 문화로 자리 잡고자 합니다. 행사 개최는 앞으로 연 1회 기준으로 상황에 맞게 조정해 나갈 예정입니다.
행사 일정
1일차(Android)
No.
시작 시간
발표자
주제
발표 시간
-
14:00
오프닝
15분
1
14:15
우동훈
What's new in Android S
15분
2
14:30
차영호
AppBundle Horror Story
20분
3
14:50
김종민
App continuity(=Apps for foldables)
20분
-
15:10
쉬는 시간
20분
4
15:30
이광제
Summarize specification of Work manager
30분
5
16:00
김태호
The experience of migration to RxJava3
10분
6
16:10
문희주
Introduce Android Image Loading Library - Coil
15분
-
16:25
쉬는 시간
20분
7
16:45
장혁재
OpenChat 모듈화에 Clean architecture를 끼얹으면?
15분
8
17:00
김준영
How to support Large screen
20분
9
17:20
윤현수
DevTeam-driven A/B Testing pain points and relief
30분
-
17:50
클로징
10분
2일차(iOS, 공통)
No.
시작 시간
발표자
주제
발표 시간
-
14:00
오프닝
10분
1
14:10
황용선
What's new in iOS 15
10분
2
14:20
고원섭
Searching media messages ( how to do )
15분
3
14:35
심재식
Using MLKit with Toy project
15분
-
14:50
쉬는 시간
20분
4
15:10
이하은
Lights with Clean Swift
15분
5
15:25
안종윤
How to refactor the OBS module
15분
-
15:40
쉬는 시간
10분
6
15:50
박지현
Everything about OpenChat CS
10분
7
16:00
이형동
Toy project : Object detection with TensorFlow Lite
15분
8
16:15
김성진
Kotlin Multiplatform Mobile - Overview
20분
-
16:35
클로징
-
발표 내용 및 소감
1일차
발표자 - 제목
우동훈 - What's new in Android S
발표 사진
발표 내용
Android S에 새롭게 추가된 기능과 변경 사항 설명
발표 소감
안녕하세요. Android 클라이언트 개발자 우동훈입니다. 올해 새로 발표된 Android S에서 변경된 부분과 새로운 기능을 많은 분들에게 소개할 수 있는 자리여서 좋았습니다. 제가 발표한 내용이 LINE Andorid 앱이 새로운 OS에서도 문제없이 동작하도록 준비하는 데 조금이라도 도움이 되었으면 좋겠습니다.
발표자 - 제목
차영호 - AppBundle Horror Story
발표 사진
발표 내용
LINE Android에 AppBundle을 적용한 후 겪었던 여러 가지 이슈와 해결 과정 설명
발표 소감
안녕하세요. Android 클라이언트 개발자 차영호입니다. AppBundle을 적용하며 겪을 수 있는 여러 가지 문제를 분석하고 해결 방법을 공유했습니다. 제가 얻은 지식과 해결 방법을 공유할 수 있었던 뜻깊은 시간이었습니다.
발표자 - 제목
김종민 - App continuity(=Apps for foldables)
발표 사진
발표 내용
App continuity 소개
발표 소감
안녕하세요. Android 클라이언트 개발자 김종민입니다. 이번 발표에서 App Continuity라는 주제로 기존의 앱을 다양한 상태 변화에 유연하게 대응하기 위한 과정을 설명드렸습니다. 제 발표가 변화에 더욱 유연한 앱을 설계하는 데 조금이나마 도움이 되셨으면 좋겠습니다.
발표자 - 제목
이광제 - Summarize specification of Work manager
발표 사진
발표 내용
Android WorkManager 사양 조사
발표 소감
안녕하세요. Android 클라이언트 개발자 이광제입니다. 업무 수행 중 자세히 알게 된 개념을 서로 공유하고 피드백을 주고받을 수 있는 매우 유용한 시간이었습니다. 이번 행사를 준비하며 정리한 자료가 차후 다른 분들께 도움이 되었으면 좋겠습니다.
발표자 - 제목
김태호 - The experience of migration to RxJava3
발표 사진
발표 내용
RxJava3 마이그레이션 경험(문제점)
발표 소감
안녕하세요. Android 클라이언트 개발자 김태호입니다. OpenChat Android의 RxJava2를 RxJava3로 마이그레이션하며 발생했던 문제점들을 포인트만 짧게 5분 정도 공유드렸습니다. 신입 사원으로 입사한 후 많은 분들 앞에서 발표하는 것은 처음이라 긴장과 설렘이 공존한 발표였던 것 같습니다.
안녕하세요. Android 클라이언트 개발자 문희주입니다. 발표를 준비하기 위해 Coil 라이브러리 내부 코드를 분석하고 많은 레퍼런스를 찾아봤습니다. 내부 코드를 분석하며 코드 설계 방법을 엿볼 수 있었고 발표를 준비하며 저의 전달력을 고민할 수 있는 좋은 기회였습니다. 제 발표가 많은 분들에게 생각을 환기할 수 있는 계기로 다가갈 수 있다면 좋겠습니다.
발표자 - 제목
장혁재 - OpenChat 모듈화에 Clean architecture를 끼얹으면?
발표 사진
발표 내용
OpenChat의 모듈화 과정 소개
클린 아키텍처 개념 도입 이유
발표 소감
안녕하세요. Android 클라이언트 개발자 장혁재입니다. OpenChat 기능의 모듈화 과정을 소개하고 그 가운데 클린 아키텍처의 개념을 적용한 사례를 소개했습니다. 현재 팀 멤버들이 모두 모듈화를 완료하기 위해서 열심히 노력하고 있으니 내년 LINE Client Day 혹은 LINE Developer Day에서의 발표를 기대해 주세요.
발표자 - 제목
김준영 - How to support Large screen
발표 사진
발표 내용
우리가 Large Screen을 지원해야 하는 이유
Large Screen의 정확한 기준 소개
LINE Android에서 Large Screen을 지원할 수 있는 방법 소개
발표 소감
안녕하세요. Android 클라이언트 개발자 김준영입니다. 더 넓은 화면에서 다양한 콘텐츠를 보기를 희망하는 사용자가 많아질수록 우리는 그 변화에 유연하게 대처해야 한다고 생각합니다. 이번 LINE Client Day를 준비하면서 기술은 물론 'Why'에 대해서도 많은 생각을 하게 됐고, 조금 더 사용자의 입장을 생각해 볼 수 있었습니다.
발표자 - 제목
윤현수 - DevTeam-driven A/B Testing pain points and relief
발표 사진
발표 내용
개발 팀 주도로 A/B 테스트할 때의 페인 포인트(pain point)와 이를 줄일 수 있는 방법 소개
발표 소감
안녕하세요. Android 클라이언트 개발자 윤현수입니다. 개발 팀 주도로 A/B 테스트를 설계하고 결과를 내는 과정에서 여러 페인 포인트가 있었는데요. 아직 이 길을 걸어가 보지 않은 혹은 걸어가 보고 싶은 동료들에게 어떻게 하면 이런 페인 포인트를 줄일 수 있을지 소개드렸습니다. 저 역시 첫걸음이었던 만큼 아직 부족한 부분들이 있겠지만, 앞으로 제 첫걸음에 동료들의 발걸음이 더해지며 함께 경험과 노하우를 쌓아갈 수 있기를 기대합니다.
2일차
발표자 - 제목
황용선 - What's new in iOS 15
발표 사진
발표 내용
iOS 15에 추가되는 기능
발표 소감
안녕하세요. iOS 클라이언트 개발자 황용선입니다. 첫 발표라 많이 떨리고 긴장해서 그런지 제대로 내용을 전달해 드렸는지 모르겠습니다. 더 많은 내용을 전달드리고 싶었는데 방대한 내용이라 모두 전달드리지 못한 점 죄송스럽게 생각합니다. 앞으로 LINE Client Day가 꾸준히 좋은 행사로 이어지길 바랍니다.
발표자 - 제목
고원섭 - Searching media messages(how to do)
발표 사진
발표 내용
챗룸에서의 미디어 메시지 검색
발표 소감
안녕하세요. iOS 클라이언트 개발자 고원섭입니다. iOS 15에 대응하기 위해 얼리버드 TF에서 알아보았던 미디어 메시지 검색을 이번 LINE Client Day를 통해 많은 분들께 공유할 수 있어서 좋았습니다.
발표자 - 제목
심재식 - Using MLKit with Toy project
발표 사진
발표 내용
MLKit 소개
발표 소감
안녕하세요. iOS 클라이언트 개발자 심재식입니다. 누구든지 독창적인 아이디어만 있다면 MLKit을 이용해서 뛰어난 앱을 만들 수 있습니다. LINE Client Day라는 좋은 시간을 마련해 주셔서 MLKit 샘플과 제가 만든 토이 프로젝트를 소개할 수 있어 좋았습니다.
발표자 - 제목
이하은 - Lights with Clean Swift
발표 사진
발표 내용
클린 아키텍처 개념 소개
Clean Swift 적용 경험 공유
발표 소감
안녕하세요. iOS 클라이언트 개발자 이하은입니다. 새로운 프로젝트를 진행하면서 Clean Swift 디자인 패턴을 적용했던 경험을 공유했습니다. 개발하며 얻은 생각들을 LINE Client Day를 통해 다른 개발자분들과 공유할 수 있어서 좋았습니다. 또한 LINE Client Day에서 다른 개발자분들의 경험을 들을 수 있어서 좋았습니다.
발표자 - 제목
안종윤 - How to refactor the OBS module
발표 사진
발표 내용
네트워킹 모듈 리뉴얼 과정 소개
발표 소감
안녕하세요. iOS 클라이언트 개발자 안종윤입니다. 이번 LINE Client Day에서 새롭게 리뉴얼한 네트워킹 모듈에 대해 공유했습니다. 어떤 생각을 바탕으로 새로운 네트워킹 모듈을 설계했는지와 어떤 방향으로 개선했는지 등 길었던 작업 과정을 정리할 수 있는 기회였던 것 같습니다.
발표자 - 제목
박지현 - Everything about OpenChat CS
발표 사진
발표 내용
CS(customer service) 개념 및 유형과 OpenChat CS 프로세스 소개
OpenChat Android CS 사례 공유
발표 소감
안녕하세요. Android 클라이언트 개발자 박지현입니다. 저는 CS가 무엇이고 어떤 형태로 CS가 들어오며, 오픈챗에서는 어떤 프로세스를 걸쳐 어떤 종류의 CS가 있는지 소개했습니다. 서비스를 하면 CS 업무가 자연스럽게 발생하는데요. 이번 발표를 통해 개발자분들께서 CS 관련 업무를 이해하실 때 조금이라도 도움이 되셨으면 좋겠습니다.
발표자 - 제목
이형동 - Toy project : Object detection with TensorFlow Lite
안녕하세요. Android 클라이언트 개발자 이형동입니다. 더욱 쉬워진 API를 이용해 누구나 TensorFlow를 사용할 수 있고, Open Images Dataset을 이용하면 다양한 포맷의 객체 탐지를 할 수 있다는 것을 알게 되었습니다. 더 많은 분야에 클라이언트 개발을 적용할 수 있다는 가능성을 확인했던 의미 있는 시간이었습니다.
발표자 - 제목
김성진 - Kotlin Multiplatform Mobile - Overview
발표 사진
발표 내용
KMM(Kotlin multiplatform mobile) 오버뷰
발표 소감
안녕하세요. Android 클라이언트 개발자 김성진입니다. 아직은 알파 단계지만 꾸준한 업데이트로 베타를 눈앞에 두고 있는 KMM을 Android와 iOS 개발자분들 앞에서 발표할 수 있는 기회가 마련되어 좋았습니다.
사내 기술 공유 세미나 진행 팁
이번 LINE Client Day는 저희가 처음 준비하는 사내 기술 공유 세미나였는데요. 진행하면서 미리 고려했으면 좋았을 아쉬웠던 점이나 미리 고려해서 다행이었던 점들이 있었습니다. 사내 세미나를 준비하고 있거나 준비하게 되실 분들을 위해 저희가 이번 경험을 통해 얻은 팁을 공유하겠습니다.
Q&A에 대해서 충분히 고민하자
Q&A 진행 여부와 진행한다면 어떤 방식으로 진행할지 명확하게 정해 놓는 것이 좋습니다. 이번 LINE Client Day에서는 Q&A의 틀을 명확히 잡아놓지 않고 참석자들이 자율적으로 질문하며 발표자가 Q&A를 진행하게 했는데요. 이 때문에 발표 중간에 채팅창에 올라온 질문 때문에 발표자의 신경이 분산되는 단점이 있었습니다. 만약 'Zoom Video Webinars'를 사용할 수 있다면 이를 이용해 Q&A를 따로 받을 수 있게 하는 것이 좋을 것 같습니다.
쉬는 시간을 넉넉하게 잡자
이번 LINE Client Day에서는 앞선 발표가 길어질 수 있다는 점을 고려해 쉬는 시간을 20분 정도씩 여유롭게 설정해 두었습니다. 실제로 발표가 예정 시간보다 길어지는 경우도 있었고, Q&A 시간이 추가로 소요되기도 했지만, 쉬는 시간을 여유 있게 잡아둔 덕분에 다음 세션의 시작 시간에 영향을 주지 않아 전체 일정에 영향을 끼치지 않았습니다.
리허설을 꼼꼼하게 하자
행사를 준비하면서 Zoom 녹화가 제대로 되는지, 옵션은 잘 설정되는지 확인하기 위해 리허설을 진행했는데요. 호스트 권한인 사람들끼리만 리허설하고 참여자 권한인 경우를 확인하지 않아 행사 진행에 차질이 발생할 뻔했습니다. 리허설을 진행할 때 참여자 권한인 사람도 함께 하는 것을 추천드립니다.
대본을 작성해 두자
저희는 변수를 최소화하고자 행사 전반에 대해서 미리 대본을 작성했고, 행사 당일에 대본의 소중함을 깊이 느낄 수 있었습니다. 발표 사이의 꾸밈말까지 구체적으로 대본을 작성하니 행사 진행이 훨씬 편했습니다. 만약 작성해 두지 않았거나 대략적으로만 작성했다면 즉흥적인 말들로 행사를 진행하면서 진행에 차질이 발생했을 것이라고 생각합니다.
마치며
김윤재: 이번 LINE Client Day는 LINE Plus에서 진행하는 첫 클라이언트 개발자 세미나인 것으로 알고 있는데요. 뜻깊은 행사의 진행을 맡게 되어 즐거웠습니다. 앞으로 매년 열릴 LINE Client Day가 기대됩니다. 발표를 열심히 준비해서 행사를 빛내주신 17분의 발표자분들께 감사의 말씀을 전하고 싶고, 행사에 참여해 주신 100명 이상의 참여자분들께도 감사드립니다. 신입 개발자로서 클라이언트와 관련된 유익한 내용을 많이 들을 수 있어서 더 좋은 기회였던 것 같습니다.
신윤권: 신입사원으로 입사해서 이제 10개월 정도 되었는데요. LINE Client Day를 진행하면서 다양한 팀원들과 소통해 볼 수 있었고, 유익한 지식도 많이 얻을 수 있어서 너무 값진 경험이었습니다. 이번엔 진행 위원이었지만, 저도 빠르게 성장해서 많은 분들에게 기술을 공유드릴 수 있는 순간이 오기를 기대합니다. 이번에 수고해 주신 발표자분들께 다시 한 번 감사 인사를 드립니다. 다들 수고하셨습니다.