본문 바로가기

IT

[IT용어]API 란?

[IT용어]API 란?


일을 하면서 실제로 다른 업체에서 제공해주는 API를 사용 해 일을 진행하기도 했지만 

API라는걸 직접 사용하면서 어떤것이라는걸 알고는 있지만 

곰곰이 생각해 보니 API에 대한 정확한 정의나 문서는 찾아보거나 읽어 본 적은 없는것 같았다.


내가 스스로 깨우친 API의 개념이란 원하는 업체의 데이터를 받아 오거나 줄때 

또는 그 업체 프로그램의 기능을 이용하기 위해 미리 정의 된 일종의 함수 정도로 이해를 하고 있었다.



그렇다면 위키백과에서는 어떻게 정의 돼 있는지 알아보자.


API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 

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

주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.



인터페이스(Interface)란 하나의 시스템을 구성하는 2개의 구성요소(하드웨어,소프트웨어) 

또는 2개의 시스템이 상호 작용할 수 있도록 접속되는 경계, 

또는 이 경계에서 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 말



결국 무언가를 사용하기 위해 이용되는 요소들, 즉 게임에 있어서는 

조작도구(키보드, 마우스, 조이스틱)와 조작 방법 및 형태(소프트웨어)를 인터페이스라 한다..

소프트웨어, 컴퓨터 하드웨어, 주변기기, 사람간 서로 상호작용을 할 수 있는 접점이라 보면 된다.


즉 API도 인터페이스의 한 종류이며 프로그램 끼리 상호작용 하는 인터페이스 이다.



그렇다면 API는 왜 사용하는가?


간단한 예를 들면 자판기(프로그램)가 있고 우리는 정해직 규격에 맞게 

100원, 500원 동전이나 1000원, 5000원 지폐를 자판기에 투입을 하고 버튼(API)을 누르면 

자판기에서 우리가 원하는 음료가 나오게 된다.

그런데 만약 자판기 주인이 자판기 열쇠(프로그램 소스 또는 DB)를 

자판기를 사용하는 사람들 모두에게 나누어 주게 된다면 

그때부터 자판기의 돈과 음료(데이터) 등은 안전하지 않게된다.


위의 예시처럼 업체의 시스템을 안전하게 유지하면서 자료를 제공해 주기 위해 API를 사용한다.

일단 API를 개발하기 위해서는 별도의 규격을 정하고 그 규격에 대한 설명 문서도 만들어야 하고 쉬운 일은 아니다.

그러나 API를 사용하지 않는다면 나의 정보는 원하는 불특정 다수들에게 프로그램 소스나 DB를 공개를 해주어야 하기 때문에

그렇게 되면 치명적인 보안 문제가 발생 할 것이다.

프로그램 소스를 공개하지 않고 API에서 정한 규격대로 파일을 업로드 또는 다운로드 할 수가 있다.



주변에서 API를 이용한 우리가 자주 접할수 있는 정보로는 

버스 도착시간을 확인한다던가, 날씨 정보를 불러오거나 하는 등이 오픈 API를 통해 정보를 불러온다.


오픈 API는 API 중에서 플랫폼의 기능 또는 컨텐츠를 외부에서 쓸 수 있도록 개방(open)한 API를 의미합니다. 

대표적으로는 공공 데이터 포털(https://www.data.go.kr/), 네이버 개발자 센터(https://developers.naver.com/main/), 

카카오 디벨로퍼(https://developers.google.com/), 구글 디벨로퍼(https://developers.google.com/?hl=ko) 등이 있다