Web API
DevOps 관련 포스팅
- Git Convention
- Test Code
- Git and github
- 왜 Code Review를 해야 하는가
- Web API
- postgreSQL
- AWS 배포하기(1) - RDS (MySQL)
- AWS 배포하기(2) - Elastic Beanstalk
- Docker 설치 및 실행
이 포스팅은 ‘A Brief, Opinionated History of the API’ (by. Joshua Bloch)스피치와 다수의 영문 포스팅을 한글로 해석한 내용이 포함되어 있습니다. 출처를 확인해주시기 바랍니다.
web API
를 공부하던 중 API library
도 API로 혼용해 쓰는 것에 의문이 들었습니다.
API의 정의는 정확히 무엇이며, 왜 이렇게 혼용을 해 사용하게 되었는지 그 역사를 기술한 자료를 읽어보고, 이와 관련해 흥미로운 스피치가 있어 소개합니다.
API의 역사
- 1948년, Herman Goldstine과 John von Neumann은 프로그램이 공통 연산(
common operations
)을 사용하게 되면, 서브루틴 라이브러리(subroutine library
)가 새 코드와 에러의 양을 줄여줄 것이라고 함
→ 서브루틴 라이브러리에 대한 관점(idea)을 언급만 함
[아래 사진의 서랍 속에 들어있는 것이 서브루틴 라이브러리 테이프]
- 1952년, Wilkes와 Wheeler가 서브루틴 라이브러리에 관한 논문 발표(2pages 분량)
(참고)논문 전문
→ 당시에 API를 Library와 구분하지 않은 이유는?- 두 개념이 크게 보았을 때 같은 의미였으며,
- 컴퓨터는 하나밖에 없었기에 기계 이동성의 개념이 존재하지 않았음
- 레거시 프로그램이 없었음
- 그래서 API를 별개로 논의할 이유가 없었으나, 명확하게 API 디자인 개념에 대해 이해하고 있었음
- 1968년, AFIPS Fall Joint Computer Conference에서 처음 API라는 용어를 사용함
마침내, 중앙 컴퓨터에서 하드웨어의 독립은 컴퓨터가 교체될 때 일관된
application program interface
가 유지된다는 것을 의미한다.
API(Application Programming Interface)란?
- 입출력을 통해 정의된 operation 세트를 제공하는가?
- 사용자를 손상시키지 않으면서 재실행을 허락하는가? 이 두 조건을 모두 충족하면 API라고 할 수 있다
즉, Library나 Framework에서 이용할 수 있는 Class나 Function도 API라고 부름
프로젝트 내부에서 쓰여지고 있는 클래스나 모듈이 있다면, 이를 함수/인터페이스/API로 지칭할 수 있음
Web API란?
- 1990년대부터 인터넷이 대중화되면서 컴퓨터와 다양한 기기들이 인터넷을 통해 의사소통하는 시대가 됨
- 다양한 기기에서 서버의 데이터를 읽고 쓰기 위해 Web API를 이용함
- 네트워크에서 기기들간의 의사소통 규격 사항을 HTTP(S)라고 부르며, REST는 Web API를 어떻게 만들지 정의한 것임 (과거에는 SOAP을 이용해 XML 포멧으로 정보를 주고 받았음)
- REST의 POST/GET/PUT/DELETE를 이용해 새로운 데이터를 만들고(create)/읽고(read)/수정하고(update)/삭제(delete)할 수 있음
- GET을 이용해 정보를 요청(request)하면, 서버로부터 해당 데이터를 JSON 포맷으로 응답(response)받을 수 있음
더 읽을 거리 & 참고한 자료
- History of APIs
- Intro to APIs: What Is an API?
- The Evolution of APIs: Past, Present and the Future
- What is an API: Everything You Need to Know About APIs?
- Your Guide To Messaging APIs Web 3.0 Internet Communication
< 출처 >
‘A Brief, Opinionated History of the API,’ 유튜브 비디오, 47:04, 게시자 ‘InfoQ,’ 2018년 11월 22일, https://youtu.be/LzMp6uQbmns
“API란? 개념 정리와 포트폴리오에 유용한 대박 사이트 공유 🙌,” 유튜브 비디오, 08:07, 게시자 “드림코딩 by 엘리,” 2021년 3월 16일, https://youtu.be/ogT267HvNuQ
Kristopher Sandoval. “Who Invented the API?.” NORDIC APIS. September 20, 2018 https://nordicapis.com/who-invented-the-api/