본문 바로가기
MJU Session (22-23)

[Session] Flutter만 배워도 개발자가 될 수 있을까? / 김초원

by 김초니 2023. 1. 29.

작성자: 김초원


1. Flutter가 뭔데요?

 Flutter는 크로스플랫폼 앱 개발을 도와주는 프레임워크입니다. Flutter로 개발한 앱이 iOS와 안드로이드 두 개의 플랫폼에서 실행될 수 있다는 건데요. 2018년에 Google이 Dart라는 언어를 기반으로 개발 및 출시하여, 크로스플랫폼 앱 개발에 큰 영향을 끼친 프레임워크라고 볼 수 있습니다. 

 이전까지 가장 널리 쓰이던 React-Native와 달리, 코드를 네이티브 CPU 머신 코드로 컴파일한다는 점, 렌더링 엔진 Skia를 통해 UI를 직접 렌더링한다는 점은 Flutter의 우수한 성능을 뒷받침 해줍니다. 또한, Flutter 전용의 테마 디자인 라이브러리를 적용하거나 커스텀하여 UI의 다양성을 가진다는 장점도 있습니다. Flutter는 Native 못지 않은 성능과 훌륭한 UI 디자인 라이브러리를 가지기 때문에 크로스플랫폼 개발에서  점점 더 많은 선택을 받고 있습니다. 

이런 강력한 장점과 높은 관심도를 보고 든 '그럼 Flutter만 배우면 개발자로 취업할 수 있는건가?'라는 의문을 풀고자 Flutter와 다른 개발 기술을 비교해보고, Flutter 개발자의 전망은 어떻게 될 지 생각해보고자 합니다.

 

2. 굳이 Flutter를 써야 하나요?

2-1. Flutter vs React-Native

구글 트렌드로 확인한 Flutter와 React-Native의 관심도 비교

 구글 트렌드를 통해 확인된 것처럼 Flutter가 React-Native보다 더 큰 주목을 받고 있습니다. 비교를 위해 Flutter와 React-Native의 장단점을 요약하자면 아래와 같습니다.

- Flutter -

[ 장점 ]

- 여러 플랫폼에서의 구동 가능
- 우수한 성능
- 우수한 디자인 라이브러리 포함
- Flutter 개발 인원과 Dart 개발 인원이 모두 구글에 속함
[ 단점 ]

- 사용 언어인 Dart의 생소함
- 레퍼런스의 부족
- OS에서 제공하는 API 사용의 한계
- 고사양 성능 구현의 한계

- React-Native -

[ 장점 ]

- 여러 플랫폼에서의 구동 가능
- 익숙한 JavasScript 언어를 기반으로 함
- 레퍼런스가 많음
- React와 연동이 용이
[ 단점 ]

- 사용 언어인 Dart의 생소함
- 레퍼런스의 부족
- OS에서 제공하는 API 사용의 한계
- 고사양 성능 구현의 한계

 

 Flutter와 React-Native 모두 크로스 플랫폼 개발을 위한 프레임워크이기 때문에 장단점의 결이 비슷합니다. 그러나 그 중에서도 주요한 점은 Flutter는 기반 언어 개발자와 프레임워크 개발자가 같은 소속이라는 것입니다. 이 점은 프레임워크와 언어 간의 유용성을 최대한 높이는 방향으로 개발이 가능하며, 버그가 발생한 경우에도 신속한 대응이 가능하다는 강력한 장점이 될 수 있습니다. 실제로, React-Native를 사용하여 서비스를 출시한 Airbnb는 프레임워크 상에서 발생한 버그가 해결될 때까지 기다리다가, 결국 네이티브 기반 앱으로 전환한 대표적 사례입니다. React-Native가 이러한 치명적인 단점을 가지고 있으나, 기반 언어가 개발자에게 매우 익숙한 JavaScript이며, 또한 참고할만한 레퍼런스가 매우 많다는 것이 여전히 높은 채택률에 큰 몫을 차지하고 있습니다.

 

