
안녕하세요! 오늘은 2023년 11월 10일 구글 스타트업 캠퍼스에서 진행된 "Flutter Seoul Developer Meetup" 참가 후기를 올리려고 합니다.

세션 테이블은 아래와 같았습니다.

이 중 제가 유심히 들었던 발표 위주로 정리해보도록 할게요. 첫 번째로 nine님의 "'Get Router'에서 'Go Router'로 바뀐 썰 푼다"입니다.

발표자분의 회사에서는 기존 모바일 웹페이지로 연결되던 링크를 모바일 앱으로 연결시켜 달라는 요구가 있으셨다고 합니다. 그런데 기존에 널리 사용되던 NAVIGATION 1.0 방식은 push and pop 방식으로 웹사이트처럼 페이지의 경로가 없었기 때문에 딥링크 적용이 어려웠습니다. 따라서 NAVIGATION 2.0 방식으로 업그레이드하여 특정 경로에 따라 지정된 화면으로 이동하도록 구현을 했다고 합니다. 그러나 웹 사이트에서는 하나의 페이지였던 것이 앱에서는 여러 화면으로 나뉘어 구현된 경우도 있고, 반대로 웹사이트에서는 여러 페이지였던 것이 앱에서는 한 화면으로 통합되어 구현된 부분도 있었기 때문에 이 부분에 주의가 필요하다는 내용이 주를 이루었습니다. 이를 위해서 플러터 개발팀이 만든 GO Router 패키지를 사용하였던 경험에 대해 주로 발표가 이루어졌습니다.

송승현님의 "흥미로운 패키지 파헤쳐보기"입니다. 네트워크에서 이미지를 가져오는 속도를 개선시키기 위해 흔히 사용되는CachedNetworkImage 패키지를 파헤쳐 보았는데요. 평소 잘 모르고 썼던 이미지 캐싱의 원리가 무엇인지, CachedNetworkImage 패키지를 그대로 사용하면서 이미지 로딩 성능을 더 개선시킬 수 있는 방법이 있는지에 대해 더 알아봤습니다. 특히 이미지 프로바이더 등 CachedNetworkImage의 여러 기능을 이용하면 체감하는 이미지 로딩 속도를 더 빠르게 할 수 있고, (이미지가 갱신되는 경우) 캐시되는 이미지의 교체 주기 또한 커스텀할 수 있다는 것을 알게 되었습니다.
제가 다니고 있는 회사에서는 AWS CloudFront 및 Lambda를 이용하여 이미지 리사이징을 통해 이미지 용량을 감소하여 네트워크 이미지의 로딩 속도를 개선했던 경험이 있는데요. 서버가 아닌 클라이언트 단계에서의 이미지 성능 개선도 중요하다고 할 수 있겠습니다.

박제창님이 말씀해주신 "비둘기"라는 제목의 발표였습니다. Flutter를 사용하면서 안드로이드에만 기능할 수 있는 부분, iOS에만 기능할 수 있는 부분 등 기능이 실현되기 위해서는 체제마다 다른 부분들이 있습니다. Pigeon은 Flutter와 호스트 플랫폼 간의 통신을 유형별로 안전하고, 쉽고, 빠르게 만들어주는 코드 생성 툴입니다. Pigeon을 사용하면 여러 플랫폼과 언어에 걸쳐 Strings를 관리할 필요가 없습니다. 또한 일반적인 메소드 채널 패턴에 비해 효율성이 향상되며, 무엇보다 Pigeon이 플랫폼 채널 코드를 자동으로 생성하기 때문에 사용자 지정 플랫폼 채널 코드를 작성할 필요가 없다는 것이 큰 장점으로 꼽힙니다. 특히 Pigeon을 써서 iOS나 안드로이드 코드로 쉽게 변환할 수 있다는 점이 개발자들에겐 큰 사용요인이 되기도 합니다.
특히 이 부분은 제 책 부록 92P에서도 읽으실 수 있습니다. B.2 메서드 채널 파트를 보시면 메서드 채널이 플러터와 iOS(네이티브), 플러터와 안드로이드(네이티브) 간 소통을 하는 방식이라고 서술을 해 두었었는데요, 플러터 공식문서에서 소개하고 있는 메서드 채널의 짧은 예제등은 책에서 확인하시면 좋을 것 같습니다!


이외에도 양수장님의 발표가 있었습니다. 플러터는 안드로이드뿐만 아니라 iOS 등 다양한 영역에서 역량을 발휘할 수 있기에 아직 미래가치가 높다고 말씀하셨습니다. 생태계나 채용시장을 봐도 개발자 사이클도 아직 다 돌지 않을 정도로 개발자 시장에서는 블루오션에 해당하며 플러터 시장에 있는 개발자들에게 큰 힘과 용기를(ㅎㅎ) 주셨습니다.

Flutter Seoul Developer Meetup 후기였습니다. 감사합니다!
