API (Application Programming Interface)를 사용하여 컴퓨터 프로그래머는 게시 된 소프트웨어 모듈 및 서비스의 기능에 액세스 할 수 있습니다. API는 새로운 기능으로 기존 응용 프로그램을 확장하고 다른 소프트웨어 구성 요소 위에 완전히 새로운 응용 프로그램을 빌드하는 데 사용할 수있는 데이터 구조 및 서브 루틴 호출을 정의합니다. 이러한 API 중 일부는 특히 네트워크 프로그래밍을 지원 합니다 .
네트워크 프로그래밍은 인터넷을 비롯한 컴퓨터 네트워크를 통해 연결하고 통신하는 응용 프로그램 용 소프트웨어 개발 유형입니다. 네트워크 API는 프로토콜 및 재사용 가능한 소프트웨어 라이브러리에 진입 점을 제공합니다. 네트워크 API는 웹 브라우저, 웹 데이터베이스 및 많은 모바일 응용 프로그램을 지원합니다. 이들은 다양한 프로그래밍 언어와 운영 체제에서 널리 지원됩니다.
소켓 프로그래밍
전통적인 네트워크 프로그래밍은 클라이언트 - 서버 모델을 따랐습니다. 클라이언트 - 서버 네트워킹에 사용되는 기본 API는 운영 체제에 내장 된 소켓 라이브러리에서 구현되었습니다. 버클리 소켓 과 Windows 소켓 (Winsock) API는 수년 동안 소켓 프로그래밍을위한 두 가지 기본 표준이었습니다.
원격 프로 시저 호출
RPC API는 응용 프로그램이 메시지를 보내는 대신 원격 장치에서 기능을 호출 할 수있는 기능을 추가하여 기본 네트워크 프로그래밍 기술을 확장합니다. World Wide Web (WWW) 에서의 폭발적인 성장으로 XML-RPC 는 RPC의 인기있는 메커니즘 중 하나로 부상했습니다.
SOAP (Simple Object Access Protocol)
SOAP은 1990 년대 말 XML을 메시지 형식으로 사용하고 HTTP (HyperText Transfer Protocol) 를 전송 수단으로 사용하는 네트워크 프로토콜 로 개발되었습니다. SOAP은 웹 서비스 프로그래머를 충실히 따르며 엔터프라이즈 응용 프로그램에 널리 사용되었습니다.
Representational State Transfer (REST)
REST는 최근에 장면에 도착한 웹 서비스도 지원하는 또 다른 프로그래밍 모델입니다. SOAP과 마찬가지로 REST API는 HTTP를 사용하지만 XML 대신 REST 응용 프로그램은 JSON (Java Object Notation)을 대신 선택합니다. REST와 SOAP은 네트워크 프로그래머를위한 주요 고려 사항 인 상태 관리 및 보안에 대한 접근 방식이 크게 다릅니다. 모바일 앱은 네트워크 API를 사용할 수도 있고 사용하지 않을 수도 있지만 REST를 자주 사용하는 앱입니다.
API의 미래
SOAP과 REST는 계속해서 새로운 웹 서비스 개발에 적극적으로 사용됩니다. SOAP보다 훨씬 새로운 기술이기 때문에 REST는 API 개발의 다른 부분을 발전시키고 생산할 가능성이 더 큽니다.
운영 체제는 또한 많은 새로운 네트워크 API 기술을 지원하도록 진화했습니다. 예를 들어, Windows 10과 같은 최신 운영 체제에서는 소켓이 RESTful 스타일 네트워크 프로그래밍을 위해 위에 겹쳐진 HTTP 및 기타 추가 지원 기능을 갖춘 핵심 API로 계속 사용되고 있습니다.
컴퓨터 분야에서 종종 그렇듯이, 최신 기술은 오래된 기술보다 훨씬 빨리 출시되는 경향이 있습니다. 클라우드 컴퓨팅 과 IoT (Internet of Things) 분야에서 특히 흥미로운 새로운 API 개발을 기대하십시오. IoT ( 장치 정보 및 사용 모델)는 기존의 네트워크 프로그래밍 환경과 크게 다릅니다.