Flutter 하다가 Vue.js 를 익혀야 될 필요성을 느꼈다
Vue.js 로 모바일 앱도 개발할 수 가 있다고?
최근에 “기술지원” 업무를 주로 하기 때문에 시간이 남는 여유 시간에는 이런 저런 공부를 하는 중입니다. 현재는 1차 적인 목표인 “플러터(Flutter)” 로 모바일 앱을 하나 출시하는게 목표입니다.
플러터로 간단하게 “웹뷰(Webview)” 를 통해 코드도사 웹앱을 만들어 봤지만 출시는 굳이 할 필요 없겠다는 생각이 들더군요. 일단 코드도사는 웹사이트이기 때문에 언제든지 웹으로도 접속할 수 있으며 굳이 “앱”으로 배포할 필요는 없겠다는 생각도 들었습니다.
블로그 수준의 사이트인 코드도사가 굳이 앱을 통해 사용할 목적이 없기 때문입니다. 반드시 앱을 설치해서 확인해야 할 내용도 없거니와 설사 앱을 배포한다고 해도 “구글 플레이” 에 출시하려면 최근에는 꽤나 까다로운 절차(?)를 거쳐야 하기 때문이지요. (구글 플레이에 앱을 배포하려면 “20여명”의 베타 테스터의 결과”가 필요하다고 합니다)
특히나 “웹뷰”로 만든 앱의 경우는 서류 제출등의 작업이 필요하다고 하니 코드도사 앱 출시는 “불필요한 낭비” 가 될거 같네요. 추후 필요하게 되면 출시해야 할거 같습니다.
따라서 간단하게 만들기 쉬운 웹뷰 앱 보다는 현재 플러터로 직접 여러 예제들을 가지고 이것 저것 시험삼아 코드를 직접 만들어 보고 있습니다. 예제들은 제가 이전에 한번 소개해 드렸던 예제 사이트 들을 참고하고 있습니다.
그 중에서 전 “Flutter Gems” 라는 사이트들을 주로 참고하고 있는데요, 활용할 예제들도 많이 소개가 되어 있고 화면 구성이 깔끔해서 자주 참고를 하고 있습니다.
최근에는 모바일에서 “Sharing Button” 과 관련된 예제를 찾아서 테스트를 해 보던 도중에 빌드 에러가 발생하여 구글 검색을 통해 이리저리 알아보다가… Vue.js 라는 “프레임워크” 를 알게 되었네요.
사실 Vue.js 는 알게 된지는 꽤 되었습니다. 자바 스크립트 기반의 웹 프레임워크입니다. 또한 예전에 잠시 다녔던 회사에서 Vue.js + Electron 으로 개발된 “Windows용 어플리케이션” 소스를 보게 된 적이 있지요. (임베디드 개발을 하면서 Vue.js 소스까지 본 건 이 회사가 처음이자 마지막이었습니다. 그만큼 정신없이 부려 먹었던 회사입니다)
따라서 Vue.js 가 어떤 개념인지는 어느정도 알고 있었으나 Vue.js 로 “안드로이드 앱”을 개발할 수 있다는 것을 이번 기회에 알게 되었습니다.
“네이티브 스크립트” 라는 것을 통해 안드로이드와 iOS 앱을 개발할 수 있다는 내용입니다. 이전에도 React -Native 를 통해 모바일 앱을 개발할 수 있다는 것을 알았지만 Vue.js 도 가능한건 이번에 처음 알게 되었네요.
이전에도 Vue.js 에 관심이 생겨서 Vue.js 와 관련된 책을 한권 구입한 적이 있습니다. 언젠가는 “웹”쪽을 해보고 싶다는 생각이 있었는데, 이번에 드디어 필요성을 느끼게 되었군요.
얼마전까지 열심히 C 코드를 보고 임베디드 시스템을 개발했던 제게 웹이나 앱쪽의 신기술들은 꽤나 새롭게 다가오는 측면이 있습니다. 지금도 Flutter 코드를 볼 때마다 C와는 좀 다른 문법이나 구문 체계를 가지고 있다는 생각이 들고 있습니다.
하지만 여전히 아쉬웠던 것은 플러터를 비롯하여 “자바 스크립트” 를 익혀 놓지 않은 것이네요. 플러터가 아니더라도 “Java Script” 를 조금이라고 익혀 놓고 간단한 웹 페이지를 개발할 수 있는 수준이었다면 지금쯤 “웹 개발 분야”에서 활동하고 있을지도 모르겠습니다.
추가 목표는 JS + Vue.js 을 익히는 것
현재 저는 개발 부서에서 잠시 떠나있습니다. 그리고 이전 글을 통해서 늘상 언급했었지만 “임베디드 업계”를 떠났습니다.
FAE 라는 일을 하는 중인데, 예전에 한창 C 로 리눅스 기반의 임베디드 시스템을 개발할 때보다 시간적 여유는 있는거 같습니다. 개발을 하는게 아닌 “기술 지원”이 주 업무기 때문에 코드를 보기를 하지만 급박하게 수정하거나 코드와 관련된 결과물을 내놓는 일은 아닙니다.
이런 현재 저의 상황이 플러터와 Vue.js 를 익히기에는 나름 시간적 여유가 있는 셈입니다. 물론 바쁠때는 회사 업무에 집중해야 하기 때문에 중간중간에 뚝뚝 끊기는 건 있지만 예전에 비해서는 확실히 시간적 여유는 존재합니다.
최근에는 플러터 위주로 익히고 있었는데 아직 플러터에 대해 경험이 충분치 않지만 모바일 앱을 개발할 수 있는 “Vue.js” 가 꽤나 끌리는 군요. 또한 일단 Vue.js 를 익혀두면 모바일 앱 뿐만 아니라 “웹 페이지” 나 나아가서는 “데스크탑 어플리케이션”을 개발할 수 있는 꽤나 다양한 활용도가 있어서 익힐 필요가 있다고 느껴집니다.
컴퓨터를 “DOS” 시절부터 시작을 했지만 고등학생 시절 Windows 98 과 여러 게임들을 접하고 꽤나 신선한 충격에 빠졌던 제게 그때 당시에 궁금했던 것은 “어떻게 저런 Windows 프로그램들을 개발을 했는가?” 였습니다.
세련된 GUI 와 Windows 안에서 실행되는 게임 및 프로그램들은 제가 흥미를 돋구기 충분했지요. 또한 여러 프리웨어들은 저도 이런 프로그램 한번 개발해 보고 싶다~라는 생각도 들기도 했습니다.
불과 몇년전까지만 해도 “Visual Studio” 같은 유료 툴로 Windows 데스크탑 어플리케이션을 개발하는게 가능했지만 현재는 Vue.js 로도 Windows 데스크탑 앱을 개발하는게 가능한 시대가 되었습니다. 그만큼 SW 기술은 빠르게 변하며 선택권이 넓어진 셈입니다.
그래서 저도 다소 어려운 목표일 수도 있지만 플러터와 더불어 Vue.js 를 익혀보고 싶다는 생각이 드는군요. Vue.js 에 Electron 이라는 도구를 사용하면 꽤나 괜찮은 Windows, Mac 용 앱을 개발할 수 있다고 합니다.
향후에는 Vue.js + Electron 으로 유용한 유틸리티 프로그램을 개발해서 배포를 해보고 싶군요. 그렇게 되면 임베디드 시스템을 개발했던 거와 다른 “보람”을 느끼게 될지도 모르겠습니다^^