API란?

신동훈·2022년 8월 3일
0

Back-end

목록 보기
2/5

API

Application Programing Interface
어플리케이션 사이의 상호작용을 위한 인터페이스.
통신 방법에 따라 종류가 나뉜다.

API와 라이브러리를 헷갈리지 말자
API는 요청과 응답을 구성하는 방법에 대한 정보가 담겨있다. (추상적)
라이브러리는 API를 기반으로 기능을 제공하기 위해 실제로 구현된 것.

SOAP API

Simple Object Access Protocol
프로토콜*이기 때문에 많은 표준 룰이 존재하여 복잡하다.
하지만 표준 빌트인 컴플라이언스를 제공하는만큼 신뢰성이 높아 기업 등에서 선호한다.
XML문서 형식으로만 사용한다.

*프로토콜(Protocol): 컴퓨터 내부, 혹은 외부에서 데이터 교환 방식을 정의하는 규칙 체계
ex) HTTP, HTTPS, SOAP,FTP 등등

REST API

Representational State Transfer
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 것.
경량화에 맞춘 아키텍처 원칙 세트. 권장사항을 구현하는 것은 개발자이다. 보통 HTTP를 통해 데이터 전송이 이루어지며, HTML, JSON, XML 등 다양한 형식으로 메시지를 반환할 수 있다.
매우 유연하고 웹에 최적화되어 있으며, 브라우저 간의 호환성이 좋다.


출처 - 위쉬켓 블로그

RESTful API

다음 가지 아키텍쳐 가이드라인을 준수한 어플리케이션으 RESTful이다. REST를 쉽게 이해하여 사용하도록 만드는 것이다.

1. 클라이언트, 서버, 리소스로 구성된 클라이언트-서버 아키텍처가 필요합니다.
2. 요청이 통과하는 서버에 클라이언트 콘텐츠가 저장되지 않는 스테이트리스(stateless) 클라이언트-서버 커뮤니케이션이 필요합니다. 대신 세션의 상태에 대한 정보가 클라이언트에 저장됩니다.
3. 일부 클라이언트-서버 간 상호 작용의 필요성을 제거할 캐시 가능 데이터가 필요합니다.
4. 애플리케이션 요구 사항별로 다른 형식이 아닌, 표준화된 형식으로 정보를 전송할 수 있도록 구성 요소 간 통합된 인터페이스가 필요합니다. REST를 처음으로 제시한 Roy Fielding은 이를 “REST 아키텍처 스타일을 다른 네트워크 기반 스타일과 차별화하는 핵심적인 기능”이라고 설명합니다.
5. 클라이언트-서버 간의 상호 작용을 계층적으로 조정할 수 있도록 계층화된 시스템 제약이 필요합니다.
6. 실행 가능한 코드를 전송해 서버가 클라이언트의 기능을 확장할 수 있게 해주는 코드 온디맨드가 필요합니다. 단, 가시성이 감소할 수 있으므로 이는 선택적 가이드라인입니다.~~~~

profile
독학 정리

0개의 댓글