[Flutter] 플러터 서울 월간 커뮤니티 강의 : 2024년 7월호

Cody Yun
Flutter Seoul
Published in
6 min readJul 23, 2024

안녕하세요 플러터 서울의 신입 오거나이저 에이든입니다. 플러터 서울에서는 성수동 튜링의 사과에서 월간 커뮤니티 강의를 시작하게되었습니다. 지난 7월 19일이 월간 커뮤니티 강의의 시작이었습니다. 이번 포스팅에서는 월간 커뮤니티 강의에 대한 배경과 함께 첫 행사에서 어떤 주제를 이야기를 나눴는지 소개하겠습니다.

정기 밋업

분기별로 플러터 관련 밋업이 열리긴 했지만, 플러터의 빠른 발전 속도를 감안할 때 이는 충분하지 않다는 의견이 많았습니다. 비정기적인 밋업의 특성상 개인 일정과 맞지 않아 참가하지 못할 경우 반년 이상의 공백이 생기는 문제가 있습니다. 다양한 곳에서 플러터 개발자들과 이야기를 나눠보면, 다음 밋업 일정을 궁금해하는 분들이 많았습니다. 이러한 상황을 반영하여 정기 밋업의 필요성을 느끼게 되었고, 이에 따라 커뮤니티 강의를 정기적으로 시작하게 되었습니다.

오프라인 밋업

많은 플러터 개발자들이 1–2인 규모의 소규모 프로젝트에 참여하고 있습니다. 플러터를 어떻게 학습했는지 들어보면 온라인 강의나 책을 통해 독학했고, 개발 업무 과정에서 맞닥뜨리는 문제는 온라인의 다양한 커뮤니티를 통해 해결한다는 이야기를 많이 듣게되었습니다. 이러한 환경에서는 개발자들이 고립감을 느끼기 쉽고, 이는 장기적인 성장에 도움이 되지 않는다고 생각했습니다. 그래서 정기 밋업을 오프라인으로 진행하기로 결정했습니다. 마침 공간을 고민하던 중 성수동에 위치한 ‘튜링의 사과’라는 공간을 알게 되었고, 블로그를 통해 플러터 서울에 대한 소개와 함께 커피챗을 요청해 튜링의 사과를 운영하는 북잼의 조한열 대표님을 만나게 되었습니다. 이렇게 해서 튜링의 사과 X 플러터 서울의 월간 커뮤니티 강의가 시작되었습니다.

쉬운 준비, 어려운 주제

분기별 1회 열리는 플러터 서울 밋업은 오거나이저의 많은 노력이 들어갑니다. 날짜 선정, 장소 섭외, 발표 주제 선정, 발표 자료 준비, 굿즈 준비, 행사 참가자 모집, 행사 관리와 운영까지 모든 과정을 회사 개발 업무와 병행하며 준비합니다. 이러한 이유로 밋업을 더 자주 열기는 어려운 것이 현실입니다. 그러나 준비가 쉬워 진다면 밋업을 더 자주 열 수 있지 않을까요? 튜링의 사과의 지원으로 밋업 준비가 쉬워졌습니다. 이 포스팅을 빌어 감사의 인사를 드립니다.

밋업 준비가 들이는 노력은 없지만 발표자는 더 어려운 주제를 다뤄 밋업 참가자는 물론 발표자와 플러터 서울 오거나이저 모두가 만족할 수 있는 자리를 마련하고 싶었습니다.

모바일 네이티브 플랫폼

다수의 플러터 채용 공고에 모바일 네이티브 경력을 포함하고 있습니다. 플러터가 비교적 최근에 등장한 기술임에도 불구하고, 7–8년 이상의 경력을 요구하는 공고하는 경우도 있는데, 결국 플러터를 사용해 모바일 플랫폼에서 서비스를 제공하려면 모바일 네이티브 기술이 필수적이기 때문입니다.

플러터는 다양한 도구 중에서도 비교적 사용이 쉬운 도구입니다. pub.dev의 다양한 패키지를 사용하면 네이티브 기능도 손쉽게 구현할 수 있습니다. 그러나 사용하던 패키지에 문제가 생기거나 필요한 네이티브 기능을 제공하는 패키지가 없을 경우 어려움을 겪게 됩니다. 이런 상황을 대비해 플러터 개발에 익숙해진 후 모바일 네이티브 플랫폼에 대해 학습하는 것이 필요합니다. 하지만 Android나 iOS 두 플랫폼 모두 오랜 기간에 걸쳐 고도화된 기술을 갖추고 있어 일반적인 학습 방법으로는 많은 시간이 필요합니다. 따라서 플러터 개발자가 접근할 수 있는 모바일 네이티브 기술부터 시작하면 조금 더 쉽게, 그리고 재미있게 지식을 쌓을 수 있을 것입니다. 이에 네이티브 앱에 플러터를 통합하는 Add-to-App과 흔히 사용하는 Permission에 대한 내용을 준비했습니다.

Add-to-App

플러터 서울의 신입 오거나이저인 에이든님이 발표했습니다. Android와 iOS 기본 프로젝트 구조를 살펴보며, 각각의 네이티브 플랫폼에서 선언형 UI인 Jetpack Compose와 SwiftUI를 활용해 카운터 앱을 만들어 봅니다. 이를 통해 네이티브에 대한 기본 지식을 쌓고, 플러터 모듈 프로젝트를 생성하여 UI와 로직을 구현한 후 두 네이티브 플랫폼에 적용시키는 방법도 자세히 설명합니다.

📃 프리젠테이션
https://docs.google.com/presentation/d/19jOXZFqcErrT8t3cHYA6ffKvQW-cANfG9XcrTTjCzz0/edit?usp=sharing

🧑‍💻 코드
https://github.com/flutter-korea/flutter-add-to-app

Permission

플러터 서울의 리드오거나이저인 승현님이 발표해주셨습니다. 플러터에서 permission_handler를 통해 권한 처리를 하곤 합니다. Android와 iOS 네이티브 환경에서 권한이 어떻게 동작하는지 살펴보고, 권한의 종류별로 처리 방식이 달라지는 이유에 대해 설명합니다. 이를 통해 네이티브 권한 관리의 기본 원리를 이해할 수 있습니다.

📃프리젠테이션https://docs.google.com/presentation/d/116YXwANf2QBd3QWbWMUBAGT9uh238RyAB8XBd08Utig/edit?usp=sharing

정리하기

플러터라는 기술이 무르 익음에 따라 플러터 커뮤니티의 발전을 위해 이제는 초급이 아닌 중급 이상의 내용을 다루는 밋업이 필요하다 생각했습니다. 다음 시간에는 ‘애니메이션과 렌더링’이라는 주제로 진행될 예정입니다. 이후에도 함수형 프로그래밍, 객체지향, 테스트, 아키텍처, 최적화, CI/CD 등 다양한 주제가 준비되어 있으니 많은 관심 부탁드립니다.

--

--

Cody Yun
Flutter Seoul

I wanna be a full stack software engineer at the side of user-facing application.