[TIL] REST API와 GraphQL?

link717·2020년 12월 17일
0

TIL

목록 보기
24/53
post-thumbnail

🥝 REST API?

REpresentational States Transfer Apllication Programming Interface

REST는 프론트엔드가 필요한 정보를 서버에게 요청하는 통신 방식으로 해당 통신을 통해 정해진 구조의 정보를 받을 수 있다. 해당 요청만 보고 각 요청이 어떤 동작이나 정보를 위한 것인지를 명시적으로 알 수 있다는 장점이 있다.

다만 정해진 구조의 정보를 받는다는 것은 불필요한 데이터까지 전달받을 수 있다는 것을 의미하기도 한다. 그렇다고 모든 경우의 수를 생각하여 API를 만드는 것은 사실상 불가능하기 때문에 그 대안으로 나타난 것이 GraphQL이다.

🥝 REST API의 단점

1) Over-fetching

  • 필요한 정보보다 더 많은 데이터를 전달 받음
  • 불필요한 리소스 낭비가 발생
  • 필요한 정보만 골라내는 추가 작업이 발생

2) Under-fetching

  • 필요한 데이터를 만들기 위해 여러번의 호출이 필요
  • 추가적인 리소스 요청이 발생
  • 여러 요청을 통해 전달받은 정보를 조합하는 추가 작업이 발생

3) 기타

  • API마다 서로 다른 URI가 존재하므로 일일이 이름을 짓는 수고가 필요하고
    사용시에는 URI를 일일이 확인해야하는 번거로움이 있다.

🍒 GraphQL?

Graph Query Languag로 여기서 Query Language는 데이터베이스 또는 데이터 관리 시스템에 접근하기 위한 언어를 의미한다.

GraphQL은 Server API로 정보를 주고받는 것에 특화된 Query Language로 프론트엔드가 필요한 정보를 원하는 구조대로 받을 수 있도록 정보를 전달하는 역할을 한다.

🍒GraphQL이 만들어진 이유?

ios, Android 등 다양한 기기에서 필요한 정보의 형태가 조금씩 달랐는데 기존의 REST API로는 이 것을 일일이 구현하는 것이 힘든 단점이 있었다. 그래서 정보를 요청하는 쪽에선 원하는 형태로 가져오고 수정할 수 있는 Query Language를 만들게 되었다

🍒 GraphQL의 장점

REST API의 단점인 Over-fetching, Under-fetching의 이슈가 없으며 사용자가 직접 어떤 데이터가 필요한지 명시할 수 있어 응답받을 데이터 구조를 효율적으로 구성할 수 있다. 또한 단 1개의 URI만 존재한다.

🍒 Operation type

1) Query: 데이터 조회
2) Mutation: 데이터 수정
3) Subscription: 주로 실시간애플리케이션 구현을 위해 사용

🥑 최종 정리

출처 - YOUTUBE 퉁퉁코딩 (https://youtu.be/xiE9-S7s9rs)

profile
Turtle Never stop

0개의 댓글