그 '플러터가 죽고 있는가?' 글을 또 읽었어요. 거의 우스워요. 왜 그렇게 많은 사람들이 이에 대해 포스팅하는지 이해가 안 가네요.
아마도 플러터가 너무 쉽다는 심금을 닫고 있는 믿음 때문인가요? "플러터가 진짜일 리가 없어. 너무 간단하니까. 꿈꾸고 있는 거예요, 그렇죠?"
저는 플러터가 사라질 위험이 있는 것 같지 않아요. 저번 포스트에서 주장했던 것처럼 많은 사람들이 사용하고 있고, 구글도 포함되어 있으니까요. 그래서 '플러터가 죽고 있는가'라는 글을 또 보면 실로 우습다는 생각이 들어요. 하지만 읽었던 글 중에서 정확히 동의하진 않는 부분이 있어요.
그 댓글이 진짜 짜증나요. 곰곰이 생각해 보니 언어를 배우는 이유는 다양한데 'XYZ 언어는 배우지 마세요'라고 말하는 건 단순해서 어떤 맥락도 고려하지 않고 이야기하는 안 좋은 조언이에요.
언어를 배우는 가장 중요한 이유는 취업이라고 생각해요. 그리고 언어를 배우는 이유가 단지 취업 때문이라면, 그렇죠, 플러터를 배우지 않아도 돼요. 사실 여기서도 그렇게 언급했어요.
플러터는 아직 너무 새로운 기술이라서 많은 사람들이 사용하고 있지 않아요. 앞으로 플러터 포지션의 잠재력을 볼 수는 있지만, 지금은 수요가 충분하지 않아요.
다만 저는 개인적으로 취업을 위해 언어를 배우는 건 강력한 이유라고 보지 않아요. 취업을 목적으로 임의의 언어를 배우는 게 좋지 않아요. 채용 공고를 보고, 충분히 많이 Go를 언급하는 채용 공고를 보면 Go를 배우게 되고요. 충분히 많이 C#을 언급하는 채용 공고를 보면 C#을 배우게 되는 거죠. 실제로 Flutter를 언급하는 채용 공고를 몇 개 보았어요. 하지만 다른 프로그래밍 언어들보다는 훨씬 적었어요. 그동안 오랜 시간 동안 사용되어온 다른 프로그래밍 언어들만큼 많지 않았어요.
또한, 저는 Go 프로그래밍 여정에서 Go에 대해 왜 이렇게 많은 어리석은 일을 하는지 궁금해했어요. 그 결론은 2007년에 발명되었기 때문에, 현대 프로그래밍 아이디어가 많이 나오기 전이었기 때문이에요. 그저 시대 문제일 뿐이에요. Dart는 2017년에 출시된 Flutter 이후에야 인기를 얻었기 때문에, 그저 시간 문제일 뿐이에요. 더 기다리세요. 10년 후면 누구나 플러터 개발자를 찾을 거예요.
프로그래밍 언어에 동기부여를 받는 가장 좋은 방법 중 하나는 사이드 프로젝트를 진행하는 것입니다. 많은 프로그래머가 사이드 프로젝트를 갖고 있지 않다는 것을 알고 있습니다. 사이드 프로젝트가 없어도 전혀 괜찮아요. 하지만 많은 프로그래머들이 사이드 프로젝트를 가지고 있죠. 자신이 더 잘할 수 있는 부분을 발견하고 스스로 해결해나가는 것이 쉬운 방법이기 때문입니다. 제가 개발한 RSS 리더 Stratum(iOS, Android)와 언어 학습 앱 Litany(iOS, Android) 역시 그런 아이디어에서 출발되었습니다.
사이드 프로젝트를 진행해보고 싶다면 Flutter를 강력히 고려해보세요. 왜냐하면 Flutter에는 여러 가지 이유가 있기 때문이에요. 일단, 이 프레임워크는 믿을만하고 직관적입니다. 또한, Windows, Mac, Linux, Android, iOS, 웹에 대해 빌드할 수 있습니다. 그리고 제가 이전 글에서 언급한 대로 Dart와 Flutter에 대한 풍부한 문서가 있습니다. 하지만 아마도 가장 중요한 점은 Flutter를 구동하는 언어인 Dart가 사용하기 아주 쉽다는 점입니다.
Dart는 C 스타일의 객체 지향 언어입니다. 멋진 언어죠. COOL이란 말은 원래 C#의 이름이었지만 마이크로소프트가 상표 문제로 결정하지 않았습니다. 하지만 이러한 분류인 'C 스타일 객체 지향 언어'라는 용어를 좋아합니다. 이는 모두 객체 지향적인 C 스타일의 언어들이라는 것을 잘 알려주거든요.
한 가지 COOL 언어를 알고 있다면 다른 언어를 쉽게 배우실 수 있습니다. 특히 비슷한 언어일수록 더욱 쉽게 배우실 수 있습니다. 그리고 Dart는 자바나 C#과 매우 유사합니다.
사실, 플러터를 사용하기 전에 Unity(C#을 사용)에서 프로그래밍을 하고 있었는데, C#과 Dart가 얼마나 비슷한지 놀랐습니다. 가장 큰 차이점은 Dart가 조금 더 간결하다는 것입니다. 그래서 public 또는 private는 없고 언더스코어로 처리됩니다. 그리고 factory 생성자와 foo(this.x, this.y)와 같은 생성자가 있습니다.
저는 null 안전성이 도입되기 전에 Dart를 사용하기 시작했지만, null 안전성은 몇 가지를 변경했습니다. 많이는 아닙니다. 다른 C 스타일 객체지향 언어를 알고 있다면 Dart를 매우 빠르게 익힐 수 있습니다. 아마도 하루만에도 가능할 정도로 간단합니다.
Flutter를 배우지 않겠다고 말했던 것을 되돌릴 수도 있을 것 같습니다. 일자리가 매우 적다는 것을 고려해야 하기 때문입니다. 또한 언어를 실제로 배우는 난이도도 고려해야 합니다.
많은 언어는 매우 지루한 프로젝트를 중심으로 돌아가기 때문에 쉽게 익히기가 어려울 수 있습니다. 그러나 Flutter를 사용하면 앱을 만들 수 있습니다. 그리고 굉장히 쉽게 만들 수도 있습니다. 그리고 그 앱은 이제 Windows, Mac, Linux, iOS, Android, 웹에서도 실행할 수 있습니다.
플러터는 매년 더욱 인기를 끌 것입니다. 결국 플러터 관련 직업이 많이 나올 것이라고 생각해요.
그래서 원래 글이 전부 틀린 것은 아닐 수도 있어요. '놀기만 하고 싶다면 그렇게 해도 괜찮을 거야' 라는 말이 맞았군요. 그렇다면, 진지하게 배우고 싶지 않다면 '언어를 배운다'는게 무슨 뜻인가요? 진지하게 공부하고 싶다면 면접 질문들을 많이 읽어보세요.
저는 그 글의 말대로 '진지한 전문 개발자'는 아니에요. 언어를 배우는 것을 즐기는 것을 더 좋아해요. 플러터는 재미있어요. 그리고 정말 멋진 것을 만들어낼 수 있어요.
그겼 초보자에게는 자바스크립트와 비슷합니다. 다만, 플러터는 언어 자체가 좋다는 것이 다릅니다. 자바스크립트를 사용하면 물론 웹을 만들 수 있고, Electron으로 데스크톱 앱을 만들 수 있고, React Native로 모바일 앱을 만들 수 있어요. 하지만 플러터를 사용하면 세 가지를 한 번에 간단한 코드베이스로 만들 수 있어요. 이것과 유사한 기술이 없어요. 그래서 플러터를 배워야 하는 이유죠.