API란?

API란?

API는 Application Programming Interface의 약자로, 서로 다른 소프트웨어 프로그램이나 서비스가 서로 통신하고 상호작용할 수 있는 방법을 제공하는 규약이다.

API는 크게 두 종류로 나뉜다. 하나는 운영체제, 데이터베이스 시스템, 라이브러리와 같은 소프트웨어 컴포넌트를 서로 통신하게 해주는 ‘로컬 API’, 다른 하나는 웹을 통해 서로 다른 서비스들이 상호작용할 수 있도록 하는 ‘웹 API’이다.

API의 주요 기능

  • 추상화: API는 복잡한 시스템의 내부 작동 방식을 숨기고, 사용자에게 간단한 인터페이스를 제공한다. 이는 개발자가 복잡한 코드를 작성할 필요 없이 시스템의 기능을 사용할 수 있게 해준다.
  • 모듈화: API를 통해 시스템의 특정 부분이나 기능을 독립적으로 개발하고 통합할 수 있다. 이는 효율적인 개발 및 유지보수를 가능하게 한다.
  • 통합: 다양한 프로그램, 시스템, 서비스가 API를 통해 서로 통신하고 상호작용할 수 있다. 이는 예를 들어, 웹사이트에서 사용자의 위치 정보를 가져와서 날씨 서비스 API를 통해 해당 위치의 날씨 정보를 제공하는 것과 같은 다양한 기능을 구현할 수 있게 해준다.

웹 API의 예로는 REST API와 SOAP API 등이 있으며, 각각은 웹 서비스가 서로 통신하는 방식을 정의한다.

REST API란?

REST (Representational State Transfer)는 웹 서비스간 통신을 위한 아키텍처 스타일 중 하나다. 이는 HTTP 프로토콜을 기반으로 데이터를 주고 받는 방식을 정의한다.

REST API (Application Programming Interface)는 이 REST 아키텍처를 따르는 웹 서비스 인터페이스를 말한다. 이를 사용하면 개발자들은 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 웹 리소스에 접근하고, 이를 통해 웹 서비스를 사용할 수 있다.

REST API의 주요 특징

  • 상태를 유지하지 않음 (Stateless): 각 요청은 독립적이며 이전 요청에 대한 정보를 저장하지 않는다. 따라서 각 요청이 필요한 모든 정보를 포함해야 한다.
  • 클라이언트-서버 구조: 클라이언트와 서버가 서로 독립적이고, 각각의 역할이 명확하게 구분된다. 클라이언트는 사용자 인터페이스와 사용자 인터렉션을 관리하고, 서버는 리소스 관리와 작업 처리를 담당한다.
  • 캐시 가능 (Cacheable): HTTP 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용할 수 있으며, 이에 따라 HTTP가 가진 캐싱 기능 등도 그대로 사용할 수 있다.
  • 계층화 (Layered System): 클라이언트는 직접 최종 서버에 연결되어 있지 않아도 된다. 중간 서버를 사용할 수 있으며 이를 통해 로드 밸런싱이나 공유 캐시 등을 활용할 수 있다.
  • Code On Demand (optional): 서버는 필요에 따라 실행 가능한 코드를 클라이언트에게 전송할 수 있다. 이는 선택사항으로 모든 REST 서비스에서 필요한 것은 아니다.

REST API는 웹 서비스 개발에서 널리 사용되는 방식이며, 그 이유는 표준 HTTP를 이용하므로 웹에 이미 존재하는 시스템을 그대로 활용할 수 있고, 상태를 유지하지 않는 특성 때문에 대규모 서비스에서 좋은 성능을 발휘하기 때문이다. 또한, RESTful API라는 용어도 자주 사용되는데 이는 REST 원칙을 잘 따르는 API를 의미한다.

0%