안녕하세요, 에디터 랴망입니다.
오랜만에 IT 교양상식을 전하는 IT 샐러드로 돌아왔습니다.
오늘은 비전공자, IT 무관 업계 분들도 어디선가 들어는 봤을 "API"에 대해 소개해보려고 합니다.
"데이터를 API 형태로 받는다", "지도 API로 코로나 맵을 개발했다"하는 이야기를 들어보신 적 있으신가요?
API가 무엇이고 왜 사용하는지, 그리고 연관 개념인 Open API, REST API에 대해서 오늘도 비전공자가 이해할 수 있는 수준! 에서 가볍게 풀어보도록 하겠습니다.
** 깊이 있는 기술적 설명은 제외하였습니다. 저도 배워가는 단계이기 때문에 정정/피드백은 언제나 환영입니다 :)
1. API란?
스마트폰으로 카카오톡에 로그인하려는 상황을 떠올려봅시다.
스마트폰이 보낸 로그인 요청은 카카오 본사의 서버 컴퓨터 중 하나가 받은 다음, 알맞은 응답을 다시 스마트폰에게 돌려주게 됩니다. (로그인 처리시키기, "로그인 성공"메시지 띄우기 등)
이게 바로 "클라이언트(요청하는 컴퓨터=내 스마트폰) - 서버 (응답하는 컴퓨터=카카오 서버)"구조인데요.
클라이언트는 비단 로그인뿐 아니라, 친구 추가, 메시지 발송, 메시지 삭제 등 수많은 요청들을 서버에 보내게 될 텐데, 각 요청들을 일일이 대응하는 것은 비효율적일 것입니다. 각각의 요청들을 담당하는 서버에게 요청이 잘 전달 및 처리될 수 있도록 교통정리를 해주는 "체계"가 바로 API입니다.
즉, "어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떠한 형식으로 무슨 데이터를 전달받을 수 있는지"에 대해 정리한 일종의 규격이라고 볼 수 있습니다.
(위의 친구 추가, 메시지 발송 등 요청 가능한 기능 하나하나가 모두 API가 됩니다.)
API의 풀네임은 "Application Programming Interface (애플리케이션 프로그래밍 인터페이스)"인데요.
"애플리케이션(스마트폰, 카카오톡 서버 등 서로 다른 프로그램)이 인터페이싱하는(요청과 응답을 주고받는) 방식/체계"라고 이해하시면 될 것 같습니다.
2. API는 어떻게 생겼나요?
1) API 구현 방법: API를 작성하는 다양한 방법들이 있으나, 가장 트렌디한 방법이 바로 REST API입니다. REST API에 대해서는 아래에서 다시 다루도록 하겠습니다.
2) API 결과(데이터) 제공 형식: 주고 받는 데이터 형식은 주로 "JSON", "XML"입니다. 요청의 결과로 받는 데이터의 구조에도 통일감을 줄 수 있도록 공통의 포맷을 정한 것인데요. 최근은 JSON이 많이 쓰이고 있습니다.
API의 생김새를 제대로 보고 싶다면, API 문서를 보시면 됩니다. 현재 정말 많은 기업들이 자사의 서비스와 데이터를 API 형태로 공개하고 있습니다. (=향후 설명할 "Open API") API 문서란, 각 기업이 만든 API의 사용법이 담긴 일종의 API 매뉴얼로, 어떤 기능을 불러올 수 있는지, 각 기능에 필요한 정보를 받아오기 위해서는 어떠한 방식으로 요청해야 하는지 등이 상세히 기술되어 있습니다.
아래 예시는, 카카오 API문서 링크입니다.
3. API가 왜 필요한가요?
1) 개발 및 관리의 효율성
API를 사용하면, 실제로 서비스가 어떻게 구현되었는지는 몰라도 그 서비스를 그대로 가져다 사용할 수 있습니다.
즉, 매번 새로운 개발을 할 필요 없이 이미 만들어 놓은 기능을 그대로 "블록"처럼 가져다 쓸 수 있게 됩니다.
덕분에 개발 시간이 줄어들고 개발에 필요한 비용도 아낄 수 있습니다. 또한 API 문서만 보면 누구나 쉽게 이해할 수 있어, 협업에 용이하고 유지보수도 수월합니다.
요즘 기업에서 Hot한 IT 아키텍처인"마이크로 서비스 아키텍처(MSA) 또한 API를 기반으로 합니다. 애플리케이션 내 다양한 기능들을 작게 나눠 독립적으로 구성한 다음, 이들을 API 형태로 연결하여 통신하게 하는 구조입니다.
2) 유연성, 확장성
서비스의 신규 개발과 웹/앱 등 채널 확장이 쉽습니다. 특히 타사 서비스와의 연계에 있어 큰 강점을 자랑합니다. 예를 들어 이번에 자사의 애플리케이션에 새롭게 추가할 기능 중 하나가, "지도" 위에 맛집을 표시하는 것이라면, "지도"를 직접 개발하는 것보다 구글이나 네이버가 제공하는 지도 API를 불러오면 참 편하겠죠?
이렇듯, API는 고객과 현업의 요구사항을 반영한 새로운 서비스를 발 빠르게 출시할 수 있도록 돕는 든든한 기술입니다.
4. Open API는 뭔가요?
Open API는 말 그대로 "누구나 쓸 수 있도록 공개된(Open) API"를 뜻합니다.
대표적으로, 정부는 공공데이터포털(www.data.go.kr)을 통해 국가기관이 보유한 수많은 데이터를 API 형태로 무료 공개하고 있습니다. 지역별 코로나 발생현황, 서울시 따릉이 이용현황, 미세먼지 측정 정보 등 다양한 데이터를 전 국민이 자유롭게 가져다가 데이터 분석을 수행하거나 유익한 서비스를 개발하는 데 쓸 수 있도록 적극적으로 장려하는 것이죠.
뿐만 아니라, 카카오, 네이버, Google 등 수많은 민간 기업들 또한 자사가 제공하는 다양한 기능들(지도 앱, 포털 검색하기, 로그인 기능 등)을 일반 사람들도 무료로 사용할 수 있도록 API를 오픈해두었습니다.
이렇게 Open API가 유행하는 이유는, 아무래도 플랫폼의 영향력이 곧 돈이 되기 때문입니다.
아무래도 자사의 서비스가 타사의 다양한 서비스에서도 활용된다면, 사용자 수가 증가하는 등 서비스 자체의 가치도 높아질 것입니다.
또한 API를 통해 새로운 수익원을 창출하는 것도 기업들이 Open API를 도입하는 주요 동인 중 하나입니다. API의 호출 수에 제한을 두고, 무료 제공량 이상은 돈을 받는다거나(단계적 유료화), 자사가 구축한 결제 시스템을 API 형태로 타사 서비스에 연계할 수 있도록 하여 수수료 수익을 창출하는 등이 있겠습니다.
5. 마지막으로, REST API란?
위에서 말씀드린 바와 같이, API를 구현하는 방식 중 가장 대표적인 방식이 바로 REST (Representational State Transfer) 방식입니다. "REST 한 방식", "REST 원칙을 따르는 API"라 하여, RESTful API 혹은 REST API로 불립니다.
도무지 이름만으로는 무슨 의미인 지 이해할 수가 없죠? 일단 "Represent"가 "표현하다"는 뜻인 점을 염두에 두면, "요청 자체만으로 내가 뭘 원하는지 알게 하자 (= 요청 자체로 나를 "표현"하자!)"는 사상으로 등장했다고 보면 될 것 같습니다. 클라이언트와 서버는 고유한 url(링크)을 통해 요청과 응답을 주고받게 되는데, 이 url만 보면 어떤 요청인 지 바로 추론할 수 있습니다.
단, 자세한 개념을 설명하려면 너무 길어질 것 같아, 오늘은 간단히 이 방식이 웹의 장점을 가장 잘 살릴 수 있는 가장 간결하고 효율적인 구현 방식이라는 점만 짚고 넘어가겠습니다.
IT 업계에 오픈 생태계가 중요해지는 오늘날, API 관련 기술도 앞으로 더 많이 발전하지 않을까 싶습니다.
관련된 주요 개념을 위주로 정리해본 이 글이, API에 대해 기초적인 이해가 필요한 분들에게 도움이 되었으면 좋겠습니다. :)
[참고자료]
'IT Note > IT Basics' 카테고리의 다른 글
서비스 기획 산출물 톺아보기📚 (0) | 2022.07.25 |
---|---|
[IT샐러드] 문과생을 위한 HTTP통신, 쿠키, 세션, 토큰, 인증, 인가 이해하기 (0) | 2022.01.24 |
[IT샐러드] 스타트업 업무 용어 정리 2탄 - 개발 프로세스 편 (0) | 2021.11.30 |
[IT샐러드] 스타트업 업무 용어 정리 1탄 - 업무 문화 편 (0) | 2021.08.28 |
[IT샐러드] 장고(Django)?스프링(Spring)? '프레임워크'가 뭔가요? (4) | 2020.01.13 |