1 minute read

Day 43

strapi 소개 및 설치

strapi는 headless CMS로서 별도의 많은 코딩 없이 컨텐츠를 관리할 수 있게 해주는 시스템이다.

  • strapi 설치하기
  • strapi 회원가입하기
  • strapi user 정보 생성
  • strapi API 이용해보기

strapi 컬렉션 추가

  • 컬렉션 추가(post)
  • 추가된 컬렉션 API를 이용해서 불러오기
  • 권한 설정

strapi 인증, 인가, 권한

  • API를 이용하여 JWT 발급받기
  • 발급받은 JWT를 가지고 API를 이용하여 로그인해보기
  • strapi에서 권한 설정으로 허가되지 않은 접근 막기

나도 한다 백엔드! - CRUD

  • API를 이용하여 Create, Read, Update, Delete를 실습한다.

GraphQL

GraphQL이란?

  • 데이터를 불러오는 규칙이다. HTTP 프로토콜을 사용한다.
  • 데이터를 가져오는 방법이 REST API와 다르다.
  • REST API의 한계를 극복하기 위해 등장하였다.
  • 백엔드 개발자가 귀찮아지는 작업들이 꽤 있다.
  • GraphQL을 이용하는 서버가 잘 되어있으면 클라이언트 개발자는 매우 편하다.

Over-Fetching

  • 특정 데이터를 받기위해 필요없는 데이터까지 불러올 수 있다.

Under-Fetching

  • 필요한 데이터들을 받기위해 여러 API를 호출해야 한다.

GraphQL 사용법

  • GraphQL은 필요한 것만 받아올 수 있다.

필요한 것만 가져오기

REST API GraphQL
1 2

여러 API를 한 번에 가져오기

REST API GraphQL
3 4

GraphQL에서 지켜야할 규칙

  1. POST /graphql로 요청한다.
  2. 백엔드에서 타입을 정의해야 한다.

5

  1. 요청은 Query, 변경은 Mutation을 사용해야 한다.

6

GraphQL의 단점

  • learning curve가 REST API에 비해 높다.
  • HTTP 캐싱이 어렵다.
  • 필요한 필드를 모두 작성해야 한다.
  • 파일 업로드에 대한 명쾌한 방법이 없다. → REST API를 이용한다.

GraphQL 공식 문서

graphql

추가 팁

  • GraphQL은 객체에 대한 특정 필드를 요청하는 것이 무척 간단하다.
  • 쿼리와 결과가 정확히 동일한 형태이다.
  • 기존 REST 구조처럼 여러번 요청을 수행하는 대신 한 번의 요청으로 많은 데이터를 가져올 수 있다.
  • 필드에 인자를 전달하는 기능을 추가하면, 훨씬 다양한 일을 할 수 있다.
  • 별칭을 사용하여 필드의 결과를 원하는 이름으로 바꿀 수 있다.
  • query에 이름을 붙일 수 있다. → 서버에서 디버깅이나 로깅할 때 굉장히 편하다.
  • @include@skip 같은 지시어를 사용하여 특정 조건을 만족할 때만 값을 불러올 수 있다.

Categories:

Updated: