프로그래밍 언어/NODE JS

API 서버 이해하기

· 코딩마이데이

API는 Application Programming Interface의 두문자어로, 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점을 의미합니다.

 

웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구입니다. 흔히 API를 '열었다'는 '만들었다'고 표현하는데, 이는 다른 프로그램에서 현재 기능을 사용할 수 있게 허용했음을 뜻합니다. 다른 사람에게 정보를 제공하고 싶은 부분만 API를 열어넣고, 제공하고 싶지 않는 부분은 API를 만들지 않는 것입니다. 또한, API를 열어놓았다 하더라도  모든 사람이 정보를 가져갈 수 있는 아니라 인증된 사람만 일정 횟수 내에서 가져가게 제한을 둘 수 있습니다.

 

위와 같은 서버에 API를  울려서 URL을 통해 접근할 수 있게 만든 것을 웹 API 서버라고 합니다. 단, 정보를 만든 사람이 아니라 인증된 사용자에게만 제공할 것입니다.

 

여지서 크롤링(crawling)이라는 개념을 알아두면 좋습니다. 크롤링을 해서 웹 사이트의 데이터를 수집했다는 말을 들어본 적이 없을 겁니다. 크롤링은 웹 사이트가 자체적으로 제공하는 API가 없거나 API 이용에 제한이 있을 때 사용하는 방법입니다. 표면적으로 보이는 웹 사이트의 정보를 일정 주기로 수집해  자체적으로 가공하는 기술입니다. 하지만 웹  사이트에서 직접 제공하는 API기 아니므로 원하는 정보를 얻지 못할 가능성이 있습니다.  또한, 웹 사이트에서 제공하길 원치 않는 정보를 수집한다면 법적인 문제가 발생할 수 있습니다.

 

서비스 제공자 입장에서도 주기적으로 크롤링을 당하면 웹 서버의 트래픽이 증가하며 서버에 무리가 가므로, 웹 서비스를 만들 때 공개해도 되는 정보들은 API로 만들어 API를 통해 가져가게 하는 것이 좋습니다.