G7의 템플릿 방식은 어떻게 결정된 건가요?
현재 기본 템플릿 기준으로 이러한 방식의 템플릿을 채용하게 된 배경이 궁금합니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 4개
즉 Laravel 프레임워크 위에 올라가 있어서 라우팅, 미들웨어, 서비스 컨테이너, 뷰 템플릿(Blade) 같은 구조를 이해해야 한다라는것입니다.
현재 기본 템플릿은 Laravel Blade를 기반으로, Bootstrap + Vue.js 같은 프론트엔드 기술과도 쉽게 연동할 수 있도록 설계되어 있는것으로 보여지며 SPA(단일 페이지 앱)나 API 기반 서비스로 확장할 수 있는 구조라고 보시면 될것같네요
짧은소견은
G7 커스텀하려면 라우팅, Blade 템플릿, Artisan 명령어, Composer 패키지 관리까지 알아야 하니 진입 장벽이 높습니다.
특히 템플릿이 Laravel Blade + Bootstrap 조합이라서 CSS 커스터마이징도 단순히 style.css 하나 고치는 수준이 아니라, Bootstrap의 그리드 시스템과 컴포넌트 구조를 이해하고 있어야 한다라는 뜻입니다.
화이팅 나도 오늘부터 연구 더해봐야겟네요~ 그런데 왜이래 귀찮죠 ~~;;
G7은 자체적인 React 기반의 템플릿 엔진을 가지고 있습니다.
이 구조에 대한 문의입니다.
기본 테마 파일을 뒤적여보시면 JSON 파일들이 보일겁니다.
자체 템플릿 엔진이 꽤나 정성들여 만들어져있기는한데, 테마 제작자들이 어떻게 받아들일지 모르겠네요. 아마 SPA, SSR, 모바일앱까지 바라보고 조만간 공개될 비주얼 에디터까지 고려한 듯하지만요.
안녕하세요.
그누보드7은 백엔드와 프론트엔드가 완전히 분리된 SPA 구조로 설계하였습니다. 만약 프론트엔드를 react나 vue로 직접 작성하는 전통적인 방식을 택했다면, 레이아웃을 수정할 때마다 빌드와 배포 과정을 거쳐야 합니다. 운영자가 프론트엔드 인프라까지 구성해야 하는 점도 부담이 됩니다.
이는 '설치 즉시 서비스 가능하다' 는 그누보드의 장점을 해칠 수 있는 부분입니다. 또한, 모듈과 플러그인이 제공하는 레이아웃을 동적으로 주입하고 의존성을 관리하기에도 적합하지 않습니다.
그래서 레이아웃을 JSON으로 선언하고, 템플릿 엔진이 이를 렌더링해 화면을 구성하는 방식을 채택했습니다. 더불어 추후 공개될 GUI 방식의 레이아웃 편집기를 위한 사전 설계이기도 합니다.
SPA 방식이다 보니 SEO 대응이 문제가 될 수 있는데, 이 부분은 유저에이전트에서 봇을 식별하여 SEO 용 정적 페이지를 제공하는 형태로 해결하였습니다.
다만, JSON 포맷으로 HTML Elements를 나열해야하는게 사용자에게 주어진 템플릿 제작 방법이 되므로 어려움이 있을 것 같습니다. 레이아웃 에디터가 코드를 뽑아준다면 그나마 낫긴하겠지만요.
사실상 리액트 기반이 강요되면서도 리액트라고하기는 모호한 모양새인데, app.blade를 교체하여 blade 템플릿이나 vue, alpinejs, astro 등 자유롭게 구성할 수 있는 방법도 제공되면 좋지않을까 싶습니다. 이미 마련되어 있는지는 모르겠지만요.
G7 자료실에 템플릿 엔진 호환여부가 갈라지는 문제가 있을 수는 있겠지만요.