API & HTTP

J·2024년 1월 29일
0

기획

목록 보기
7/7
post-thumbnail

출처 : Postman

API

소프트웨어나 애플리케이션 간의 상호작용을 가능하게 하는 도구와 규약의 집합

API는 서로 다른 소프트웨어 시스템들이 데이터를 교환하고 기능을 공유할 수 있도록 함으로써, 프로그램이나 애플리케이션의 확장성과 연동성을 향상시킨다.

날씨 및 미세먼지 정도를 측정해 오늘 입을 옷차림과 미세먼지 농도를 알려주는 앱을 개발한다는 가정을 할 때, 매번 날씨 사이트에 들어가 그 때 그 때 정보를 가져다가 알려주는 방법은 매우 비효율적이다.
이 경우, 기상청에서 제공하는 공공데이터 API를 활용해 우리는 날씨 데이터를 가져올 수 있고, 그 중에서도 필요로 하는 데이터들을 취사 선택하여 활용할 수 있다.
이것이 API가 가지는 데이터 교환 및 기능 공유, 애플리케이션의 확장성과 연동성의 특징을 의미한다.

사용자(클라이언트)는 API를 통해 서버에 요청을 하게 되고, 서버는 필요에 따라 데이터베이스와 상호작용하여 필요 데이터를 취해 다시 클라이언트에 응답을 하게 된다. 이 응답은 주로 JSON이나 XML의 형태로 전송된다.
이러한 API 요청은 주로 HTTP 요청 방식으로 이루어지게 된다.


출처 : techtarget.com

HTTP

HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
*프로토콜 : 컴퓨터 내부, 혹은 컴퓨터 간 데이터 교환방식을 정의하는 규칙 체계

HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트 - 서버 프로토콜이기도 하다.
즉 웹 상에서 이루어지는 대부분의 요청 - 응답은 이 HTTP를 통해 이루어진다.

HTTP는 다음과 같은 몇 가지 특징을 갖고 있다.

무상태성(Stateless)

  • 클라이언트의 요청이 이루어진다면 서버는 응답을 하게 되고, 서버는 이 요청에 대한 정보를 기억하지 않는다.
    즉 각 요청은 항상 독립적으로 처리되며, 이전 요청과의 연결 및 상태 정보를 저장하지 않는다.

비연결성(Connectionless)

  • 클라이언트가 요청을 하고 서버가 응답을 했다면 그 이후 바로 연결을 끊는다.
    이는 앞서 언급한 무상태성과 연관이 있는데, 각 요청과 응답이 모두 독립적으로 실행되기 때문에 서버는 클라이언트와 지속적인 연결을 맺을 필요가 없다. 또한 이로써 서버의 자원 부담도 줄이고 보다 효율적으로 클라이언트의 요청을 처리할 수 있게 되는 이점을 갖게 된다.

HTTP 메서드

  • HTTP 메서드는 클라이언트가 서버에게 어떠한 종류의 요청을 하는지 명시하는 걸 의미한다.
  • 4가지 대표적인 메서드가 존재한다.
    GET : 데이터 조회
    POST : 데이터 생성
    PUT : 데이터 수정
    DELETE : 데이터 삭제

응답 상태 코드

  • 우선 클라이언트가 요청을 했다면 서버는 무조건 응답을 해야 한다. 그 응답이 성공적으로 이루어졌는지 또다른 문제가 있는지 식별하기 위한 상태 코드가 존재한다.
  • 대표적인 3 종류의 상태 코드가 있다.
    200번대 : 요청이 정상적으로 이루어짐
    400번대 : 클라이언트(요청) 쪽 오류가 발생함
    500번대 : 서버(응답) 쪽 오류가 발생함

0개의 댓글