API란 무엇일까?

Yuri Lee·2021년 6월 5일
0

API

  • 코딩을 하다보면 API 라는 것을 매우 많이 들어볼 것이다. 이 API 라는 것은 무엇일까?
  • 프로그래밍이라는 것도 결국 사람이 작성하기 때문에 우리 일상 생활을 잘 이해하면 프로그래밍을 더 잘 이해할 수 있다. 자판기 내부를 모른다고 하여도 자판기의 인터페이스를 통해서 기계를 쉽게 사용할 수 있다. 인터페이스가 간단하고 직관적일수록 더 좋은 기계라고 말할 수 있다. 이것처럼 프로그래밍에서도 API 라는 것이 존재한다.
  • API 는 Application Programming Interface의 약자로 Application 이라는 단어가 무색할 정도로 많은 곳에서 API라는 단어를 사용하고 있다.

API 역사

1960s

  • 1964년 API는 하드웨어 독립성 (Hardware Independence)에서 많이 사용되어졌다. 서로 다른 하드웨어 부품마다 개발자가 일일히 프로그래밍을 작성하기 보다는 HAL(hardware abstraction layer)이라는 하드웨어 추상화 계층을 통해 한번만 display 라는 함수를 이용하면 각기 다른 모니터에 출력을 하거나 각기 다른 하드웨어 부품에 작성을 하는 이런 일들을 쉽게 해주는 것이 생겼다. 이게 API 의 시초이다.
  • 구조 : HAL - OS(Operation Systems) - Application Programming Inferfaes - MacOS/Windows

1980s

  • 1980년도 중반부터 우리가 흔하게 사용하는 macOS와 windows가 등장하면서 그래픽이 빵빵한 컴퓨터가 등장하기 시작한다. 이런 각각의 운영체제에서 동작하는 어플리케이션을 만들기 위해서는 운영체제에서 제공하는 Application Programming Interfaces API를 이용하면 된다.
  • 맥이라면 Cocoa api, 윈도우라면 windows api를 이용해서 어플리케이션을 만들고 버튼을 추가하고 파일에 데이터를 저장하고 읽는 일들을 할 수 있게 되었다.

1990s

  • 1990년도 인터넷이 보편적으로 대중화되기 시작하면서 더이상 물질적으로 케이블이 연결된 세상에서 벗어나서 컴퓨터와 컴퓨터 다양한 기기들이 인터넷을 통해서 의사소통 해나가는 시대가 도입된다.
  • 이때 다양한 기기에서 서버에 있는 데이터를 읽고 쓰기 위해서는 서버에서 제공하는 Web API 들을 이용해서 처리할 수 있었다. 참고로 네트워크에서 기기들간에 의사소통 해나가는 규격사항을 HTTP(Hypertext Transfer Protocol)라고 부른다.

Now

How to design Web API

  • 이런 Web API를 어떻게 디자인해서 만들건지 정의하는 것이 있다. 예전에는 SOAP(Simple object Access Protocol) 라는 모든 네트워크 요청과 반응을 HTML처럼 생긴 XML이라는 데이터 포맷에 저장해서 주고 받았다면 요즘에는 REST (Representational State Transfer) 가 보편적으로 많이 사용된다.
  • REST 는 총 4가지로 구성되어 있다. 새로운 데이터를 만들고, 읽고, 업데이트하고, 삭제할 수 있다. get 을 이용해서 유저에 대한 정보를 요청하면 서버로부터 유저에 대한 데이터를 JSON 이라는 포맷을 통해서 받아 올 수 있다. 이처럼 서버에서 제공하는 Web API를 통해서 서버에 있는 데이터를 읽어오거나 업데이트 할 수 있다.

Frameworks/Libraries

  • 이제는 이런 Web API 뿐만 아니라 라이브러리나 프레임 워크에서 우리가 이용할 수 있는 클래스나 함수들을 API라고 부른다.
  • 외부에서 가져오는 라이브러리 뿐만 아니라 프로젝트 내부에서 쓰여지고 있는 클래스나 모듈이 있다면 Calculator에서 제공하는 두 가지의 함수(ex. add, multiply)를 이용해서 두 가지의 인터페이스를 이용해서 두 가지 API를 이용해서 사용하면 된다고 말할 수 있다.

Interface API

API는 다양한 부분에서 사용되어지는 단어이다. 내부의 구현 사항을 잘 숨겨 두고 외부에서 사용하는 사람이 필요한 것만 노출해 두고 이것을 인터페이스 API라고 부른다.

Open API, Public API?

  • 회사 내부에서 사용하는 Web API 를 외부의 다른 개발자가 이용할 수 있도록 공개적으로 오픈한 것을 Open API라고 한다.
  • 오픈된 API를 이용해서 많은 개발자들이 독창적이고 재밌는 어플리케이션을 만들 수 있다. 궁극적으로 회사 서비스 커뮤니티에 많이 기여를 하기 때문에 많은 회사에서 이런 오픈 API를 만들어 둡니다.

Useful open api

giphy

spotify

  • spotify에서 제공하는 Web API를 이용해서 나만의 어플리케이션을 만들어 볼 수 있다.
  • https://developer.spotify.com/community/showcase/ 에 들어가면 spotify에서 제공하는 API를 이용해서 개발자들이 다양한 어플리케이션을 만든 것을 볼 수 있다.
  • 한가지 예로 나의 재생 목록을 심플하게 재생할 수 있는 어플리케이션을 만들 수 있다.
  • https://developer.spotify.com/

edamam

apimeme

  • 밈에 관심이 많다면 내가 원하는 종류들을 선택해서
  • URL을 통해서 원하는 종류와 그리고 위와 아래에 각각 어떤 텍스트를 넣을 건지 설정해서 바로바로 이렇게 출력할 수 있도록 만들어 볼 수 있다.
  • http://apimeme.com/

증권

공공데이터

카카오

추천 🌟🌟🌟🌟🌟

  • https://github.com/public-apis/public-apis
    -
    • 종류별로, 책에 관련, 사업, 음악, 뉴스 등 카테고리가 나와있고, API 목록들을 살펴볼 수 있다.
    • api key가 필요한지 필요하지 않은지도 살펴볼 수 있다.
    • 즐겨찾기 해놓고 심심할 때마다 와서 어떤 API가 있는지 살펴보자!
  • https://public-apis.xyz/page/1

결론

  • 기발한 아이디가 없더라도 기존의 서비스를 개선하거나 나만의 독창적인 아이디어를 추가하거나 기존의 서비스를 조금 더 심플한 버전으로 만들어볼 수 있다!

https://www.youtube.com/watch?v=ogT267HvNuQ

profile
Step by step goes a long way ✨

0개의 댓글