오늘날 우리는 다양한 애플리케이션(App)과 웹 서비스를 이용한다.
스마트폰에서 날씨를 확인하고, 온라인 쇼핑몰에서 쇼핑을 하고, SNS에는 사진을 업로드한다.
이 모든 과정에서 사용되는 보이지 않는 기술이 사용되는데, 그중에서도 핵심 기술이 API이다.
API(Application Programming Interface)란 무엇일까? 우리말로 응용프로그램 프로그래밍 규약으로, 소프트웨어 간의 원활한 상호 작용을 가능하게 해주는 기술이다. 쉽게 말해 프로그램과 프로그램이 서로 데이터를 주고받는 기능을 사용할 수 있도록 중간에서 돕는 매개체라고 할 수 있다.
기상청 데이터를 받아 사용자에게 보여주는 날씨 앱을 예를 들어보자.
날씨 앱은 기상청 데이터를 어떻게 받아올까? 기상청이 데이터베이스를 열어놓고 접근권한을 허용해 놨을까?
단순하게 생각해 봐도 많은 문제가 생길 것 같다. 기상청 데이터베이스는 보안에 취약해질 것 같고, 과도하게 접근하거나 비밀스러운 데이터를 마음껏 조회할 수 있을 것 같고, 이를 막기 위해 너무나 많은 케이스를 고려해야만 할 것 같다.
이럴 때 사용하는 기술이 API이다. 날씨 앱은 기상청 데이터베이스에 접근하는 것이 아니라, API를 통해 필요한 정보만 요청하고 받아오는 방식을 사용하는 것이다. API를 사용하면, 보안이 강화되고, 개발도 더욱 효과적으로 할 수 있게 된다.
API는 어떻게 동작하는 걸까?
API를 쉽게 이해하기 위한 방법으로 다양한 비유를 들 수 있다. 여기서는 웨이터가 있는 음식점, 레스토랑의 비유를 들어, 손님이 되어 API를 사용해 보자.
손님 = API 사용자
웨이터 = API
레스토랑, 주방 = 서버
- 손님(사용자)은 메뉴에서 원하는 음식을 선택한다.
- 손님(사용자)은 웨이터(API)를 부른다.
- 손님(사용자)은 고른 메뉴를 요약해서 웨이터(API)에게 주문을 한다.
- 웨이터(API)는 주방(서버)에 손님이 고른 메뉴를 전달한다.
- 주방(서버)은 주문을 받아 요리를 준비한다.
- 요리가 완성되면 웨이터(API)는 요리를 손님(사용자)에게 전달한다.
API는 사용자의 요청을 서버에 전달하고, 서버에서 처리된 응답을 사용자에게 반환하는 역할을 하는 것이다.
API는 목적과 접근 방식에 따라 여러 가지 형태로 구분된다.
- 공개 API(Open API)
- 누구나 사용할 수 있도록 공개된 API
- 대표적으로 구글 지도, 트위터 같은 SNS, 기상청 같은 공공기관에서 제공하는 날씨 API 등
- 국내 데이터의 경우, 대한민국 공식 전자정부 누리집에서 대부분 신청이 가능
- 비공개 API(Private API)
- 특정 조직이나 기업 내부에서만 사용하도록 제한된 API
- 기업 내부에서 시스템 간 데이터를 공유하는 API
- 웹페이지를 포함하는 대부분의 프로젝트에서 만들어지고 사용됨
- 파트너 API(Partner API)
- 협력 업체나 비즈니스 파트너에게 제공되는 API
- 삼성페이, 카카오페이 등 결제 시스템 API
- 운영체제 및 라이브러리 API
- Windows 같은 운영체제나 개발 프레임워크에서 제공하는 API
- 개발자가 앱을 만들 때 필수적으로 활용하는 API
- Windows API, iOS API 등 개발자가 프로그래밍하면서 사용하는 대부분의 함수가 API의 한 종류라고 볼 수 있음.
API는 접근방식 외에 구조에 따라서도 구분을 할 수 있다. 가장 보편적인 방식은 REST API와 SOAP API이고, IT 대기업에서 사용하다가 오픈소스로 기술을 공개한 사례나 구글처럼 영향력 있는 회사에서 규약 자체를 공개하고 사용하라고 하는 방식이 있다.
간단하게 살펴본다면,
- REST(REpresentational State Transfer) API
- 우리말로 표현 상태 전송이라고 직역할 수 있는데, 일반적으로 가장 많이 사용하는 형태의 API
- RESTful API, RESTful WEB API라고도 함
- HTTP 메서드인 GET, POST, PUT, DELETE를 사용해 조회하거나 변형하는 형태
- SOAP(Simple Object access Protocol) API
- 우리말로 '간단한 객체 접근 규약'
- XML(Extensible Markup Language)로 인코딩 된 정보를 교환하기 위한 프로토콜
- HTTP 외에도 FTP, SMTP 등에서 사용할 수 있음.
- GraphQL
- 메타(구 : Facebook)에서 나온 기술이지만, 현재는 오픈소스로 공개
- GraphQL 쿼리 언어를 이용
- gRPC
- Google에서 개발한 데이터 교환 기술, 현재는 오픈소스로 공개
- Protocol Buffers Binary 형식을 사용(. proto 파일에 규약을 정의)
통신이 많이 필요할수록, 규모가 커질수록, 실생활에 가까워질수록 거의 API를 사용한다고 볼 수도 있을 것이다.
그만큼 다양한 산업과 서비스에서 API 기술이 사용된다.
- 소셜로그인 :카카오 계정으로 로그인, 네이버 계정으로 로그인, 구글 계정으로 로그인 등
- 결제 시스템 : 온라인 쇼핑몰 카드 결제(카드사 API), 각종 페이 시스템 등
- 지도 서비스 : 지도 앱, 배달 앱, 위치 기반 추천 앱 등
다양한 최신 기술과 기능들이 많은데, 왜 많은 프로젝트에서 API를 사용하는 걸까? API를 활용하면 얻을 수 있는 이점이 많기 때문이다.
기존 기능을 API로 만들어 놓으면, 지금 개발 중인 프로젝트를 넘어서, 앞으로 만들 프로젝트에도 API로 가져와 사용할 수 있어 개발 시간을 획기적으로 단축할 수 있다. 웹 개발이 아니라, 응용프로그램 개발에서 예를 들자면, 자주 쓰는 기능들을 함수나 클래스로 만들어놓고, 라이브러리로 만들어 활용하는 것을 생각해 볼 수 있다. 이는 개발 속도뿐만 아니라, 다양한 기능을 쉽게 추가할 수 있도록 도와준다.
API는 주로 외부로, 다른 시스템으로 데이터를 조회한 결과를 보내줄 때 사용한다. 이때, 직접 데이터베이스를 노출하지 않기 때문에 API를 활용하면 보안 강화에도 도움이 된다.
API는 JSON이나 XML 같은 표준화된 데이터로 주고받기 때문에, 다른 새로운 프로젝트에서 활용하기에도 접근이 쉽다는 장점도 있다.
API는 앞으로도 IT 산업에서 중요하게 쓰임 받게 될 것이고, 활용 범위 또한 더욱 넓어질 것이다. AI, IoT, 블록체인 등 새로운 기술에도 무궁무진하게 활용될 수 있다.
AI 챗봇이 고객과 대화할 때, 외부 API를 활용해 실시간 데이터를 제공해 줄 수도 있고, IoT 기기의 센서 데이터를 클라우드 서버로 전송하는데 API를 활용할 수 있다. 블록체인의 스마트 계약을 외부에서 접근하려고 할 때 역시 API를 사용하면 효율적으로 이용할 수 있을 것이다.
API는 현대 소프트웨어 개발의 핵심 요소 중 하나로, 실제로 최근 잘 나가는 개발자의 트렌드는 얼마나 깊은 지식과 기술을 알고 있는가 보다 API를 잘 만들고, 활용하는가를 더 높은 능력으로 평가할 수 있다.
#IT용어 #API #WEB #Server
'IT 정보 > 용어' 카테고리의 다른 글
스로틀링이란? 자동차에서 온 용어 스로틀링의 의미 (2) | 2025.03.20 |
---|---|
LPWAN이란? 저전력 장거리 무선 통신 기술의 특징은? (0) | 2025.03.19 |
양자 컴퓨터란? 양자역학의 원리를 적용한 컴퓨터는 어떻게 다를까? (0) | 2025.03.17 |
AI란? 인공지능에도 급이 다른 인공지능이 있다? (1) | 2025.03.13 |
IoT란? 스마트폰, 가전제품, 자동차도 모두 컴퓨터인 시대 (2) | 2025.03.12 |