Strapi가 무엇인가???
Strapi는 Node JS 기반으로 손쉽고 빠르게 API를 만들어주는 라이브러리이다.
Strapi에 대해서 소개하는 30분짜리 영상을 본 적이 있는데 그 영상을 보고 나서 든 생각은 자신이 자바스크립트에 익숙하다면 최고의 MVP 용도의 백엔드 라이브러리라고 생각이 들었다.
소개 영상에서는 코딩을 하는 시간이 5분이 채 안된다. 단지 클릭 몇 번으로 Rest API를 쉽고 간단하게 만들 수 있으며, 모델 & 관계 정의, 권한 설정, 인증 같은 API 서버에서 필수적인 기능들이 이미 구현되어 있으며 클릭 몇 번만 하면 간단한 커스텀도 가능해 보였다.
파이썬 장고를 경험해 본 사람은 알것이다. 장고와 DRF를 이용하면 간단하게 CRUD정도는 만들 수 있다는 것을. 하지만 이 툴은 코드를 칠 필요가 없이 모델만 정의해놓으면 CRUD가 완성되어 있다.
Strapi 맛보기
NodeJS 기반이므로 npm을 통해서 strapi를 설치했다. strapi와 관련된 명렁어를 실행하기 위해서는 yarn도 추가로 설치해야 한다.
npm install strapi -g
npm install yarn -g
strapi와 yarn을 설치했다면 프로젝트를 만들어야 한다.
yarn create strapi-app strapi-practice
해당 명령어를 이용해 strapi-practice라는 strapi app을 만들었다. 이것저것 자동으로 설치되고 나서 DB를 무엇을 사용할지 묻는다. 나는 Mysql을 사용하기로 했다.
? Choose your installation type Custom (manual settings)
? Choose your default database client mysql
? Database name: DB schema 이름
? Host: DB서버 주소
? Port: DB서버 포트
? Username: DB 접속 유저
? Password: DB 접속 유저 비밀번호
? Enable SSL connection: Yes
설치가 끝나고 나면 몇가지 명령어에 대한 소개가 나온다.
Available commands in your project:
yarn develop
Start Strapi in watch mode.
yarn start
Start Strapi without watch mode.
yarn build
Build Strapi admin panel.
yarn strapi
Display all available commands.
이제 strapi app을 실행해보자.
cd strapi-practice
yarn develop
yarn run v1.22.10
$ strapi develop
Building your admin UI with development configuration ...
✔ Webpack
Compiled successfully in 18.21s
Project information
┌────────────────────┬──────────────────────────────────────────────────┐
│ Time │ Mon Dec 28 2020 15:05:51 GMT+0900 (GMT+09:00) │
│ Launched in │ 23313 ms │
│ Environment │ development │
│ Process PID │ 5258 │
│ Version │ 3.4.1 (node v12.19.0) │
│ Edition │ Community │
└────────────────────┴──────────────────────────────────────────────────┘
Actions available
One more thing...
Create your first administrator 💻 by going to the administration panel at:
┌─────────────────────────────┐
│ http://localhost:1337/admin │
└─────────────────────────────┘
yarn develop을 실행하는 순간 내장되어있는 webpack이 실행된다. 아마 starpi에서 지원하는 admin 페이지를 위한 frontend 코드가 webpack을 거치는 듯하다.
잠시 후 strapi에서 창이 하나 뜰 것이다.
해당 form은 유저 정보이자 admin 계정을 간단하게 등록하는 것이다. 회원가입하듯이 입력하면 된다.
등록을 누르면 진짜 strapi admin 페이지가 나오게 된다.
강력한 기능을 확인하기 위해 Create Your First Content-type 버튼을 눌러보자.
해당 부분은 데이터 베이스의 table을 만드는 과정이라고 생각하면 된다. 만약 Java를 예로 들면 Entity를 만드는 과정이며, MVC 패턴을 안다면 Model을 만드는 과정이라고 이해하면 될듯하다.
Display name은 table 이름이 될 것이다. 간단하게 게시판 기능을 만든다는 생각으로 posts라고 이름을 지어보겠다. 다음을 눌러주자.
해당 부분은 데이터베이스 table 안의 column을 설정하는 부분이다.
게시판이라고 생각하고 간단하게 Number(게시물 no), Text(제목, 내용) 정도만 추가해 보자. 먼저 텍스트를 눌러보자.
참고로 게시물 No는 자동으로 생성이 되니 타입을 추가하지 않아도 된다.
Name자리가 column name이 될 것이고 short text, long text 타입을 정할 수 있다. Add another field버튼을 눌러서 이번에는 제목을 설정해보자. content와 똑같이 text를 눌러서 들어가 보자.
제목은 short text 타입을 선택했다. 선택하고 나서 알게 된 것인데 각 타입에 대한 간단한 설명들도 볼 수가 있다. 타입 고를 때 선택 장애를 덜어 줄 것이다. finish를 누르면 지금까지 만든 column에 대한 정보가 나온다.
이제 저장을 눌러보고 어떤 일이 생기는지 확인해보자. 서버가 재실행될 것이다. 그냥 기다리고 나면 좌측 Collection types에 Posts가 추가된 것을 볼 수 있다.
Posts를 클릭해서 들어가면 우리가 만든 Content, Title 외에도 3가지 속성이 추가되어 있다. 자동으로 생성되는 Id값(게시물 No), published_at(발행일), State(상태)가 추가되어 있다.
혹시 몰라서 Mysql workbench로 DB를 조회했는데 역시 여러 테이블들이 자동으로 추가되어 있었다. 마치 더 간편한 Django를 맛보는 느낌이다. 지금까지 우리는 코딩을 단 한 줄도 하지 않았다. 마우스 클릭 몇 번으로 테이블도 추가할 수 있다. 정말 편하다.
지금까지 느낀 strapi의 장점을 정리한다.
1. 클릭 몇번으로 데이터 베이스 테이블을 만들 수 있다. Django보다 더 편하다. (migration 기능을 안써도 된다.)
2. 서비스를 만들면서 admin이 기본으로 제공된다. admin을 만들기위해서 시간을 투자할 필요가 없다.
다음 글에서는 strapi admin을 통해서 post를 몇개 만들고 rest-api로 post들을 가져오는 것을 해보겠다.
'프로그래밍' 카테고리의 다른 글
Strapi 생각 나는대로 적는 사용기 (0) | 2022.03.25 |
---|---|
14일 유튜브 접속 오류 원인은?? (5) | 2020.12.15 |
파이썬 기초 - 자료구조(list, tuple, dict) (0) | 2020.11.18 |
테슬라 스페이스X 발사. 디스플레이 환경은 Chromium, JavaScript기반 직접 개발해 사용. (0) | 2020.11.17 |
아마존 웹 서비스 - Elastic Beanstalk (0) | 2020.11.16 |
댓글