API는 소프트웨어 애플리케이션이 서로 상호작용할 수 있도록 하는 일련의 규칙과 정의를 의미한다.

 

API는 다양한 시스템과 응용 프로그램 간의 데이터 교환 및 기능 호출을 가능하게 하는데,

특히 QA는 클라이언트의 요청에 대한 서버의 응답을 검증할 때 많이 사용한다.

 

동시에 API엔드포인트에 요청 부하를 발생시켜 API 성능을 확인하거나 보안테스트가 가능하고

FE나 클라이언트가 구축되기 전, 백엔드 시스템의 내부 설계 및 통합이 완료된 후

API 엔드포인트에 대한 테스트를 수행함으로서, 개발 초기 이슈 대응을 통해 개발 생명주기를 줄일 수 있다.

 

이를 통해 초기 품질 확보 및 API성능 향상 및 개선이 가능하기 때문에 API에 대한 지식이 있으면 좋다.


API의 구조

API의 구조는 주로 요청과 응답으로 구성된다.

요청은 클라이언트에서 서버로 보내는 메시지를 의미하고, 응답은 서버에서 클라이언트로 반환하는 메시지를 의미한다.

  1. 엔드포인트(Endpoint) : API의 URL로, 특정 리소스에 접근하기 위해 사용된다.
  2. HTTP 메서드(HTTP Methods) : API 요청에서 수행할 작업을 의미한다.
  3. 헤더(Headers) : 요청 및 응답의 메타 데이터를 포함한다.
  4. 본문(Body) : 요청 또는 응답의 실제 데이터를 포함한다.
  5. 상태 코드(Status Codes) : 응답의 결과를 의미한다.

POSTMAN 에서 각 내용의 위치


API의 종류

  1. SOUP API
    • 그 자체가 프로토콜이며, XML을 사용하여 클라이언트와 서버간 메시지를 교환한다.
    • 웹 서비스의 통신에 주로 사용되었다.
    • 강력한 보안 및 츠랜잭션 관리 기능을 제공한다.
    • 유연성이 떨어져 과거에 많이 사용되었다.
  2. RPC API
    • 원격 프로시저 호출이다.
    • 클라이언트가 메서드를 호출하면, 서버에서 함수나 프로시저를 완료 후 호출 결과를 클라이언트로 전송한다.
    • 여러가지 RPC API 유형이 있지만, 구글에서 개발한 고성능 RPC(gRPC)를 많이 사용한다.
    • 대기시간이 낮지만 처리량이 높다는 장점이 있다.
  3. Websocket API
    • JSON을 사용한 데이터를 전달하는 최신 웹 API
    • 요청을 받고 응답하는 REST API와 달리, 클라이언트와 서버간 양방향 통신을 지원한다.
    • 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있다는 장점이 있다.
  4. REST API
    • HTTP프로토콜 기반 API로, 웹에서 가장 많이 사용되고 최적화되어있다.
    • 리소스는 API로 표현하고 리소스 상태는 HTTP 메소드를 활용해 구분한다.
    • JSON 을 활용하여 클라이언트가 서버에 요청을 데이터로 전송한다.
    • 서버는 내부 함수를 사용하여 출력 데이터를 클라이언트로 반환한다.

API의 유형.

API는 접근 범위와 사용 목적에 따라 여러 유형으로 나뉘어진다.

  1. Private API
    • 외부에 노출되지 않는, 조직 내부에서만 사용하도록 제한된 API
    • 내부 시스템 간의 통신이므로, 보안이 매우 중요하다.
  2. Public API
    • 누구나 사용할 수 있도록 공개된 API.
    • Open API라고도 불리며, 개발자 포털이나 웹사이트를 통해 접근 가능하다.
  3. Partner API
    • 일부 유저에게만 접근권한이 부여된 API.
    • 일반적으로 B2B 파트너 관계에서 주로 사용된다.
  4. Internal API
    • 조직 내 다양한 팀 또는 부서간 통신을 위해 사용되는 API
    • 일반적으로 재사용 가능성이 높아 개발 효율성을 높이고 중복 코드를 줄이는 역할을 한다.
  5. Composite API
    • 여러 API의 요청을 결합하여, 하나의 호출로 응답하는 API
    • 호출 수가 최소한으로 유지되어, 데이터 사용량을 줄일 수 있고, 애플리케이션 효율성이 높아진다.
    • 묶음으로 제공되는 애플리케이션에 주로 사용된다.