20년 10월부터 현재까지 플러터로 30만 다운로드의 글로벌 서비스를 개발 및 서비스하고 있는 주니어 개발자이다.
라고 말하고 다니기 너무 부끄러운 수준이지만, 플러터로 개발을 시작하는 사람들이 갖는 궁금증들을 1년 내내 고민해왔기에 글을 쓰게 되었다. 플러터의 기술적인 부분 보다는 커리어 적인 부분에서 작성한 글이다!
이전에 플러터에 관해 썼던 글이다. 아래 링크의 글은 플러터 장단점에 대한 글이다. RN과 네이티브와의 차이점에 대해 설명되어 있으니 참고하면 앱 개발 프레임워크에 대한 선택에 도움이 될 것이다.
플러터로 취업할 수 있을까.
사실 1년간 플러터로 커리어를 쌓으면서 정말 도망치고 싶었던 적이 많았다. 과연 이 기술 스택이 성공적인 개발자로서의 시작이 될 수 있을까? 혹 여나 이직을 해야 할 때 나의 기술을 필요로 하는 곳이 있는지에 대한 걱정과 함께 말이다.
솔직하게, 이 질문에 대한 답은 No이다. 그래서 이 질문에 대한 답으로 웹 개발자로 나아가기 위해 리액트를 함께 배워왔다.
플러터 시장 너무나도 작다. 또, 플러터를 아무리 배운다 한들, Native 언어를 배우지 않으면 기술적인 한계에 부딪히게 된다. 결국 플러터를 위해 Natvie를 배우게 되고, 결론적으론 Native 개발자로 전향하는 길을 밟게 될 가능성이 높다.
소규모의 스타트업, 창업이나 프리랜서, 혹은 이미 Native 개발에 능숙한 사람이 아니라면 처음부터 Native를 배우면 어떨까..?
다만, 작년 내가 처음 플러터를 시작할 때에 비해 시장이 많이 넓어졌다.
특히 네이버에서 블로그와 지식인을 플러터로 개발하고 있다는 소식과 GS Shop이 플러터로 포팅 되었다는 여러 가지 플러터 채택에 관한 소식이 들려오고 있다. 아무래도 네이버 같은 IT 대기업에서 플러터를 채택했다는 것은 상당히 감사하고 시장에 대한 확장을 기대해 볼 수 있게 하는 부분이다. 다만 적어도 지금은 아니다. 미래에도 상황이 크게 변하진 않을 것이다. 대기업이라면 프로젝트를 100프로 플러터로 하는 곳이 드물기도 하고, 러닝커브가 낮기 때문에 네이티브 개발자가 플러터를 공부해가며 해도 충분하다고 판단함이 아닐까.
희망적인 부분은 내년부터 네이버에서 플러터로 진행하는 러닝 코스를 제공할 예정이라고 한다. 부스트 캠프와 같이 규모가 크다면 순식간에 국내 플러터 시장이 커질 수도. 추가로 지난 네이버 부스트 캠프에서 웹교육생 이든 네이티브 모바일 개발자 교육생 이든 상관없이 플러터로 토이 프로젝트를 만들게 했었다고 한다.
플러터 생태계가 확장되진 않을까?
물론, 플러터의 생태계는 지속적으로 확장되고 있다. 이전보다 취업 시장 규모도 상당히 커졌고 플러터의 버전도 눈 깜짝할 사이에 2.8 버전으로 꾸준한 프레임워크의 개발이 이루어지고 있다. 하지만 가장 중요한 건 대기업의 채택이나 퓨시아의 등장이다. 퓨시아는 많은 오픈 소스 중 하나라고 구글이 언급하기도 했지만 언제 엎어질지 모르는 것은 기정 사실이다.
최근에 팁스터들이 퓨시아의 안드로이드 대체를 언급한 내용이 있다. 다만 시간이 적지 않게 걸릴 것이다.
앱 개발을 하고 싶어요.
순수히 앱 개발을 원하는 사람이라면 네이티브 보다 플러터를 강력 추천한다. 특히 RN과 플러터가 많이 비교되곤 했었는데,
최근의 구글 트렌드나 여러 가지 지표를 근거로 취업 시장을 제외한 곳에서 RN을 넘어섰다. 개발자로서의 커리어가 당장에 중요하지 않고 앱 개발을 해보고 싶다면 가장 좋은 선택지가 아닐까 싶다. 반대로 취업이 급하다면 네이티브를 택하자.
플러터, 그래도 꼭 해보고 싶어요.
앞서 단점들을 상당히 많이 나열했다. 하지만 플러터 그 자체는 취업 시장을 생각하지 않는다면 크로스 플랫폼의 특징으로 모바일 생태계에서 정말 강력한 프레임워크이다. 아쉬운 부분은 패키지 간에 충돌이 종종 발생한다는 점과 정말 예상치 못한 버그가 많이 생긴다는 점이다.
개발하는 서비스에서 파이어 베이스 패키지와 IOS 간에 충돌이 발생해 정말 긴 시간 동안 IOS로 구동을 못하는 경우가 발생한 적이 있었고, 베트남, 인도네시아 같은 해외 유저로부터 음성 파일이 다운로드가 안된다던지, 데이터나 와이파이의 연결 유무를 체크하는 패키지가 데이터가 켜져 있음에도 연결되어 있지 않음으로 인식하는 등 네트워크와 관련된 부분의 이슈 피드백이 자주 날아온다. 일반적으로 많이 사용되고 있는 패키지를 그대로 갖다 썼는데 말이다. 이러한 부분에서 Native 언어를 배워야만 하고, 결국엔 러닝커브가 다시 발생하게 된다. 네이티브로 개발했더라면 이런 기본적인 문제가 발생하진 않았을 텐데 하는 생각을 많이 한다. 이런 단점들을 감수하더라도 플러터의 생산성이 최고임은 틀림없다.
플러터, 웹도 개발할 수 있죠?
블로그 방문자의 정말 많은 비율이 플러터 웹 게시물을 보고 방문했다. 그만큼 플러터 웹에 대한 관심이 많은 것인데,
최근에 유저 피드백을 처리하기 위해 유저 피드백 답변 웹을 플러터로 개발했다.
RN-React와 다르게 특별한 포팅 없이 정말 똑같은 코드로 웹을 개발할 수 있다.
하지만, 여전히 SEO가 제대로 되지 않는 문제점이 있고 실제 사용해보면 일반 웹사이트와 다르게 느껴질 정도로 렉이 존재한다. 한글이 제대로 지원되지 않는다는 느낌을 받을 만큼 한글이 렌더링 되는데 딜레이가 존재하고 텍스트 필드의 입력 또한 버벅거린다.
검색엔진이 내용을 수집하지 못하기 때문에 당연히 크롬의 페이지 전체 번역과 같은 페이지를 읽는 외부 기능들도 전혀 사용이 불가능하다.
웹은 여전히 좋지 않다. 하지만, 이미 플러터로 개발한 앱이 있다면 대부분의 기능을 그대로 구현할 수 있기 때문에 간단한 툴 정도는 개발할 수 있다. 사진의 툴 개발도 1시간 남짓 걸린 만큼 생산성은 탁월하다.
결론?
내내 부정적인 이야기만 해온 것 같다. 하지만 내가 플러터를 배우고 실제로 사용하고 있음에도 커리어를 쌓고 싶은 개발자에게는 플러터를 정말 추천하고 싶지 않다. 그래서 나는 커리어를 위해 웹 개발쪽으로 진로를 바꿀 준비를 하며 리액트를 배우고 있고, 아마 플러터를 내려놓는 날이 조만간이 될 것 같다. 만약, 프리랜서 혹은 창업, 스타트업 혹은 대기업을 전혀 고려하지 않는 개발자라면 단연 플러터를 추천하고 싶지만 꼭 다른 기술들을 병행해서 배우길 바란다. 스타트업에서도 아직은 시장이 너무나 좁고 아직은 이 블로그에 들어오는 여러분들의 커리어에 확실한 힘을 실어줄 기술이 아니다. 지난 글에서 말했듯, 플러터를 배우는 것은 정말 먼 미래를 보고 배우는 것이다. 그만큼 미래를 준비하는 사람이라면 꼭 다른 기술들도 함께 배웠으면 한다.
참고로 나는 30만 다운로드 Lingory를 플러터로 개발하고 있다.
'Flutter > About Flutter' 카테고리의 다른 글
[Flutter] 플러터 이해하기 (1) | 2020.07.24 |
---|