테스트 사이트 - 개발 중인 베타 버전입니다

Sveltekit + capacitor + 그누보드 restful api

· 2년 전 · 2272 · 13

아 여기에 하이브리드앱 카테고리가 있었네요.

그럼 다시 한번 정리해볼께요.

 

최근 저희 회사에서 앱개발은

Sveltekit + capacitor + (ciboard or 싱글턴 php) 를 이용한 프로젝트를 많이 납품하고 있습니다.

그리고 웹은 무조건 sveltekit 만 씁니다.

 

제가 작년 이맘때 지금 다니고 있는 회사에 입사하게 되었는데, 그때는 그야 말로 지옥이었습니다.

그전 개발자 분이 php 를 객체지향으로 만들어 놓고 cordova 로 앱을 만들기 위해 자체적으로 

php를 이용해서 SPA 를 구현해 놓았는데, 그분 건강 문제로 그만두시고

그 복잡한 자체 프레임워크를 다른 개발자 분들이 포기하시고 그만두시기를 반복하다가,

제가 들어오고 이문제를 잡게 되었습니다. 복잡도가 높아서 일반 개발에 비해 속도가 2, 3배는 더드는

난해한 프레임워크였는데(객체지향과 jquery 를 이용한 SPA 구현 그리고 cordova 웹뷰 자체 튜닝)

이를  수습하느라 엄청 고생했습니다. 그리고 그동안 늦춰진 속도를 따라가기 위한 전략으로 svelte 도입하게 됩니다.

다행이 제가 한 2년 전부터 svelte 를 저 개인적인 프로젝트에 도입해서 사용하고 있어서,

아직 안정화 버전이 아님에도 불구하고 과감하게 svelte로 신규 프로젝트들에 도입하였고,

 지금은 그 악몽에서 거의 탈출하게 되었습니다. 워낙에 svelte가 쉽고 개발 속도가 빠르다 보니 금방 따라잡을 수 있었습니다. 퍼플리셔분도 너무 좋아하고, 저도 웹이건 하이브리드앱이건 바로 개발할 수 있어서 개발 환경이 지옥에서 천국으로 개선되었습니다.

 

그누보드로 개발하시는 분들은 하이브리드앱 개발하시려면 엄청 고민하실 겁니다.

웹으로 개발해서 뷰어만 만들어서 웹페이지 보여주면 되겠지?

그런데 실제 납품해보신분들은 아시겠지만, 이렇게 하면 프로젝트가 산으로 갑니다.

저 전에 있던 개발자 분도 프레임워크를 그렇게 복잡하게 설개하신 이유가 바로 cordova의 기능을 사용하려면,

spa 를 구현해야하는데, 그것을 구식버전이 jquery로 개발하려다보니 프레임워크가 산으로간 것이었습니다.

하이브리드앱을 쓰는 이유는 웹으로 뷰어를 제작하고 브릿지 기능으로 네이티브 기능을 사용하는건데

그누보드 스킨이나 테마 받아서 쓰면, 네이티브 기능 사용 못한다는 사실에 직면하게 됩니다.

그래서 웹뷰 튜닝하신 분들 제품을 사용하거나 그분들에게 엄청 높은 금액으로 개발외주를 주시는 경우가

대부분인것으로 압니다. 

 

이런 고민을 제목에서 거론한 조합으로 그냥 싸~악 날려 버릴 수 있습니다.

 

그누보드는 백오피스나, db 설계를 유지하고 그외의 뷰어 단은 과감히 버리시고 restful api 를 이용해서 

api 만 활용하는 전략으로 가고, 

뷰어는 sveltekit 으로 만들고

그리고 하이브리드앱 브릿지 부분은 cordova 계열의 오픈소스인 capacitor 를 이용하면 됩니다.

최근 버전에서는 지원하지 않지만, capacitor3 버전까지는 cordova와 상호 호환이 됩니다.

그리고 상위버전에서도 cordova와 호환되는 플러그인이 있습니다.

capacitor도 커뮤니티가 잘되어 있어서 네이티브 웬만한 기능은 다 사용할 수 있습니다.

그누보드 처럼 공개 오픈소스 형식으로 웹뷰부분을 지원하기 때문에 이 커뮤티의 도움으로

네이티브 보안 이슈와 같은 업데이트의 신속한 대응이 가능합니다.

 

이렇게 하면 그누보드를 이용한 앱개발의 새로운 장이 열립니다.

그동안 그누보드 개발하면 하이브리드앱 개발할때 받던 스트레스가 사라집니다.

 

그런데, 저도 얼마전에 알게된 놀라운 사실이, 아직까지도, 그누보드에 restful api 없었다는 사실이었습니다.

 

