바위 뚫는중

[API] API 개념정리, 유용한 사이트 본문

API

[API] API 개념정리, 유용한 사이트

devran 2021. 12. 3. 14:39
반응형

https://www.youtube.com/watch?v=ogT267HvNuQ
드림코딩 엘리님의 강의 (+ 노마드코더 강의) 정리한 내용!

Application Program Interface

컴퓨터의 키보드 같은 것 = 프로그램 간의 통신을 이뤄주는 것
API 호출함으로써 다른 프로그램에 어떤 처리를 시켜 그 결과를 얻어올 수 있고,
이를 이용할 수 있게 됨
API를 통해 다른 프로그램과 교류하게 되는 것

API가 시작된 시점?

Hardware Independence

1964년 Hardware Independence 하드웨어 독립성을 위해 사용되어짐
서로다른 하드웨어 부품마다 개발자가 일일이 프로그래밍을 작성하기 보다는 HAL(hardware abstraction layer) 이라는 하드웨어 추상화 계층을 통해서 한번만 display라는 함수를 이용하면 각기 다른 모니터에 출력을 하여 각기 다른 하드웨어 부품에 작성을 하는 이런 일들을 쉽게 해주는 것이 생김
이것이 API의 시초!

Application Programming Interfaces

1980년 중반 우리가 흔하게 사용하는 맥 OS와 윈도우즈가 등장
이런 각각의 운영체제에서 동작하는 어플리케이션을 만들기 위해서는 운영체제에서 제공하는 ApplIcation programming Interfaces API를 이용해야함
맥은 cocoa API 윈도우는 windows API를 이용하여 어플리케이션 만들고, 버튼 추가, 파일 데이터 저장 읽기 등등을 할 수 있게 됨

WEB APIs

1990년도 인터넷이 대중화되기 시작하면서 다양한 기기에서 서버의 데이터를 읽고 쓰기 위해서는
서버에서 제공하는 WEB APIs 를 이용해서 처리할 수 있음!
네트워크에서 기기들간에 의사소통 해나가는 규격사항 HTTP(s) Hypertext Transfer Protocol 에는 이런 WEB API를 어떻게 디자인해서 만들건지 정의하는 것이 있음
예전에는 SOAP이라는 html처럼 생긴 XML이라는 데이터 포맷에 저장해서 주고 받았다면 요즘에는
REST가 보편적으로 많이 사용됨 (Representational State Transfer)

REST API

  • POST 만들고 create
  • GET 읽고 read
  • PUT 업데이트하고 update
  • DELETE 삭제할 수 있음 delete

이렇게 GET을 이용해서 유저에 대한 정보를 요청하면서버로부터 유저에 대한 데이터를 JSON이라는 포맷을 통해서 받아올 수 있음!
이처럼 서버에서 제공하는 WEB API를 통해서 서버에 있는 데이터를 읽어오거나 업데이트할 수 있음!
그리고 이제는 이런 웹 API 뿐만 아니라 라이브러리나 프레임워크에서 우리가 이용할수있는 클래스나 함수를 API라 부름 (LocationAPIs, contextAPIs 등등)
이런 외부에서 가져오는 라이브러리 뿐만아니라 프로젝트 내부에서 쓰이는 클래스나 모듈이 있다면
내부의 구현사항을 잘 숨겨두고 외부에서 사용하는 사람이 필요한 것만 노출해 두는 것을 인터페이스 , API라고 부름

OPEN API, PUBLIC API

회사 내부에서 사용하는 WEB API를
외부의 다른개발자가 이용할 수 있도록 공개적으로 오픈한것!
→ 많은 개발자가 사용 가능, 회사 커뮤니티에 기여

유용한 오픈 API들

📓 영상에서 언급된 자료들 제일 추천:
https://github.com/public-apis/public...
다음 추천:
https://public-apis.xyz/page/1
기타언급된 링크들:
https://developers.giphy.com/
https://developer.spotify.com/
https://developer.edamam.com/
http://apimeme.com/?ref=apilist.fun
https://www3.kiwoom.com/nkw.templateF...
https://developers.kakao.com/
https://www.data.go.kr/tcs/dss/select...

반응형