GraphQL, Apollo, Prisma 간단 소개

yoohl
yoohl
Jun 9 · Unlisted

GraphQL

  • API를 위한 쿼리 언어
  • Facebook에서 REST API의 대안으로 개발을 진행 해 온 프로젝트
  • 타입 기반 API 스키마 작성 가능
  • 데이터 요청의 유연함 (필요한 데이터만 요청 가능)
  • 클라이언트가 미리 선언한 구조대로 서버에 데이터를 요청하면, 서버는 요청받은 구조로 데이터를 반환하는 특징
  • 캐싱, 예외 처리에서 불편
  • GraphQL 기반의 Apollo, prisma 가 함께 성장중
type Query {
me: User
}
type User {
id: ID
name: String
}

Prisma

  • Prisma는 애플리케이션 구조의 전통적인 ORM을 대체하고 데이터베이스 작업을 단순화 한 도구
  • GraphQL 타입으로 DB 쿼리, 테이블을 자동으로 생성
  • 사용자가 GraphQL Schema만 설계하면 DB는 GraphQL Schema를 기반으로 자동 생성해주고 GraphQL 및 Admin 화면을 통해서 DB의 Schema와 데이터를 조작할 수 있다.

객체 관계 매핑(Object-relational mapping; ORM) 이란? 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법

Apollo

  • Apollo Client와 Apollo Server를 사용해 GraphQL 기반의 데이터를 용이하게 관리할 수 있다
  • 캐싱 및 쿼리 분석도구를 제공, Apollo Client는 React뿐만 아니라 Angular, Vue.js, iOS, Android 등 다양한 환경에서 사용할 수 있다.
  • React 와 결합 시 컴포넌트 자체에 Query를 녹여서 구현하여 편리

Apollo Client

  • apollo-boost : GraphQL 서버를 가지기 위해 모든걸 세팅해줌

Apollo Boost는 Apollo Client를 사용하기 시작하는 제로 구성 방식입니다. 권장 설정으로 구성된 InMemoryCache 및 HttpLink와 같은 적절한 기본값이 포함되어 있습니다.

  • react-apollo : 리액트와 아폴로 연결
  • react-apollo-hooks : 리액트 훅으로 아폴로 클라이언트 사용

Unlisted

    yoohl

    Written by

    yoohl

    UI/markup/Front-end

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade