본문 바로가기
기타

API란 무엇일까? (초보 개발자가 궁금한 API개념)

by 피자보다 치킨 2022. 2. 15.

개발 공부를 하면서 API란 용어를 굉장히 많이 듣게 된다.
도대체 API란 무엇일까?
API가 무엇인지 자세하게 알지 못하였기 때문에 검색을 하며 여러가지 글을 읽고 공부하여 정리해보았다.

API란?

응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다
-위키백과-

 

→API(Application Programming Interface)는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체

 

나에겐 너무나 어려운 설명..

예시로 좀 더 쉽게 개념을 이해해보자!!


흔히 API를 레스토랑에 빗대어 표현한다.
손님(내가 만드는 프로그램)이 자리에 앉아 웨이터(API)에게 주문을 한다.

그럼 웨이터는 내 주문 내역을 주방장(API제공자)에게 갖다준다.

그런 후 요리를 해 웨이터(API)에게 주면 웨이터(API)는 다시 손님(내가 만드는 프로그램)에게 음식을 가져다 준다.
웨이터가 손님의 주문을 주방으로 전달하는 매개체 역할을 하는 것이다.


API의 장점: 여기서 손님은 주방에서 무슨 일이 일어나는지 잘 모른다.

관심을 가질 필요도 딱히없다.

내가 가져다쓰는 API의 기능을 어떻게 구현하는지 몰라도 상관이 없다.

그저 API가 가져다주는 기능을 사용만 하면 된다(완성된 요리를 먹는다)는 것이다.

시간과 노력을 동시에 아낄 수 있다.
이처럼 API는 처음부터 개발하거나 유지 보수할 필요가 없는 외부 데이터와 기능에 접속할 수 있게 해준다.


또다른 예시로 내가 옷을 만들어서 온라인으로 팔려고 한다.

이 때 내가 결제 시스템을 알 필요는 없다.
직접 결제 시스템을 만들 순 있겠지만 시간도 오래걸리고 본업(옷을 팔다)에 집중하지 못한다.
게다가 오류라도 난다면 당장 고쳐야 한다.
옷을 팔아 매출을 내는 본업과 멀어지게 된다.
이러한 상황을 피하기 위해 API를 제공받아서 내 사이트에 넣는 것이 훨씬 현명한 일이다.

 

API는 문서 공개가 없으면 사용할 수 없다.

API: 프로그램을 위한 인터페이스이다.
좀 더 쉽게 말해서 데이터를 주고 받기 위한 방법과 그 규격을 뜻한다.
API 문서란 바로 이 사용법과 규격을 제공하는 문서이다.
이 사용법이 제공되어 있지 않다면 private API인 것이다.
(무료로 쓸 수 있는건 거의 public API라고 보면 된다.)


위의 레스토랑과 비슷한 비유로,
이 API는 공짜 음식일 때도 있고, 한 접시 이상을 먹으면 돈을 내야 하는 음식일 때도 있다.
즉, 보통은 무료인데 일정 횟수 이상 호출하게 되면 비용을 지불해야 될 수 있다.

API를 제공하지 않는 다는 의미는,
업체쪽에서 가지고 있는 정보를 제공하지 않는다는 의미

 

Interface란?

인터페이스는 말 그대로 어떤 기계간의 장치끼리 정보를 교환하기 위한 수단이나, 방법을 의미한다.
예시로 TV를 켜기위에 TV리모컨 전원 버튼을 누름으로써 TV가 켜지게 된다.
즉, 사전에 TV와 통신하기 위해서 TV리모콘에는 TV에 정의된 규격에 의해 어떤 신호를 보낼 수 있도록 만들어진 장치이며, 이러한 신호를 서로 주고 받기 위한 방법을 인터페이스라고 한다.

 

요약

  • 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등 기능을 갖다 쓸 수 있게 해주는 것이 API와 API 문서이다.
  • 예시로 카카오톡 결제 API를 내 프로젝트에 사용하고 싶다면 카카오에서 제공하는 결제 API를 문서에서 제시하는대로 맞춰서 사용하면 된다.
  • API가 공개되지 않았다면 사용할 수 없다. 또한 공개된 API라고 하더라도 호출 횟수가 많아지면 비용을 지불해야 할 수 있다.

 

오픈 API 종류

구글 : cloud.google.com/apis?hl=ko

 

Cloud APIs  |  Google Cloud

REST API를 활용하여 코드에서 BigQuery, Compute Engine과 같은 Google Cloud 제품을 사용하세요.

cloud.google.com

네이버 : developers.naver.com/main/

 

NAVER Developers

네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음

developers.naver.com

카카오 : developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 

※ 기타 잘못된 부분이 있다면 피드백부탁드립니다!

댓글