[기술면접] REST API, GraphQL API

한재창·2023년 5월 6일
0
post-thumbnail

api(Application Programming Interface)

  • Application
  • Programming
  • Interface : 내가 무언가와 상호작용 하는 방법을 뜻한다.
    • ex : 내가 텔레비전을 볼 때 on/off 하려면 버튼을 눌러야 하는데 이 버튼이 인터페이스이다.
  • api는 어플리케이션, 서버, 웹사이트를 만든 사람이 만들어서 내놓은 거고, 사람들은 api로 그것들과 상호작용 할 수 있다.
  • api는 종류가 많은데 각 api의 차이점은 해당 api의 데이터에 어떻게 접근하는지, 서버와 의사소통하는 방법이 있다.

REST

  • 서로 다른 서버간의 통신을 할 때 통신이 URL로 이루어져 있다.
    • ex : jaechangg.com/v2/todos
  • 조직화 되어있고, 이해/사용하기 쉽다.
  • URL에 동사를 넣는 것은 좋은 관행이 아니다. (create, upload ...)
  • GET, POST, DELETE, PUT, PATCH 등의 메소드를 사용할 수 있다.

GraphQL

  • domain-specification(규격) 언어
  • 사람들이 원하는 방식대로 구현하도록 하는 언어
  • over-fetching(너무 많은 data를 받는 것) 문제점을 해결, 즉 필요한 data만 받아온다.
    • ex : title, image, id, url 의 JSON 데이터만 받아오고 싶은데 사용하지 않는 것들도 받아올 때 문제를 해결해준다.
  • underfetching(사용할 데이터가 없는 것) 문제점을 해결해준다.
    • ex : 영화 장르를 화면에 보여주고 싶은데 genre의 JSON 데이터가 id 값으로 되어있고, id 값으로 다른 URL에 요청해야 원하는 데이터를 얻을 수 있을때 이 점을 해결해준다.
      const id = fetch('https://jaechangg/v2/movies').then((res) => res.items[0].genre[1]))
      const genre = fetch('https://jaechangg/v2/movie_detail/genre').then((res) => res.data))
      const movie_genre = genre.filter((gen) => gen.id === id))


profile
취준 개발자

0개의 댓글