네트워크 응용 프로그램 프로그래밍 인터페이스 (API)

API (Application Programming Interface)를 사용하여 컴퓨터 프로그래머는 게시 된 소프트웨어 모듈 및 서비스의 기능에 액세스 할 수 있습니다. API는 새로운 기능으로 기존 응용 프로그램을 확장하고 다른 소프트웨어 구성 요소 위에 완전히 새로운 응용 프로그램을 빌드하는 데 사용할 수있는 데이터 구조 및 서브 루틴 호출을 정의합니다. 이러한 API 중 일부는 특히 네트워크 프로그래밍을 지원 합니다 .

네트워크 프로그래밍은 인터넷을 비롯한 컴퓨터 네트워크를 통해 연결하고 통신하는 응용 프로그램 용 소프트웨어 개발 유형입니다. 네트워크 API는 프로토콜 및 재사용 가능한 소프트웨어 라이브러리에 진입 점을 제공합니다. 네트워크 API는 웹 브라우저, 웹 데이터베이스 및 많은 모바일 응용 프로그램을 지원합니다. 이들은 다양한 프로그래밍 언어와 운영 체제에서 널리 지원됩니다.

소켓 프로그래밍

전통적인 네트워크 프로그래밍은 클라이언트 - 서버 모델을 따랐습니다. 클라이언트 - 서버 네트워킹에 사용되는 기본 API는 운영 체제에 내장 된 소켓 라이브러리에서 구현되었습니다. 버클리 소켓Windows 소켓 (Winsock) API는 수년 동안 소켓 프로그래밍을위한 두 가지 기본 표준이었습니다.

원격 프로 시저 호출

RPC API는 응용 프로그램이 메시지를 보내는 대신 원격 장치에서 기능을 호출 할 수있는 기능을 추가하여 기본 네트워크 프로그래밍 기술을 확장합니다. World Wide Web (WWW) 에서의 폭발적인 성장으로 XML-RPCRPC의 인기있는 메커니즘 중 하나로 부상했습니다.

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 ( 장치 정보 및 사용 모델)는 기존의 네트워크 프로그래밍 환경과 크게 다릅니다.