API란?
API란 Application Programming Interface의 약자로 두 애플리케이션 간의 서비스 계약을 의미하는데, 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의하고 있습니다. 쉽게 말하자면 소프트웨어들이 서로 대화할 때 사용되는 수단이라고 할 수 있으며, 웹사이트, IOS 앱, 안드로이드 앱 등에서 서버로부터 어떠한 내용을 가져오고 보낼 때, 클라이언트가 어떤 방법으로 요청을 보내야 하고, 서버는 어떤 방법으로 응답을 해야 하는지 정의된 마치 식당에서 정해둔 메뉴판과 같은 존재라고 할 수 있습니다.
API의 종류
API는 내부 API로 기업이나 연구 단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용하는 Private API와 개방형 API로 모두에게 공개되는 Public API 등이 존재합니다. 그중 OpenAPI라고 불리는 Public API의 종류 중 RESTful API, SOAP API, GraphQL API에 대해 간단히 설명하겠습니다.
RESTful API
RESTful API는 현재 가장 널리 사용되는 API로 HTTP 메서드와 URI를 통해 요청을 보내어 데이터를 조회, 추가, 수정, 삭제 할 수 있는 API입니다. (HTTP가 필수로 쓰이지는 않지만 대부분 HTTP를 이용)
메서드를 통해 어떤 작업을 수행할지 명시하고, URI를 통해 어떤 데이터에 접근할 것인지를 명시하는 방법으로 사용되기 때문에 여러 엔드포인트가 존재하며 이러한 엔드포인트에 요청을 보내면 대부분 JSON 형식으로 응답합니다.
엔드포인트란?
웹 애플리케이션에서 클라이언트가 서버에 요청을 보내는 특정 URL
SOAP API
SOAP API는 Simple Object Access Protocl의 약자로 이름에서 확인 가능하듯 프로토콜입니다. 많은 표준들이 정해져있어 RESTful API보다 복잡하고 웹 서비스 시나리오보다 기업용 애플리케이션 등의 보안적인 작업에서 주로 사용됩니다. 데이터 포맷을 JSON이 아닌 XML 형식으로 하기 때문에 띄어쓰기나 줄 바꿈 등에 민감합니다.
GraphQL API
GraphQL API는 Graph Query Language의 약자로 이름에서 확인 가능하듯 SQL과 같은 쿼리 언어입니다. 때문에 쿼리를 통해 데이터를 조회, 추가, 수정, 삭제 할 수 있습니다. 또한 RESTful API와 다르게 POST 메서드로 쿼리를 보내는 요청을 하기 때문에 단 하나의 엔드포인트를 사용하며 JSON 형식으로 응답합니다. 클라이언트가 필요한 데이터에 대한 쿼리를 선언하여 GraphQL에 넘기면 GraphQL은 쿼리를 해석하여 서버에서 필요한 데이터를 가져온 후 클라이언트에 해당 데이터를 반환하는 방식입니다.
이 외에도 다양한 API가 존재하며 각 프로그램의 특징에 맞는 API를 선택하여 소프트웨어를 만들 수 있습니다.
추후 포스팅에서 종류별 각 API에 대해 더 자세히 정리해보도록 하겠습니다.
참고
https://www.hanl.tech/blog/api란-api의-정의와-종류-장단점/
https://youtu.be/RI1LcuNgNj4?si=ow8ZyjiTvy97b_eI
'Web > 개발' 카테고리의 다른 글
JWT(JSON Web Token) PHP 로그인 구현 (0) | 2024.11.16 |
---|---|
JWT(JSON Web Token)란? (1) | 2024.11.15 |
Web Token이란? (1) | 2024.11.15 |
Web Template Engine이란? (0) | 2024.10.24 |