더북(TheBook)

7.4 API와 응용 계층

애플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)는 애플리케이션이 운영 환경의 다른 부분에 접근하기 위해 사용할 수 있는 프로그래밍 구성 요소의 잘 정의된 집합체입니다. 프로그램은 API 함수를 사용해 운영 시스템과 통신합니다. 네트워크 프로토콜 스택은 API 개념의 전형적인 애플리케이션입니다. 그림 7-4와 같이 네트워크 API는 애플리케이션에서 프로토콜 스택으로의 인터페이스를 제공합니다. 애플리케이션 프로그램은 API의 함수를 통해 네트워크와 연결을 시작하거나 종료하며 데이터를 쓰거나 읽을 수 있습니다.

소켓 API는 원래 TCP/IP 프로토콜 스택에 접근하기 위한 인터페이스로 BSD(Berkeley Software Distribution) 유닉스에 의해 개발되었습니다. 소켓은 이제 TCP/IP의 프로그램 인터페이스로 다른 시스템에도 널리 사용되고 있습니다. 몇 년 전, 마이크로소프트는 WinSock이라고 하는 소켓 인터페이스 버전을 만들었습니다. 윈도 3.1 이전에는 사용자가 TCP/IP 네트워크 설정을 위해 WinSock을 설치하고 구성해야 했습니다. 윈도 95 이후로 마이크로소프트는 TCP/IP 프로그램 인터페이스를 윈도 운영 체제에 직접 구축했습니다.

▲ 그림 7-4 네트워크 API는 TCP/IP를 통해 애플리케이션이 네트워크에 접근할 수 있게 한다

소켓 API와 같은 네트워크 API는 소켓을 통해 데이터를 수신하고(6장 참조) 해당 데이터를 애플리케이션으로 전달합니다. 따라서 해당 API는 응용 계층에서 작동합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.