본문 바로가기
Own thoughts/IT 교양상식

[IT교양] 비전공자를 위한 API 이해하기 (feat. Open API, REST API)

by 랴망 2021. 4. 2.

"데이터를 API 형태로 받는다", "지도 API로 코로나 맵을 개발했다"하는 이야기를 들어보신 적 있으신가요? 

오늘은 비전공자, IT 무관 업계 분들도 어디선가 들어는 봤을 "API"에 대해 소개해보려고 합니다.

 

API가 무엇이고 왜 사용하는지, 그리고 연관 개념인 Open API, REST API에 대해서 오늘도 비전공자가 이해할 수 있는 수준! 에서 가볍게 풀어보도록 하겠습니다. 


** 깊이 있는 기술적 설명은 제외하였습니다. 저도 배워가는 단계이기 때문에 정정/피드백은 언제나 환영입니다 :) 


1. API란?

스마트폰으로 카카오톡에 로그인하려는 상황을 떠올려봅시다.
스마트폰이 보낸 로그인 요청은 카카오 본사의 서버 컴퓨터 중 하나가 받은 다음, 알맞은 응답을 다시 스마트폰에게 돌려주게 됩니다. (로그인 처리시키기, "로그인 성공"메시지 띄우기 등)


이게 바로 "클라이언트(요청하는 컴퓨터=내 스마트폰) - 서버 (응답하는 컴퓨터=카카오 서버)"구조인데요.

클라이언트는 비단 로그인뿐 아니라, 친구 추가, 메시지 발송, 메시지 삭제 등 수많은 요청들을 서버에 보내게 될 텐데, 각 요청들을 일일이 대응하는 것은 비효율적일 것입니다.

 

각각의 요청들을 담당하는 서버에게 요청이 잘 전달 및 처리될 수 있도록 교통정리를 해주는 "체계"가 바로 API입니다.

출처: http://sahilsk.github.io/articles/so-youre-writing-api-client

 

즉, "어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떠한 형식으로 무슨 데이터를 전달받을 수 있는지"에 대해 정리한 일종의 규격이라고 볼 수 있습니다. 

(위의 친구 추가, 메시지 발송 등 요청 가능한 기능 하나하나가 모두 API가 됩니다.)

 

이제 API의 풀네임을 풀어서 이해해봅시다.

"Application Programming Interface (애플리케이션 프로그래밍 인터페이스)"

즉, "애플리케이션(스마트폰, 카카오톡 서버 등 서로 다른 프로그램)이 인터페이싱하는(요청과 응답을 주고받는) 체계"라고 이해하시면 될 것 같습니다. 

 

2. API는 어떻게 생겼나요?

공공데이터포털에 등록된 데이터의 API 유형(REST), 데이터포맷(JSON+XML)

1) API 구현 방법: API를 작성하는 다양한 방법들이 있으나, 가장 트렌디한 방법이 바로 REST API입니다. REST API에 대해서는 아래에서 다시 다루도록 하겠습니다.

 

2) API 결과(데이터) 제공 형식: 주고 받는 데이터 형식은 주로 "JSON", "XML"입니다. 요청의 결과로 받는 데이터의 구조에도 통일감을 줄 수 있도록 공통의 포맷을 정한 것인데요. 최근은 JSON이 많이 쓰이고 있습니다.

 

3) API 활용 방법:  API 문서를 보시면 됩니다. 현재 수많은 기업들이 자사의 서비스와 데이터를 API 형태로 제공하고 있고, 각 API의 활용 방법을 잘 정리해놓은 API 문서를 공개하고 있습니다. (=향후 설명할 "Open API")

API 문서란, 각 기업이 만든 API의 사용법이 담긴 일종의 API 매뉴얼로, 어떤 기능을 불러올 수 있는지, 각 기능에 필요한 정보를 받아오기 위해서는 어떠한 방식으로 요청해야 하는지 등이 상세히 기술되어 있습니다.   

 

(예시) 카카오 API 문서에서 기술된 "카카오 로그인" 관련 기능에 대한 설명과 API 구현 여부 (출처: https://developers.kakao.com/docs/latest/ko/kakaologin/common)


아래 예시는, 카카오 API문서 링크입니다. 참고해보세요!

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

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 형태로 무료 공개하고 있습니다. 지역별 코로나 발생현황, 서울시 따릉이 이용현황, 미세먼지 측정 정보 등 다양한 데이터를 전 국민이 자유롭게 가져다가 데이터 분석을 수행하거나 유익한 서비스를 개발하는 데 쓸 수 있도록 적극적으로 장려하는 것이죠. 

국가의 다양한 데이터를 모아 놓은 공공데이터포털(www.data.go.kr)에서도 API 형태로 데이터를 무료 제공하고 있습니다. 

뿐만 아니라, 카카오, 네이버, Google 등 수많은 민간 기업들 또한 자사가 제공하는 다양한 기능들(지도 앱, 포털 검색하기, 로그인 기능 등)을 일반 사람들도 무료로 사용할 수 있도록 API를 오픈해두었습니다.

API로 구현하는 "카카오톡으로 로그인" 기능 예시 (출처: https://developers.kakao.com/docs/latest/ko/kakaologin/rest-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 지식

IT 시대의 필수 교양서우리는 매일 스마트폰으로 메시지를 보내고, 컴퓨터로 일을 합니다. 또 음식점에서 키오스크로 주문하고, 가상현실에서 게임을 즐깁니다. IT는 더 이상 전문가들만의 이야

book.naver.com

 

오픈 API - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 오픈 API 비즈니스 차트. 오픈 API(Open Application Programming Interface, Open API, 공개 API) 또는 공개 API는 개발자라면 누구나 사용할 수 있도록 공개된 API를 말하며, 개발

ko.wikipedia.org

 

API 서비스 개요 및 Business 관점의 특징

2015년 BCS(Chartered Institute for IT)는 간부급 IT전문가 350명을 대상으로 향후 12개월의 단기 계획과 3~5년간의 중장기 계획을 조사했는데 향후 12개월 동안 대다수의 기업에서 우선순위가 높은 3개로 정

cyberx.tistory.com

 

RESTful API란 ?

개발 공부를 시작하고 자주 접하고 그냥 지나친 개념 중에 하나이다. 면접 질문으로도 자주 나온다고 하고, 실제로 채용공고 필요 역량에도 REST 등 인터넷 기반 프로토콜/ 기술에 대한 이해를 요

brainbackdoor.tistory.com

 

API 설계란?

API 설계는 개발자와 사용자에게 데이터 및 애플리케이션 기능을 제공하는 API의 개발 프로세스를 말합니다.

www.redhat.com

 

비전공자 문돌이가 설명하는 REST API 란? feat. 생활코딩

API(Application Programming Interface)란 간단하게 말해서 컴퓨터의 기능을 실행시키는 방법을 의미합니다. 제가 작성한 장고(Django) 관련된 글을 보면 아시겠지만... 회원가입, 로그인, 게시글 작성 등 모

moondol-ai.tistory.com

 

API란 무엇이고, 기업은 왜 API를 신경 쓸까? - Shutterstock 블로그 한국어

페이스북, 구글, Wix 같은 선두 기업들은 이미 셔터스톡 API를 통합하여 사용자 경험을 최적화하고 사용자에 기반에 적합한 창의적인 워크플로우를 제공합니다. API는 애플리케이션 프로그래밍 인

www.shutterstock.com