사실 전 ciboard를 한 7년 전부터 써오고 있어서 그누보드를 한참 떠나 있었습니다.

그리고 다른 프레임워크 에서도 다들 restful api 기능들 대응하면서 react, vue 이야기가 인터넷 커뮤니티들 사이에서 많이 회자되다보니 당연히 그누보드 연동해서 많은 분들이 이용하겠거니 생각하고 있었는데,

2달 전쯤에 제가 그누보드에 들어와서 그누보드용 restful api 없다는 사실을 알고 경악을 금치 못했습니다.

 

그래서 부랴부랴 제가 하나 만들어서 올렸습니다.

https://sir.kr/so_restful/345 이게 그놈입니다.

 

ciboard 를 워낙에 오래 사용하다보니 restful api 가 어떤것이겠거니한 막연한 경험치로 만들어본 겁니다.

 

그리고 함수형으로 만든 이유는 작년에 php 를 객체 지향으로 자체 구현한 그 겹겹이 쌓인 프레임워크를 해짓고 다니면서

고생한 객체지향에 대한 악감정이 남아 있었고, 이에 대한 반감으로 그누보드를 다시 찾게 되었는데, 이에 대한 대응으로

일반 함수형으로 restful api 만드면 어디가 덧나나 하는 감정 이입으로 만든 결과가 바로 그것입니다.

restful api 소모임 다른 분들 글을 보면, 그누보드가 객체지향으로 가야한다고 하는 이유를 restful api 부제에서 찾고 계신분들이 있는 것 같은데, 그누보드도 객체지향으로 넘어가보려는 시도를 여기저기에서 찾아 볼 수 있었습니다.

그러나 제 개인적인 생각으로는, 객체지향으로 변경하면 그누보드 망할 수 있다고 생각합니다.

어려워지면 망합니다. 단순하고 쉽기 때문에 그누보드 쓰는건데, 다른 곳 객체지향 쓴다고 따라가면, 

아이덴티니 상실되고 그러면 망하는거 아닌가?란 생각이 듭니다. 그리고 msa 개발 방법론도 있으니, 객체지향이

정답이 아닐수도 있겠다는 생각을할 수 있고, 최근에는 node 의 express 처럼 이를 본딴 타 언어에서도

go lang 에서는 fiber 라든가, rust actix 와, python fastapi 처럼 단순화 경향을 장점으로 여기는

라이브러리나 프레임워크가 나오듯이 방향성을 복잡도를 줄이는 단순화 경향으로 가능게 오히려

그누보드 아이덴티니에 더욱 부합하는 것 같습니다.

 

다시 본론으로 돌아오면

mvc 패턴이라고 하는데 어짜피 서버사이드는 api 만 사용할 것이라면

굳이 객체지향을 고수할 필요도 없다는 판단도 한목 했습니다.

 

우리가 원초적으로 라우팅하면 파일 베이스 라우팅을 가장 먼저 경험해서 이게 익숙한데,

sveltekit도 쉽게 개발하라고 이 방식을 지원하고 해서

이번에 만든 rustful api도 파일베이스 라우팅으로 구현해 놓았습니다.

제가 학창시절 공부를 못해서 어려운거 못하다보니 저도 이용해야해서 어쩔수 없이 쉽게쉽게 만들었습니다.

 

 

하이브리드앱 만들대는

그누보드 restful api + Sveltekit + capacitor + + (안드로이드 or ios or window)

 

웹(PWA)만들때는 

그누보드 restful api + Sveltekit

 

참고로

20배정도 빠른 속도 개선은 덤입니다.

 

 

 

 

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 13개

누감고 저주기 버전 -클라우드 Saas업체에 돈벌어줘도 된다. 생각하신다면
https://kit.svelte.dev/docs/adapter-auto#adding-community-adapters
위링크에 나오면 다양한 Saas 의 어뎁터를 설치하시고
각 서비스별 가입후 배포 서비스의 설정을 하시고
npm run build 하거나 별도 명령어 한줄을 실행하시면 배포 끝
그러니까, Saas 서비스 이용하면 직접 배포 설정하는 것 보다 훨씬 쉽게
배포할 수 있습니다.
아 처음엔 죄다 무료 입니다.
2년 전
@들불 고객사가 네이버 클라우드 사용해서 서버를 거기 써야 합니다. ㅎㅎ
많은 도움 되었습니다. 감사합니다.

게시글 목록

번호 제목
2136
2131
2122
2112
2108
2106
2102
2099
2093
2084
2080
2077
2070
2068
2067
기타 C++
2065
2064
2063
2062
2059
2055
2053
2047
2044
2037
2036
2033
2027
2026
2025