우리가 Flutter를 선택한 이유

bemypet.clarekang·2020년 3월 10일
1
post-thumbnail

지난 2019년 11월의 마지막 주, 반려동물 컨텐츠 회사 비마이펫에 입사했습니다.
입사 후 개발자로 주어진 첫 과제는 바로 모바일 앱 개발!

![https://velog.velcdn.com/images%2Fbemypet_clare%2Fpost%2F4656ce5d-e4d4-4986-bca6-0d37dfcc60e2%2FScreen%20Shot%202020-02-10%20at%2011.25.05%20AM.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fbemypet_clare%2Fpost%2F4656ce5d-e4d4-4986-bca6-0d37dfcc60e2%2FScreen%20Shot%202020-02-10%20at%2011.25.05%20AM.png)

제가 물론 예전에 XcodeObjective-C로 모바일 앱 개발했던 적이 있긴 한데... 그래도 7여 년을 웹 개발만 해오다가 다시 모바일 앱을 하려고 하니 갑작스럽(?)기는 했습니다.


최근 앱 개발의 트렌드는 어떨까?

가장 최고의 선택은 역시 네이티브 프로그래밍 언어를 통한 개발입니다. 하지만 현재 개발 인력에 비해 작업량이 많은 것은 물론, 저처럼 프로덕션 코드로부터 떠난 지 오래된 개발자에게는 러닝 커브가 생기는 것도 고려해야 했습니다.

먼저 우리 서비스가 필요한 요건을 생각해봤습니다.
우리가 만들 서비스는 1. 지금까지 발행한 컨텐츠를 모아서 보여줄 수 있고, 2. 기존의 사용자를 수용할 수 있어야 하며, 3. 어플리케이션을 통해 새로운 사용자의 정보를 획득할 수 있어야 했습니다.

GPS나 자이로 센서, 디바이스 위젯 등 OS 혹은 디바이스 종속적인 기능이 필요하지 않고, 적은 기술 리소스로 빠르고 최대한 많은 디바이스 대응이 가능한 대안은 단 한 가지, 하이브리드 모바일 어플리케이션이었습니다.


하이브리드 모바일 앱 프레임워크 탐색

하이브리드 모바일 앱 프레임워크, 제가 마지막으로 사용해보던 건 2012년 PhoneGap 정도였는데요.. 빠르게 변하는 프론트엔드의 세계에서 최근엔 어떤 프레임워크가 인기가 많은지 궁금했습니다.

1. React Native (빨간색)

React Native는 웹 개발자에게도 낯설지 않았습니다. 1년 전까지만 해도, 아니 한 3-4개월 전만 해도 저는 React를 가장 열심히 사용했던 웹 개발자였습니다. 따라서 React Native는 가장 러닝 커브가 적고 부담감이 없는 프레임워크로 가장 먼저 떠올랐습니다. 하지만 NodeJS가 모바일 환경에서 정말 잘 작동(working)할지 의문이 들었습니다. 다만 이미 이 생태계가 꽤 확고하게 자리 잡았다는 점, 다양한 서드파티 라이브러리가 지원된다는 점 등은 굉장한 메리트로 느껴졌습니다.

2. Ionic (노란색)

React Native가 React 익스퍼트에게 익숙하다면, Ionic은 AngularJS에 익숙한 사람에게 친근할 것입니다. Ionic 역시 HTML5와 NodeJS를 기반으로 만들어진 프레임워크입니다. 저는 개인적으로 Angular 프로젝트를 진행했다가 너무 MVVM패턴에서 너무 많은 혼란을 겪어서 Angular의 생태계에 쉽게 다시 뛰어들 수 없을 것 같아 과감히(?) 포기했습니다.

3. Flutter (파란색)

Flutter는 위 두 프레임워크에 비하면 아직 아기 같은 프레임워크입니다. Dart라는 다소 낯선 프로그래밍언어로 설계되어있고, 이 Dart 언어는 2018년 가장 배우기 싫은 프로그래밍 언어 1위라는 불명예를 안고 있는 언어였습니다. (심지어 Objective-CCoffeeScript 보다도 높은 순위를 가지고 있습니다.)
이미지 출처:https://www.codementor.io/blog/worst-languages-to-learn-3phycr98zk
다만, Flutter의 성장과 구글의 전폭적인 지지에 힘입어 Dart 역시 최악의 언어라는 평가를 벗어나게 되었습니다. 구글은 자사 서비스인 유튜브와 같은 소셜에서도 꾸준히 관련 컨텐츠를 올려 Flutter 프레임워크의 입지를 굳혀가고 있습니다.

+ PhoneGap은 어디에? 🧐

Google Trends를 보니 2015년쯤에나 제일 핫했습니다. 물론 이때는 React, Angular와 같은 프론트엔드 생태계가 자리 잡지 않은 시기였고, 따라서 앱 개발은 당연하게도 Objective-C를 활용한 네이티브 개발이 가장 활발했습니다.

그래서 우리의 선택은?

제목을 보면 너무 당연하게 예상하시겠지만, Flutter를 통해 개발하기로 했습니다. 프론트엔드 개발은 🔥핫한 프레임워크를 열심히 쫓아가는 게 즐거움이니까요. 물론 트렌디함이 가장 큰 요인은 아니었습니다. 구글의 적극적인 지원과 Firebase와의 연동, 빠르게 급성장하는 Flutter 커뮤니티 등 여러가지 요인을 통해 Flutter를 사용하기로 결정 내렸습니다.

앞으로 Flutter를 사용한 개발소식을 틈틈이 올릴 예정이니 응원과 구독(?) 좋아요(?)는 개발자에게 힘이 됩니다!

profile
비마이펫 개발자 클레어입니다

1개의 댓글

comment-user-thumbnail
2020년 3월 10일

다음 포스트도 기대하겠습니다 😃

답글 달기