초등학생도 이해할 수 있는 API
마케터도 이해할 수 있는 개발 지식, 첫 번째 내용은 API에 대한 이해입니다. API는 지금의 인터넷 세상을 이루고 있는 근간이기도 하며, 서로 떨어진 컴퓨터들이 소통할 수 있는 많은 방법 중 가장 널리 사용되고 있는 개념이기도 한데요.
더 깊이 들어가면 이 역시 계층이 나뉘지만 오늘은 마케터 관점에서 API를 어디까지, 어떻게 이해하면 좋을지 명확하게 설명해 보도록 하겠습니다.
(추가로, 제가 요즘 햄버거에 빠져서..비유를 어떤거로 들 수 있을까 하다가 햄버거 가게로 들기로 했습니다. 자, 우리는 이제 햄버거 가게에 들어섭니다.)
목차
- 햄버거 가게에 들어선 우리
- 이미 우리는 API를 알고 있다
- 주문할게요
- API, 에브리씽 에브리데이 올뎃원스
- API는 왜 사용하는 걸까?
- API, Application Programming Interface
- 햄버거 가게를 나가며
1. 햄버거 가게에 들어선 우리
- API 같은 단어는 잠시 잊고 햄버거 가게에 들어선 우리를 생각해 봅시다. 주문해야 하는데 키오스크는 없는 아주 작지만 미친 새우버거가 있는 수제 버거 가게야.
- 가게에는 사람들이 너도나도 새우버거를 먹고 있고, 갑자기 도파민이 분비된 우리는 햄버거를 주문하기 위해 계산대 앞으로 가.
2. 이미 우리는 API 알고 있다
- 계산대로 가서 잠깐 서성거리고 있으니, 주문을 받으러 직원분이 오시네, 즉, 가게와 우리 사이에 직원분이 계시는 거야. 보통 우리는 주문을 넣고, 주방에선 그 주문에 따라 요리를 내어주게 되는데 그 중간에 직원분이 계시는 거지.
- 새우버거 세트 하나를 주문했고, 결제 후 자리에 앉았어.
자 여기까지 봤을 땐 우리가 흔히 아는, 전혀 이상한 거 없는 과정이잖아. 근데 이미 여기에서도 API의 개념이 사용됐어. 그건 아래에서 설명할게.
3. 주문할게요
그럼 지금까지의 상황을 정리해 볼까?
- 손님이 "새우버거 세트 하나 주세요!"라고 요청했어.
- 직원이 "10,900원 입니다. 삼성페이는 여기 터치해 주세요."라고 말했고.
- 결제가 완료됐고, 주방에 빌지가 전달됐어.
- 주방에선 햄버거를 만들어 직원에게 전달했고.
- 직원이 손님에게 햄버거를 가져다 줬어.
그럼 여기서, API가 사용되지 않은 상황이 있을까?
아니, 모든 곳에서 API가 사용됐어. 그럼 위 내용을 그대로 API를 도입해 말해볼게.
- 손님이 "새우버거 세트 하나 주세요!"라고 요청했어.
-> 손님이 직원에게 정해진 메뉴 중 새우버거라는 메뉴를 직원에게 전달 (API를 통해 데이터 요청) - 직원이 "10,900원 입니다. 삼성페이는 여기 터치해 주세요." 라고 말했고.
-> 직원은 데이터를 주기 전 결제라는 과정이 있음을 알고 있어. 그래서 새우버거를 전달하기 전 결제를 받기 위해 요청에 대한 응답으로 가격과 비용을 지불할 수 있는 방법을 제시하고 있어. (API를 통해 데이터 응답) - 결제가 완료됐고, 주방에 빌지가 전달됐어.
-> 손님은 전달받은 응답(가격과 결제 방법에 대한 설명)을 수행해 다시 요청을 보냈지. - 주방에선 햄버거를 만들어 직원에게 전달했고.
-> 그 요청이 주방에 빌지 형태로 전달됐고, 주방에서는 손님이 요청한 새우버거라는 데이터를 전달하기 위해 요리를 하고 있고, 이는 곧 서버에서 요청받은 데이터를 전달하기 위한 작업을 의미해. - 직원이 손님에게 햄버거를 가져다줬어.
-> 주방은 손님이 요청한 데이터인 새우버거를 직원을 통해 전달했어. 여기서 API는 곧 직원에게 요청할 때 정해진 규칙이야. 손님과 주방을 연결하며, 정해진 규칙에 따라서만 움직이지. 직원은 인터넷 정도가 되겠네.
즉,
주방 - 직원 - 손님의 요청과 응답의 과정을 이해하면 API를 이해한 것과 다름이 없어.
4. API, 에브리씽 에브리데이 올뎃원스
- 사실 API는 모든 곳에 있고, 지금의 인터넷 세상을 이루고 있다고 해도 과언이 아닐 정도로 매우 매우 중요한 개념이야.
- 사실 잠깐 언급하긴 했는데 API는 결국 규칙이야. 만약 햄버거 가게에서 직원에게 피자를 주문한다면? 직원의 규칙에 어긋나겠지? 왜냐, 햄버거 가게고 피자가 메뉴에 없는데 피자를 요청하니까.
- 해서 API는 모든 곳에 있어. 이미 우리는 오늘만 해도 최소 수천, 수만 번의 API 요청을 보냈을거야. 사실 API 없이는 온라인 세상은 존재할 수 없는 것도 맞아.
- 우리가 매일 사용하는 인스타그램, 인스타그램에서 볼 수 있는 수많은 사진과 영상들. 어떻게 볼 수 있는걸까? 모두 인스타그램이 운영하는 서버와 우리 스마트폰이, 정확하게는 인스타그램 서비스가 API를 통해 소통해서야.
- 유튜브도 동일해. 우리가 PC로 유튜브를 본다고 하면, 우리의 PC와 구글이 운영하는 유튜브 서버가 API를 통해 소통하기 때문이야. 당연히 규칙이 있고, 해당 규칙에 맞춰 요청을 전달하면 응답이 오는 형태로 말이지.
- 온라인 세상, 또는 오프라인과 온라인을 잇는 것 모두 API이고, 결국 소통하기 위한 규칙이라고 볼 수 있어.
5. API는 왜 사용하는 걸까?
- API가 없으면 우리가 직접 필요한 모든 데이터를 가지고 있어야 하고, 온라인 세상에서 연결이 불가능 해.
- 앱과 앱, 서비스와 서비스가 서로 연결될 수 있는 이유는 API 덕분이야.
- 개발자들은 API를 이용해 통신을 하고, 서로 데이터를 주고 받는 서비스를 만들 수 있어. 오히려 API를 사용하지 않는 서비스는 없다고 볼 수 있을 정도야.
6. API, Application Programming Interface
- 이쯤에서 사전적 정의를 한 번 짚고 넘어가면 좋을 거 같아서 준비했어.
- Application은 정말 많이 사용되는데 쉽게 말해 서비스라고 이해해도 좋아. 물론 마케터가 API를 이해할 때를 기준으로 하는거야.
- Programming은 프로그래밍 관점을 정의하는건데, 크게 중요하지 않아. 이 부분은 전체를 한 번에 이해할 때 도움이 되는 관점이라 잠깐 넘어갈께.
- Interface는 프로그래밍에서도, 일상에서도 정말 많이 사용되는 용어인데도 굉장히 모호하게 느껴지는 단어야. 그냥 서로 다른 것들이 소통하기 위한 규칙이라고 이해하면 돼.
- 이 세 단어를 한 번에 이해하면 서비스의 프로그래밍 관점에서의 소통하기 위한 규칙 정도로 이해할 수 있을 거 같아.
- 결국 서로 다른 서비스가 통신하기 위해 정해놓은 규약이라고 볼 수 있어.
7. 햄버거 가게를 나가며
- API는 어려운 개념이 아니야. 기본적으로 나에게 없는 데이터를 받아오려고 할 때는 무조건 API를 사용하게 되는거지.
- 즉, API는 서비스와 서비스가 통신할 때 필요한 규칙을 정의한 것이라고 볼 수 있어. 이 규칙에 기반해 원하는 데이터를 요청하고, 응답하게 되는거지.
그럼 다음에 또 재밌는 이야기로 찾아올게, 마케터가 프로그래밍을 완벽히 정복할 수 있을 때 까지!