API : Application Programming Interface
API의 시초
1964년 하드웨어 독립성(Hardware Independence)을 위해서 많이 사용되었다.
예를들어 서로 다른 하드웨어 부품마다 개발자가 일일이 프로그램을 작성하기 보다 HAL(hardware abstraction layer) 즉 하드웨어 추상화 계층을 통해서 한 번만 display 라는 함수를 이용하면 각기 다른 모니터에 출력하거나 각기 다른 하드웨어 부품에 작성하는 것을 쉽게 해주는 것이 생겼다.
1980년 중반 Mac OS(1984), Windows(1985)의 등장
각각의 운영체제에서 동작하는 어플리케이션을 만들기 위해서는 OS에서 제공하는 API를 이용해서 만들 수 있다. Mac이라면 Cocoa (API)를 Windows라면 Windows API를 이용해서 어플리케이션을 만들고 파일을 저장하고 읽고 이런 일들을 할 수 있게 되었다.
1990년도 인터넷의 보편화
더이상 물질적으로 케이블이 연결된 세상에서 벗어나 컴퓨터와 컴퓨터, 다양한 기기들이 인터넷을 통해서 의사소통 하는 시기가 도입된다. 이때 다양한 기기에서 서버에 있는 데이터를 읽고 쓰기 위해서는 서버에서 제공하는 Web APIs들을 이용해서 처리할 수 있다.
네트워크에서 기기들간에 의사소통 해나가는 규격 사항을 HTTP라고 부르고 이런 Web API를 어떻게 디자인해서 만들건지 정의하는 것은 예전에는 SOAP(Simple Object Access Protocol) 모든 네트워크의 요청을 XML이라는 데이터 포맷에 저장해서 주고 받았다면 요즘에는 REST(REpresentational State Trasnfer)가 보편적으로 많이 사용된다.
EX)
클라이언트 컴퓨터와 서버 컴퓨터가 있다. 클라이언트는 서버에 요청을 보낸다.
(메신저를 생각해보자.)
"메세지, 이미지 파일을 줘"
"로그인 해줘"
"이 이미지 삭제해줘"
그럼 서버는 요청에 따라 적합한 처리를 해서 응답을 준다. 위의 예제의 요청을 구분할 수 있도록 하는 '체계'가 필요한데
그 체계가 바로 API 이다. API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계이다.
또한
API는 컴퓨터의 기능을 실행시키는 방법이다.
화면에 hello world를 출력하는 방법은 언어마다 다르다.
Python 이라면 print('hello world')
JS 라면 document.write('hello world')
여기서 print, document.write 하나 하나가 API라고 할 수 있다.
'CS: Computer Science > Network' 카테고리의 다른 글
[Network] REST API (2) | 2021.12.14 |
---|