가장 쉽고, 빠른 풀스택 개발
1달 안에 웹 / 앱 서비스 둘 다 만들어야 한다면 어떡할까요? 하지만, 1달 안에 제대로 된 웹이나 앱 서비스 한 개 만드는 것은 어렵습니다. 디자인은 물론이거니와 개발과 테스트에 적잖은 시간이 소요되기 때문입니다.
뿐만 아니라 고객이 생각하는 방향과 개발 방향이 다를 수도 있기에 보통은 빠르게 프로토타입을 만들고 내부적인 테스트와 고객과의 미팅을 거쳐 피드백을 받고 프로토타입에 개선하는 식의 애자일 개발방법론을 따릅니다.
이전 글에서 “워드프레스를 백엔드 서버로 쓰고 안드로이드에서 통신을 위해 REST API를 사용했다”라고 했는데 이것이 1달 안에 웹 / 앱 서비스 둘 다 빠르게 구현할 수 있는 방법입니다.
핵심은 주요 기술로 워드프레스를 채택한다는 것입니다.
워드프레스는 CMS 종류 중 하나로 초기에 블로그 목적으로 시작되었지만 다양한 PHP 기반의 플러그인을 이용해 다양한 목적으로 사용할 수 있습니다. 특히, 전자상거래 플러그인으로 유명한 우커머스에 아임포트 같은 PG 플러그인과 코드엠샵 플러그인을 추가로 사용하면 입점형 쇼핑몰 못지않은 퀄리티의 독립형 쇼핑몰 페이지를 구축할 수 있죠.
국내 웹시장에서는 그누보드, 제로보드와 함께 자주 쓰이는 CMS이죠.
워드프레스는 CMS지만 플러그인을 이용하여 정말 다양하게 커스텀 가능합니다.
그래서 저는 웹 프론트 영역과 백 엔드 영역을 간단하고 빠르게 구축할 수 있는 방향으로 커스텀했습니다. 그래야 앱 프론트 영역에서 개발할 수 있는 시간을 벌 수 있으니까요.
워드프레스를 핵심 기술로 선정했다면 앱 까지 커버하는데 3가지 선택을 할 수 있습니다.
웹 앱 | 하이브리드 앱 | 네이티브 앱 | |
개발 난이도 | 매우 쉬움 | 어려움 | 매우 어려움 |
개발 언어 | X | JS, Kotlin, Swift | JS, Kotlin, Swift, PHP |
개발 시간 | 3일 | 2주 | 최소 1달 |
웹 앱
웹 앱은 워드프레스로 앱까지 커버하는데 가장 쉬운 방법입니다.
안드로이드, iOS 둘 다 웹뷰로 워드프레스 페이지를 보여주기만 하면 되거든요. 나머지는 워드프레스가 다 알아서 합니다.
꽤 괜찮은 워드프레스 페이지가 있다면,
웹 앱은 앱 개발에 대한 지식이 없어도 누구나 만들 수 있습니다.
하이브리드 앱
하이브리드 앱은 웹 앱에서 조금 더 난도가 높은 선택입니다.
기존의 웹 앱이 웹뷰로 워드프레스 페이지를 보여주는데 그쳤다면 하이브리드 앱은 웹뷰를 통해 네이티브 안에서 별도의 상호작용이 필요하거든요.
이 상호작용을 구현하기 위해 기본적으로 JS에 대한 지식이 있어야 하고, 각 플랫폼별 언어(Swift, Kotlin)에 대한 지식이 있어야 합니다. 그래서 3개의 프로그래밍 언어를 요구합니다. 앱에서 웹뷰를 통한 상호작용이 많이 일어날수록 네이티브 앱 못지않게 난이도가 어려워집니다. 반대로 그렇지 않다면 하이브리드 앱은 웹 앱보다 조금 더 어렵기만 할 뿐입니다.
네이티브 앱
네이티브 앱은 세 방법 중 가장 난도가 높은 선택입니다.
웹 앱, 하이브리드 앱의 경우 웹뷰를 통하기 때문에 앱에서 디자인에 대해 신경 쓸 필요가 거의 없습니다. 워드프레스 테마의 디자인이 워낙 걸출하기도 하고 반응형이라 모바일 환경에서도 그럴싸해 보이거든요. 그러나 네이티브 앱의 경우 안드로이드, iOS 각 플랫폼 별로 디자인이 나와줘야 합니다.
하이브리드 앱과 마찬가지로 각 플랫폼 별로 대응되는 언어로 프로그래밍해야 하고요.
여기까지가 하이브리드 앱과 동일하게 3가지 언어가 필요합니다.
웹 앱, 하이브리드 앱은 이미 만들어진 워드프레스 페이지를 보여주기 때문에 백엔드 작업도 신경 쓸 필요가 없습니다.
그러나 네이티브 앱은 그런 게 없기 때문에 워드프레스를 기반으로 한 백엔드를 구성해야 합니다. 다행인 점은 처음부터 백엔드를 구성하는 것보다 쉬운 게, 워드프레스는 BaaS처럼 웬만한 백엔드 기능이 다 구성되어 있습니다. DB는 물론이고 기본적인 CRUD부터 전자상거래 플러그인 등 대부분의 서비스를 만드는데 필요한 기능은 이미 다 구성되어 있습니다.
그래서 REST API를 이용해 이미 만들어져 있는 워드프레스의 유용한 기능들을 네이티브 앱이 사용할 수 있도록 프로그래밍하는 과정을 겪게 됩니다. 워드프레스는 PHP 기반의 CMS이기 때문에 이 과정에서 PHP가 사용되므로 총 4가지 언어를 해야 합니다.
마치며
사실 이 글은 제가 작년에 퇴근 후 간간히 정리 겸 써놨던 글인데 요즘에 바빠서 이제야 마무리해서 포스팅하게 되었습니다. 설명드린 워드프레스를 기반으로 3가지 방식의 앱을 만드는 걸 제가 다 해보고 느낀 점을 정리해 봤습니다.
풀스택 개발자처럼 웹, 앱 가리지 않고 아웃풋을 쉽고, 빠르게 낼 수 있다는 게 참 매력적인 것 같아요.