예전에는 그냥 퍼블리셔로 통칭 되었을텐데 현재는 프론트앤드 개발자라는 아주 중요한 직업군으로 형성되어 있습니다. Web개발의 패러다임이 javascript와 Node.js로 인해 백앤드에서 프론트앤드쪽으로 넘어오게 되면서 프론트앤드 기술을 구현할 수 있는 개발자의 몸값이 상당히 높아지고 있는 것이 사실입니다. 그래서 많은 사람들이 프론트앤드로 전향을 많이하고 있는 추세인데.. 그런 프론트앤드 개발자에게 한가지 걸림돌이 있습니다. 프론트앤드를 주력으로 하지만 어찌되었든 백앤드도 구비를 하고 있어야 한다는 점입니다. Firebase, Amazon, Express 등등.. 백앤드를 구비하는 여러가지 방법이 있으나 그중에서 아주 쉽고 직관적이며 무료로(유료도 있음) 사용할 수 있는 STRAPI라는 백앤드 툴이 있어 소개를 해 볼까 합니다
간단히 소개한다면 STRAPI는 DB와 쉽게 연동해서 RESTful or GraphQL방식으로 데이터를 받고 내주는 백앤드 역활을 톡톡히 해주는 툴이라고 할 수 있습니다.
STRAPI
대표기능 소개
홈페이지에 나와있는 대표기능을 간단하게 정리해 보겠습니다.
headless CMS
CMS라고하면 저작물 관리 시스템(Content Management System)의 약자로 글이나 사진등의 컨텐츠를 등록/수정/삭제하면서 관리하는 시스템을 말하며 보통 워드프레스(Wordpress), 줌라, 제로보드, xpressengine, 그누보드등을 지칭한다고 보시면 됩니다. 하지만 요즘 트랜드는 CMS
에서 Headless CMS
로 넘어가고 있는 추세입니다.
그럼 CMS와 Headless CMS의 차이점이 무엇이냐! 간단히 설명하면 CMS
가 데이터베이스, 백앤드, 프론트앤드를 모두 갖추고 있는 하나의 완성된 시스템이라고 한다면 Headless CMS
은 그중에 프론트앤드를 뺀 CMS라고 보시면 됩니다. 보여주는 부분(VIEW)을 Head라고 지칭한것 입니다.
그러면 뭔가 더 빠졌으니 더 좋지 않은 것 아니냐???? 라고 생각할 수도 있겠지만 이 부분이 Headless CMS
의 중요포인트라고 보시면 됩니다. headless CMS에 어떠한 프론트앤드 프레임워크를 붙히더라도 자연스럽게 붙는 것입니다. 예를들면, Vue.js, React.js, Angular.js, javascript등.. 어떠한 것도 자연스럽게 붙혀서 CMS를 만들 수 있다는 뜻 입니다. Headless CMS가 백앤드를 책임지고 프론트앤드 개발자는 프론트앤드만 멋지게 구현하면 그만이닌까요. STRAPI가 그 백앤드 역활을 해줍니다.
Open Source
STRAPI는 MIT라이선스 입니다. 오픈소스 라이선스 중 가장 자유도가 높은 라이선스라고 보시면 됩니다. 다만 설치형 COMMUNITY일 경우에 해당하는 사항입니다.
홈페이지 Pricing정책 메뉴를 보시면 Enterprise의 서비스를 받으려면 비용지불을 해야하지만 그렇지 않다면 그냥 무료로도 사용할 수 있습니다.
직관적인 관리자 화면
컨텐츠를 직관적으로 관리할 수 있는 관리자 화면을 제공해 줍니다. 이 화면이 관리자 화면이지 서비스 화면은 아닙니다. 서비스화면은 원하는 데로 직접 구현을 해야 합니다.
관리자화면을 통해 컨텐츠를 관리할 수 있고 DB의 테이블을 생성할 수 있으며 플러그인을 추가/삭제하여 기능을 확장 할 수 있습니다.
RESTful or GraphQL
Headless CMS
의 중요한 사항으로 Headless CMS와 프론트앤드사이의 데이터를 주고받는 방식으로 API방식을 사용한다는 것입니다. 기본적으로 RESTful방식으로 주고받을 수 있으며 플러그인 추가로 GraphQL 까지도 지원이 가능합니다.
GET /articles
- 리스트 값을 가져옴GET /articles/:id
- 특정 ID의 상세값을 가져옴GET /articles/count
- 리스트의 건수를 가져옴POST /articles
- 글을 등록 함DELETE /articles/:id
- 해당 ID의 글을 삭제함PUT /articles/:id
- 해당 ID의 글을 업데이트 함
Self-hosted
Node.js만 설치되어 있으면 어디에서든 무료로 자체 호스팅을 할 수 있습니다.
다양한 데이터베이스 지원
STRAPI는 SQLite, MongoDB, MySQL, MariaDB, Postgres의 Databases를 쉽게 사용할 수 있게 지원합니다. Database를 지정하지 않으면 기본적으로 SQLite가 설정되어 사용할 수 있으며 간단한 처리는 이것만으로도 충분합니다. 만약 MongoDB, MySQL, MariaDB, Postgres의 다른 Database를 사용하려면 간단한 설정으로 쉽게 연결하여 사용할 수 있습니다.
그외에 STRAPI에는 다양한 기능들이 많이 있습니다. 이러한 기능들이 얼마나 유기적으로 편하게 사용할 수 있는지는 좀더 확인이 필요하지만 Github의 별점이 많은 것을 보면 간접적으로나마 한번 배워볼만한 툴이 아닐까 합니다.
다음 포스팅은 STRAPI를 설치하는 방법입니다.