XE도 그렇고 티스토리도 그렇고 스킨을 제작하려고 하는데 불편한 점이 한둘이 아니라... 특히 날HTML을 만져본게 너무 오래돼서 적응이 안되는데 이런걸 간단하게 할 수 있는 프레임워크 같은게 있나요?
만약 없다면, XE에서 효율적으로(?) React를 쓸 수 있는 방법은 있을까요?
PHP | PHP 7.4 |
---|---|
CMS | Rhymix 2.x |
XE도 그렇고 티스토리도 그렇고 스킨을 제작하려고 하는데 불편한 점이 한둘이 아니라... 특히 날HTML을 만져본게 너무 오래돼서 적응이 안되는데 이런걸 간단하게 할 수 있는 프레임워크 같은게 있나요?
만약 없다면, XE에서 효율적으로(?) React를 쓸 수 있는 방법은 있을까요?
HTML 기본 구조는 아주 잘 알고 있습니다. 웹개발 시작할때 HTML부터 배웠고, 몇년을 써먹었으니... 단지 React의 JSX가 너무 편해서 한번 발을 들이니 날HTML + JS로 DOM 조작이 되게 불편하게 느껴지더라고요 ㅠㅠ 템플릿 문법은 사실 아무래도 상관 없습니다...
개발 언어가 전혀 다르기 때문에 직접적인 연동은 안 되지만, 일단 React로 개발하신 후 스킨의 html 파일에서 최소한의 인클루드 문법만 사용하여 React 빌드 파일을 인클루드하여 불러오는 방법도 있습니다. 단, 이렇게 하시려면 빌드 파일에서 사용하는 스크립트 등의 경로를 조정해 주어야 할 수도 있습니다.
개인 취향이겠지만 저는 JSX를 보면 예전에 HTML, PHP, SQL, JS 등이 하나의 파일에 마구 뒤섞여 스파게티 코드라고 욕을 먹던 시절의 기억이 떠올라서 그다지 내키지 않더군요. 이제는 그냥 파스타가 대세가 된 건지...
모든 프론트엔드는 HTML로 귀결됩니다. 리액트도 빌드 파일은 index.html이잖아요? 따라서 특정한 프레임워크와 특정한 방식으로 연동하는 것보다는 임의의 HTML 콘텐츠를 불러올 수 있도록 지원하는 것으로 코어의 역할은 충분하다고 생각합니다. 원하시는 방식으로 자유롭게 구현한 후 그 결과물을 불러오면 그만이니까요. 앞에서 말씀드린 것처럼 스킨에서 인클루드해도 되고, 스킨 없이 그냥 외부페이지 기능을 사용하는 방법도 있습니다.
완전히 다른 방식으로 프론트엔드를 구현한 후, 라이믹스 주요 모듈들이 제공하는 JSON API를 호출하는 방식으로 headless CMS처럼 활용하셔도 무방합니다. 회원가입, 로그인, 글쓰기, 추천 등 모든 POST 액션은 이미 API의 형태로 제공됩니다. 게시물 목록, 댓글 목록 등 GET 액션은 권한 문제 때문에 API로 노출하고 있지는 않으나, 필요하신 부분만 별도 모듈로 구현하면 간단하게 JSON API를 추가할 수 있습니다.
네, 알고 있습니다. build/index.html을 로딩하면 거기서 링크된 JS 파일들은 알아서 따라오지요.
그런데 뷰에서도 SFC를 밀고 있는 것을 보면 (JSX보다는 그나마 깨끗해 보이지만) HTML, CSS, JS를 철저하게 분리하기 귀찮아하는 것은 20년 전 PHP 개발자들이나 지금의 JS 개발자들이나 마찬가지인 것 같아요.
XE 템플릿 문법은 이걸 서로 완벽하게 분리해야 한다는 입장이 가장 큰 힘을 얻었던 시기에 설계된 터라, 그 전의 개발자들은 물론 이후의 개발자들에게도 어렵다는 얘기를 계속 듣나 봅니다. ㅠㅠ
GraphQL로 API를 구성해서 공개 배포하려고 했으나 속도도 만족스럽지 않았지만 서드파티가 구현해서 배포하려니 호환성 유지하기가 지옥일 것 같아서 포기했습니다.
PHP를 다룰 수 있는 상황이 아니라면 API가 마땅치 않으니 react나 vue 사용은 불가능하거나 이걸 굳이?라고 할 정도로 극히 일부로 제한된다고 봐야합니다. 상황 상 jQuery로 바르는 게 최선일 것 같네요.
라이믹스 내 XE 템플릿 엔진 자체가 프레임워크라고 생각하시면 됩니다. 이보다 더 쉽게 만든다고 한다면 그게 코드로 개발하는 것에 대한 의미가 있을까 싶습니다.
그건 그렇지만 조금이라도 더 편한 방법이 없을까 싶어서 질문해봤습니다 ㅎ
모듈에서 Context클래스를 이용해서 선언한 함수들을 템플릿에서 사용할 수 있으며 템플릿에서 PHP코드를 사용하는 규칙도 정해져 있습니다.
따라서 이런 부분을 어느정도 익혀야 합니다.
그리고.. 리엑트던.. 뭐던 html 의 기본구조는 웹개발의 기초이기 때문에 익혀두시는게 더 낫습니다.