API란?

기타 2020. 7. 1. 23:21

IT분야에서 공부를 하다보면 종종 "API"에 대한 얘기를 자주 듣는다. 그리고 어떤 분야에서는 API를 잘 활용하는 것이 아주 중요하다고 한다. 

 

그럼 과연 이 API라는 것은 도대체 어떤것을 의미하는 것일까? 

 

 

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


이 또한 이해하기가 쉽지 않고 두루뭉술한 이야기를 하는 듯이 느껴지는데, 일단 "인터페이스"라는 말이 정확하게 어떤 의미를 가지고 있는지 알아보자.  

인터페이스란,
서로 다른 두개의 시스템(여기에서 시스템은 하드웨어, 소프트웨어, 사람, 주변기기 등 우리가 생각할 수 있는 모든 것을 의미한다.) 사이에서 정보를 교환하는 경계라고 보면된다. 쉽게 생각해서 서로 살을 맞대고 있는 부분, 혹은 그 경계를 인터페이스라고 통칭하는 것이다.  (위키백과)

 

다시 API의 정의를 보자. 



API는,


응용 프로그램에서 사용할 수 있도록,  (운영체제나 프로그래밍 언어가) 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

이해하기 쉽게 분류를 하자면, 
운영체제나 프로그래밍 언어가 제공하는 API공공기관, 대기업 등 단체에서 제공하는 API들이 사용되는 경우있다.

 

첫번째 의미의 API에 대해서는 프로그래밍을 하면서 많이 접하는 표현들과 깊은 연관이 있다. 

 

예를 들어, Pandas나 Scikit-learn등의 패키지가 내장하고 있는 함수들은 전부 전자에 해당하는 API라고 생각할 수 있다. 내가 가지고 있는 프로그램의 특정 변수나 데이터를 넣게 되면 사용자의 별도의 행동 없이 패키지에 내장되어 있는 함수가 사용자가 원하는 형태로 가공하여 결과를 반환한다. 

따라서, 특정 패키지에 내장되어 있는 함수를 설명할 때, "패키지가 해당 역할을 하는 API를 제공한다."라고도 표현을 한다. 

 



두번째 의미를 가지는 API는 웹 서비스를 제작하는 경우 많이 사용된다.

 

이런 종류의 API는 간편로그인, 결제 시스템처럼 프로그램의 뼈대가 되는 부분부터, 날씨정보, 지도 등 내가 만들려는 컨텐츠에 꼭 필요한 요소들을 구성하는 것까지 광범위하게 쓰일 수 있다. 

 

 

 

다음 카카오 간편 로그인 시스템
카카오 맵 API를 이용해서 해당 서비스를 단기간에 적은 비용으로 구현할 수 있다.

 

 

왜 우리는 API를 써야할까?

 

우리가 파이썬 프로그래밍을 할 때에 모든 함수들을 우리가 구현하지 않고, 특정 패키지를 import 해서 사용하는 이유와 동일하다고 생각하면 된다. 
물론, 프로그래밍을 공부하는 입장에서 무턱대고 API를 사용하는 것보다 공부를 하고 직접 코드를 보며 이해하는 것도 좋겠지만, 당장 서비스를 제공해야하는 입장에서는 API를 잘 활용할 줄 아는 능력이 많이 요구된다. 

최근에는 제공되는 서비스의 퀄리티나, 상황에 대응하여 서비스가 제공되기까지의 시간이 한 사람이 하기에는 턱없이 부족하다. 하지만 API를 잘 사용할 수 있다면, 충분히 가능하다.

예를 들어, 날씨를 알려주고 길찾기 기능이 있는 지도 서비스를 만들려고 한다면, 날씨에 대한 정보를 얻을 수 있는 프로그램을 만들고 지도 프로그램을 만들어야 한다.  여기에 웹을 만들수 있는 기술 또한 필요하다. 과연 한 사람이 이것을 모두 습득하고 구현하는데에 얼마나 많은 시간이 걸릴까?

 

 

이 API라는 것은 시간과 비용을 말끔하게 해결해준다! 

 

 

위의 문제에서 기상청에서 날씨에 관한 API를 가져오고, 다음이나 네이버에서 지도 API를 가져온다. 이렇게 되면 개발자는 웹을 해당 API들의 형식에 맞게만 코딩을 한다면 순식간에 한 서비스를 제공하기 위한  준비가 절반 이상 끝마칠 수 있게 되는 것이다.

마치 이것은 내가 로봇을 만드는 과정에서 팔과 다리가 이미 만들어져 있어 나는 몸통과 팔, 다리를 나사로 연결만 하면 되는 것과 매우 유사하다. 이로인해 서비스 제공자는 비용적인 측면과 시간적인 측면에서 엄청난 생산성의 향상을 얻는다!

API는 마치 로봇의 팔과 다리가 이미 만들어져 있는것과 같다

이렇게 되면 소수의 사람들이 단기간 안에 양질의 서비스를 제공하는 것이 매우 쉬워진다. 

 

여기에서 또 하나 주목해야 할 점은 모든 API가 공개되어 모든 사람들이 무료로 사용가능한 것은 아니지만,
굉장히 많은 API들이 Open API(혹은 public API)로써 제공된다는 것이다. 특히 정보에 관한 API들은 정보의 남용을 막기위해 특정한 절차를 거쳐야 해당 API들을 무료로 사용할 수 있다.  


 

그렇다면, 기업들이나 공공기관에서는 왜 이런 API들을 무료로 제공을 하는 것일까? 


최근 소프트웨어 산업의 트렌드가 서로 기술, 정보 등을 공유를 해서 단기간 내에 양질의 서비스를 제공하는 것을 목적으로 한다.  또한, 이외에도 기업들이 제공하는 API를 다른 프로그램에서 사용함으로써 사용자들이 해당 기업들의 서비스를 계속 이용하게 만들 수 있다. 예를 들어 앞에서 본 간편로그인을 생각해보자. 만약 내가 어떤 서비스를 특정 기업의 계정으로 로그인을 했었다면 그 계정을 삭제하는 순간 이 서비스 또한 이용을 하지 못하게 된다. 이로써 API를 제공하는 기업은 자신들만의 생태계를 형성한다.

728x90
반응형

'기타' 카테고리의 다른 글

Python에서 SQL 사용  (0) 2020.10.02
VI Editor  (0) 2020.09.05
왜 리눅스일까?  (0) 2020.07.04
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기