요즘 어떤 웹 서비스에 로그인을 할 때 "네이버 계정으로 로그인하기", "카카오 계정으로 로그인하기" 등을 쉽게 볼 수 있다. 또한 지도를 사용해야 하는 앱을 보면 구글맵, 카카오 맵 등을 사용하는 것을 확인할 수 있다. 이러한 기능들은 모두 API를 사용한 것인데 API가 무엇이고 어떻게 동작하는지 알아보자
API(Application Programming Interface)란?
API는 세 개의 단어 Application, Promgramming, Interface의 약자이며 모두 들어본 단어일 것이다. 그 중 인터페이스는 연결방식이라고 할 수 있다. 우리가 모니터를 연결하려고 할 때에도 HDMI, DP, DVI 등을 사용할 수 있는데 모니터에서 제공하는 인터페이스 방식에 따라 케이블을 선정해야 한다. 또한 어떤 두 개의 물체가 인터페이스가 맞지 않는다면 중간에 변환장치를 사용하기도 합니다.
API도 비슷한 개념입니다. 본인이 어떤 서비스를 개발할 때 충분한 데이터를 확보할 여건이 되지 않거나 어떤 기능을 개발할 때 시간이 부족할 때 다른 사람이 개발한 서비스를 가져와 본인의 서비스에 포함시킬 수 있습니다. 이때 다른 사람이 개발한 서비스를 이용하기 위해서 그곳에서 정의한 방법에 맞게 적용시켜야 합니다.
정리를 하면 API는 서로 다른 두 개의 서비스가 데이터를 주고받기 위한 연결창구이다. 위에서 언급한 사례뿐만 아니라 공공데이터 포털에서 제공하는 데이터를 활용하여 본인의 서비스에 적용시킬 수 있습니다.
그렇다면 API는 어떻게 동작할까?
처음에 언급한 "카카오 계정으로 로그인하기"는 아래와 같은 그림으로 동작하고 있습니다. 본인이 혼자 숙박예약 어플을 개발하려고 합니다. 하지만 시간이 부족하기 때문에 사용자들이 카카오 계정으로 로그인할 수 있도록 카카오의 로그인 API를 사용하려고 합니다. 그렇다면 사용자들이 카카오 계정으로 로그인을 시도할 때 카카오에게 사용자 정보가 맞는지 확인을 하는 요청을 하게 됩니다. 이후 카카오는 요청에 대한 응답을 숙박 예약 어플에 보내어 사용자들이 로그인할 수 있도록 합니다.
API를 사용할 때 주의할 것은 본인이 요청하고싶은대로 요청하는 것이 아니라 응답을 주는 쪽에서 정의한 방법대로 요청을 해야 하는 것입니다. 그렇기 때문에 사용하려는 API의 문서를 정확히 파악하여 본인의 서비스에 적용시켜야 합니다.
API를 공부하면서 내가 원하는 서비스를 빠르게 개발할 수 있겠다는 생각이 들었습니다. 특히 공공데이터포털의 데이터와 본인의 아이디어를 활용하면 창의적인 서비스를 개발할 수 있을 것입니다. 그리고 API를 공부하면서 서버가 동작하는 방법을 파악했고 나중에 서버에 대해 공부를 할 때 많은 도움이 될 것입니다.
'WEB' 카테고리의 다른 글
[Django 00] Intro (0) | 2021.03.08 |
---|---|
[CSS] flex 속성 (0) | 2021.01.19 |
[HTML] Youtube 클론코딩 - 레이아웃 잡기 (0) | 2021.01.14 |
[CSS] flex box를 위한 속성들 (0) | 2021.01.11 |
[CSS] flex 이해하기 (0) | 2021.01.10 |