컴퓨터 용어 API(Application Programming Interface)
안녕하세요. 오늘은 컴퓨터 용어인 API에 대해서 알아보겠습니다. 인터넷을 사용할때에도 카카오톡을 사용할때에도 API 라는 용어는 어렵지 않게 보게 됩니다. API는 무엇이고 API를 왜 사용하는지에 대해서 알아보겠습니다.
API란 무엇인가?
API란 Application Programming Interface 의 약자로 응용 프로그램에서 다른 응용 프로그램과 상호 작용할수 있도록 제공되는 인터페이스를 말합니다.
API를 이용하면 응용 프로그램에서 다른 응용프로그램의 기능을 호출하거나 데이터를 교환할수 있습니다.
예를들면 페이스북 API를 사용하면 개발자들은 페이스북 데이터와 기능을 사용하여 자신의 애플리케이션을 개발할수 있습니다.
REST API
REST API는 "Representational State Transfer" 의 약자로, HTTP 프로토콜을 사용하여 데이터를 주고 받는 API 입니다. REST API는 일반적으로 웹 서비스에서 사용되며, 웹 브라우저에서 쉽게 사용할수 있습니다.
REST API는 자원, 메서드, 표현식, 상태 전이 등의 원칙을 따릅니다.
자원
REST API에서 자원은 URI(Uniform Resource Identifier)로 표현됩니다. 예를 들어, 페이스북의 사용자 프로필은 "HTTPS://graph.facebook.com/{user-id}" 와 같은 URI로 표현됩니다.
메서드
REST API 에서 메서드는 HTTP 메서드(GET, POST, PUT, DELETE 등) 로 표현됩니다. 예를 들어 GET 메서드는 자원을 조회할때 POST 메서드는 자원을 생성할 때 사용됩니다.
표현식
REST API 에서 표현식은 클라이언트가 요청한 자원의 표현 방법을 나타냅니다. 예을 들어 JSON, XML 등의 형식으로 표현될 수 있습니다.
상태 전이
REST API에서 상태 전이는 클라이언트가 요청한 자원과 관련된 상태 전이를 나타냅니다. 예를 들어 자원을 수정할 때는 PUT 메서드를 사용하며, 자원을 삭제할 때는 DELETE 메서드를 사용합니다.
SOAP API
SOAP API는 "Simple Object Access Protocol"의 약자로, XML 기반의 메시지 교환 프로토콜입니다. SOAP API는 원격 프로시저 호출(RPC) 방식을 따르며, 다른 애플리케이션 간의 통신에 사용됩니다.
메시지
SOAP API에서 메시지는 XML 형식으로 표현됩니다. 메시지에는 요청과 응답이 모두 포함됩니다.
WSDL
SOAP API에서 WSDL(Web Services Description Language)은 서비스의 인터페이스와 메시지 형식을 정의하는 XML 문서입니다. WSDL은 클라이언트가 서비스에 대한 정보를 얻고, 요청과 응답 메시지를 생성하는 데 사용됩니다.
UDDI
UDDI(Universal Description, Discovery and Integration)는 서비스를 검색하고 사용할 수 있도록 하는 XML 기반의 디렉토리 서비스입니다. UDDI는 SOAP API에서 사용되며, 클라이언트는 UDDI를 사용하여 서비스를 검색하고, WSDL을 사용하여 서비스에 연결할 수 있습니다.
GraphQL API
GraphQL API는 Facebook에서 개발한 API로, REST API의 한계를 극복하기 위해 만들어졌습니다. GraphQL API는 클라이언트가 필요한 데이터만 요청할 수 있어, 불필요한 데이터를 전송하지 않아 네트워크 부하를 줄일 수 있습니다.
쿼리
GraphQL API에서 쿼리는 클라이언트가 서버로 보내는 요청 메시지입니다. 쿼리는 클라이언트가 필요한 데이터를 정확하게 지정할 수 있어, 불필요한 데이터를 전송하지 않아 네트워크 부하를 줄일 수 있습니다.
스키마
GraphQL API에서 스키마는 서비스의 타입과 필드를 정의하는 문서입니다. 스키마는 클라이언트가 요청할 수 있는 데이터의 종류와 형식을 정의합니다.
뮤테이션
GraphQL API에서 뮤테이션은 서버에서 데이터를 수정하거나 삭제하는 작업을 수행하는 메시지입니다. 뮤테이션은 POST 메서드를 사용하여 전송됩니다.
결론
API는 다른 애플리케이션과의 상호작용을 통해 데이터를 공유하고, 서비스를 제공하는 데 사용되는 중요한 기술입니다. REST API, SOAP API, GraphQL API는 각각 다른 방식으로 데이터를 주고받습니다. 개발자들은 서비스에 맞는 적절한 API를 선택하여 개발을 진행해야 합니다.