2-2. Flutter vs Native

 Flutter와 Native를 두고 보았을 때, 성능과 개발 소요 기간이 가장 많이 언급됩니다.성능에 있어서, 당연히 Flutter가 Native로 구현한 소프트웨어보다 뒤쳐질 수밖에 없는데, 그 차이를 상쇄시킬 수 있는 것이 바로 개발 기간 소요의 단축입니다. 실제로 Naver에서 Native 개발 기준 2개월이 소요되는 프로젝트를 Flutter 사용 시 단 2주만에 거의 유사하게 구현이 가능했다는 점을 알렸습니다. 

출처 : Naver D2

 사실 성능의 차이도, 유저가 크게 실감할 정도가 아니기 때문에 Flutter를 채택하지 않는 주요 사유가 되기엔 부족하다고 볼 수 있습니다. 그러나 각 네이티브 언어가 가지는 안정성 등의 특징을 사용하기 어렵다는 것, 그리고 Native로 개발할 경우 플랫폼에 맞춰 즉각적인 업데이트를 통해 유저에게 다양한 기능을 제공할 수 있지만, Flutter는 업데이트에 꽤나 시간이 든다는 것이 아쉬운 점입니다. 

 다시말해, Flutter는 비용절감에 탁월하지만, 고성능 기능 구현 및 OS 제공의 API 사용에 한계가 존재한다는 것이며, 네이티브 언어를 통한 개발은 약 2배 이상의 비용이 더 들지만, 그 만큼 유저에게 고성능을 포함한 다양한 기능 제공 및 업데이트가 즉각적이고 용이하다는 것입니다.

 

 

3. Flutter만 배우면 개발자로 먹고 살 수 있나요?

 기업은 유저에게 가능한 최상의 성능을 자랑하는 서비스를 제공하고자 하는 것이 기본입니다. 이런 관점에서 보면, Flutter보다는 Native로 개발한 서비스를 선보이는 방법을 채택할 것입니다. 그러나 사업자금과 인력이 비교적 부족한 스타트업의 경우에는 다릅니다. 스타트업에서는 최소한의 비용으로 최대한 빠르고 좋은 서비스를 런칭해야 합니다. 하나의 개발 과정으로 안드로이드, iOS 모두를 지원하는 앱을 출시할 수 있다는 점, 그럼에도 불구하고 네이티브 앱과 큰 차이를 보이지 않는다는 점을 이유로 수많은 스타트업이 Flutter를 사용하고자 합니다.

 사실 Flutter만 배워도 당장 올라와있는 채용 공고에 지원할 수 있습니다. 그러나 앞서 언급한 바와 같이, 네이티브 앱에 비교하여 다양한 이슈가 발생할 우려가 있기 때문에, 기업은 언제든지 네이티브 앱으로의 전환을 고려할 것입니다. 이 점을 고려하여 크로스플랫폼 개발만이 아닌, 네이티브 언어를 통한 개발도 함께 배워나가야 지속 가능한 개발자로 남을 수 있을 것입니다.

 

4. 끝으로

 Google의 후원과 Dart 언어의 장점은 분명 Flutter의 상승세에 힘을 줄 수 있습니다. 그러나 Flutter가 정식 출시된지 아직 5년이 넘지 않은만큼 앞으로의 변화가 더 클 것입니다. 확실한 것은 Flutter가 크로스플랫폼 개발에 매우 훌륭한 프레임워크이며, 비용절감이 절실한 다수의 기업에서 활발하게 채택할 것입니다. 그러나 개인적인 견해로는 Flutter가 긍정적인 전망을 보인다고 해서, 무작정 Flutter만을 배우며 모바일 클라이언트에 입문하는 것보다는, 네이티브 언어를 통한 개발에 먼저 입문한 후 Flutter를 추가적으로 배워보는 것이 개발자가 가지는 지속성을 더욱 높여줄 것이라고 생각합니다.

 

 

 

[References] 

https://flutter-ko.dev 

https://d2.naver.com/helloworld/3384599