[KUIT] 9주차 워크북 보충 - API endpoint, Axios와 Fetch의 차이, GraphQL

2024. 6. 5. 16:16·KUIT

아래 글은 KUIT 웹 부원분들을 대상으로 작성한 글입니다.


API endpoint의 뜻은?

→ 요청을 보내고자하는 URL


Axios와 Fetch의 차이

1. 에러 처리

axios와 fetch는 둘 다 Promise를 이용해 비동기 요청을 처리

 

axios: 네트워크 오류가 발생하거나, HTTP 상태코드가 200~299가 아니면 Promise를 reject 시

fetch: 네트워크 오류가 발생했을 때만 Promise를 reject

-> axios처럼 상태 코드가 200~299 사이가 아닐 때도 에러 처리를 하고 싶다면, Response.ok를 활용해야 

 

2. 헤더

axios는 요청 헤더에 ‘Content-Type: application/json을 자동으로 추가(fetch는 직접 추가해야)

 

브라우저 환경에서 Content-Type이 aplication/json이면 대부분의 경우 Preflight 절차를 거침

→ 백엔드에서 Preflight 절차를 처리하는 코드가 없을 때 문제가 될 수 있음

 

(출처: Instagram devy.bee 계정)

 


GraphQL

GraphQL은 API를 위한 쿼리 언어이며 타입 시스템을 사용하여 쿼리를 실행하는 서버 사이드 런타임

 

GraphQL은 RESTful API와 달리

 

- GraphQL은 보통 하나의 엔드포인트를 가진다. → 하나의 엔드포인트에 다른 쿼리를 사용해 요청한다.

- GraphQL은 요청할 때 사용하는 쿼리에 따라 다른 응답을 받을 수 있다.

- GraphQL은 원하는 데이터만 받을 수 있다.

 

예시

// GraphQL request
query {
    person(personID: 1) {
        name
        height
        mass
    }
}

// GraphQL response
{
    "data": {
        "person": {
            "name": "Luke Skywalker",
            "height": 172,
            "mass": 77
        }
    }
}

 

장점 - HTTP 요청 횟수와 응답 사이즈를 줄일 수 있다.

단점 - query로 인해 요청의 크기가 Restful보다 커질 수 있다, 캐싱이 REST보다 복잡하다.

 

출처: (https://hahahoho5915.tistory.com/63)

저작자표시 비영리 변경금지 (새창열림)

'KUIT' 카테고리의 다른 글

[KUIT] 2024-1 웹 파트장 후기  (29) 2024.06.06
[KUIT] 10주차 보충 - 토큰 저장 위치, 세션 인증 방식과 JWT, .env 파일  (1) 2024.06.06
[KUIT] 8주차 워크북 보충 - 전역 상태 관리 라이브러리 정리  (0) 2024.06.05
[KUIT] 7주차 워크북 보충  (0) 2024.05.16
[KUIT] 6주차 워크북 보충  (0) 2024.05.10
'KUIT' 카테고리의 다른 글
  • [KUIT] 2024-1 웹 파트장 후기
  • [KUIT] 10주차 보충 - 토큰 저장 위치, 세션 인증 방식과 JWT, .env 파일
  • [KUIT] 8주차 워크북 보충 - 전역 상태 관리 라이브러리 정리
  • [KUIT] 7주차 워크북 보충
퀵차분
퀵차분
Web Developer 🥐
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (178)
      • Frontend (31)
      • Fedify (4)
      • Study (42)
        • NestJS (2)
        • Node.js (3)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (21)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (10)
        • crohasang_page (3)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    타입스크립트
    알고리즘
    next.js
    프론트엔드
    HTML
    리액트
    KUIT
    백준
    javascript
    자바스크립트
    음악추천
    프로그래머스
    프로그래머스 자바스크립트
    오블완
    typescript
    fedify
    인공지능
    시스템프로그래밍
    react
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[KUIT] 9주차 워크북 보충 - API endpoint, Axios와 Fetch의 차이, GraphQL
상단으로

티스토리툴바