20220112_TIL : 데이터 통신과 API

권지현·2022년 1월 12일
0
post-thumbnail

DAY3. API에 대해 알아보자.

API를 알아보기 위해서 데이터 통신이라는 것을 이해해야하는데 내 컴퓨터 이외 다른 컴퓨터에서 데이터나 파일을 처리, 전송하고싶을 때 우리는 두 컴퓨터 사이를 이어주는 통신 프로토콜을(간략하게 '길') 통해 처리하게된다.

이때 크게 3가지의 길이 있는데,

  1. FTP : 파일을 전송을 목적으로 하는 길
  2. SMTP : 간단한 메일을 주고받을 수 있는 길
  3. ⭐️ HTTP : 웹 상에서 정보를 주고받을 수 있는 길
    -> 텍스트나 주로 HTML 문서를 주고받을 때 쓰인다.
    HTTP를 통해 요청과 응답을 주고받을 수 있다(프론트엔드와 백엔드). 프론트에서 요청한 정보를 벡엔드에서 응답해주고 이 과정으로 사용자가 웹에서 데이터들을 볼 수 있게 되는 것이다.

HTTP통신에 대해 조금 더 알아보자면,

프론트엔드에서 React를 이용해 코드를 작성할 때 State라는 변수를 활용해 저장한 데이터를 HTTP를 통해 벡엔드 컴퓨터에 데이터 저장을 텍스트로 요청하게되고,
백엔드 컴퓨터는 요청받은 작업이 수행되었다면 프론트엔드에게 작업 진행에 관해 상태코드와 텍스트로 응답해주어야한다.

🛠 Tip !

  • 주고 받는 텍스트 형태(데이터 형식 : 객체)가 JSON 파일
  • 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 그 결과를 세자리 숫자로 알려주며 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 서버 에러 이렇게 5개의 그룹으로 나뉜다.
    성공(200), 프론트엔드-에러(400), 백엔드-에러(500) 등을 볼 수 있는데, 더 많은 상태코드와 관련된 자료는 아래 링크를 참고하자.
    [HTTP STATUS CODE 바로가기]

이렇게 데이터를 프론트엔드와 백엔드가 작업을 주고받도록 해주는 것이 바로 API( = 어플리케이션 프로그래밍 인터페이스)이다. 하나의 요청에 응답할 각각의 API가 존재해야하는데 백엔드 개발자는 기본 데이터 처리기능(CRUD)이 포함된 각각의 API를 만든다.

🛠 REST-API(axios) vs Graphql-API(apollo-client)

이런 API는 두 가지 종류가 있는데, REST와 graphql이다.

  • REST-API : 모든 데이터를 전송(필요하지 않아도 받아야 한다는 점)
    🔧 CRUD 호출 메서드
    CREATE - method : POST
    READ - method : GET
    UPDATE - method : PUT
    DELETE - method : DELETE

  • graphql-API : 원하는 데이터만 요청,전송 가능
    🔧 CRUD 호출 메서드
    CREATE,UPDATE,DELETE - method : MUTATION
    READ - method : QUERY

💡 Tip !
코로나 정보 혹은 날씨와 같이 외부 혹은 공공기관과 같은 곳에서 정보를 받아올 경우도 있다.
이것을 외부/공공 API라고 부르는데 보통 REST-API로 만들어져있기 때문에 두가지 다 다룰 필요가 있다.

💡 API 연습이 필요하다면 ?
-> REST : POSTMAN,swagger
-> graphql : Playground

profile
FE 개발자 성장 기록 👩🏻‍💻

0개의 댓글