[IT용어] API란 무엇일까?

Date:     Updated:

카테고리:

태그:

안녕하세요, 방문자 여러분. 허니테크입니다😋

데이터 과학을 공부하며 스터디 혹은 프로젝트를 하다보면 API라는 용어를 접하게 됩니다. API가 정확히 뭔지도 모른체 데이터를 긁어 모으는데도 사용하고 서버와 연결하여 내가 만든 데이터베이스를 서버와 연결하여 웹에 나타내는 등. 기획을 하거나 개발을 하면서도 정확한 정의와 기능을 모르면서 쓰는 경우가 많았습니다. 이번 기회를 빌어 API에 대해 정확히 탐구해보도록 하겠습니다!

여러 자료들을 독학하며 작성하는 글이기에 오류가 존재할 수 있습니다. 틀린게 있다면 꼭 댓글로 말씀해주세요~!


API는 무엇인가?

API는 Application Programming Interface의 줄임말입니다. 여기서 애플리케이션은 고유 기능을 가진 소프트웨어를 뜻합니다. 이것은 앱, 웹 프로그램 등이 될 수도 있습니다. 인터페이스는 소프트웨어를 작동할 수 있게 조작하는 것들을 말합니다. 물리적으로는 키보드, 터치화면 그리고 일종의 계약(통신규약), 코드 등이 있습니다. API는 서비스 계약으로 요청과 응답을 통해 앱이 서로 통신(소통)하는 방법을 정의합니다. API 문서는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있구요.

즉, 각기 다른 소프트웨어(서버 내 코드, 데이터, 프로토콜 등)가 서로 통신할 수 있게 하는 규격화된 형식(매뉴얼)이라 생각하면 됩니다. 수 많은 프로그램, 서버들이 서로 요청과 정보 교환을 합니다. 이들 사이에도 소통할 수 있는 창구, 각각의 요청이 아니라 정해진 요청 형식이 필요합니다. 개발자가 소프트웨어(서비스, 웹, 데이터베이스 등)을 만들 때 A라는 만들어진 소프트웨어의 API 문서(형식 폼)를 통해 요청하고 응답을 받아 구성요소들을 가지고 오는 것이죠. 비유하자면 B라는 키를 입력하면 C라는 값을 주거나 서로 상호작용하는 식으로요!

API가 작동하는 방법

API 아키텍처는 일반적으로 클라이언트와 서버 측면에서 설명됩니다. 요청을 보내는 애플리케이션(사용자)는 클라이언트, 응답을 보내는 애플리케이션(제공자)는 서버라고 합니다.

API가 생성된 시기와 이유에 따라 API는 크게 4가지 방식으로 작동합니다.

SOAP API

단순 객체 접근 프로토콜을 사용하는 API입니다. 클라이언트와 서버는 XML을 사용하여 메세지를 교환합니다. 최근에는 유용성이 떨어지는 이유로 잘 쓰이지 않습니다.

RPC API

이 API는 원격 프로시저 호출이라 합니다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송합니다. (예, 사용자가 서버(제공자)의 사이트에서 어떤 값을 입력하거나 기능을 수행한 결과를 다시 사용자의 사이트로 돌려 받음)

Websocket API

이 API는 JSON 객체를 사용하여 데이터를 전달하는 최신 웹 API 개발입니다. 이 API는 클라이언트 앱과 서버 간의 양방향 통신을 지원합니다. 서버가 연결된 클라이언트에 콜백 메세지를 전송할 수 있습니다.

웹 API

웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스입니다. (개발자가 만들어놓은 서버를 브라우저를 통해 표시하는데 필요한 통신규약(프로토콜)이라 생각하면 됨) 모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아니라고 합니다.

REST API

REST는 Representational State Transfer의 줄임말입니다. REST는 클라이언트가 서버 데이터에 엑세스하는데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환합니다.

자주 보는 코딩 유튜버의 REST API 강의

API 통합이란 무엇일까?

API 통합은 클라이언트와 서버 간의 데이터를 자동으로 업데이트하는 소프트웨어 구성 요소입니다. API 통합을 이용하여 많은 시스템 함수를 효율적으로 자동화 할 수 있습니다. 개발자가 매번 API를 통해 데이터를 가져오지 않고 자동으로 업데이트가 된다면 프로그래밍을 통해 이를 웹 혹은 시스템에 적용하는 알고리즘을 짤 수 있다는 것이니까요. 이런 이유로 노션 API 혹은 여러 API 제공 서비스에서 API 통합이라는 용어를 쓴 것 같습니다.

API 사용범위 유형

  • 프라이빗 API

기업 혹은 개인이 시스템과 데이터를 연결하는 데만 사용하는 API로 공개하지 않습니다.

  • 퍼블릭 API

외부에 공개되며 누구나 사용할 수 있습니다. 다만, API 설계자에 따라 관련된 권한 부여, 사용 비용 등은 달라질 수 있습니다.

  • 파트너 API

이는 B2B 파트너십을 지원하기 위해 권한이 부여된 개발자만 엑세스 할 수 있습니다. (이건 ,, 사실 이해하지 못했습니다..)

  • 복합 API

두 개 이상의 서로 다른 API를 결합아여 복잡한 시스템 요구 사항이나 동작을 처리합니다.


API에 대한 정의, 유형 그리고 어떤 상황에서 사용하는지에 대해 간략하게 탐구해봤습니다. … 동료들이 아무렇지 않게 API ,, “그거 API로 가지고 오면 돼,,”, API ,, 말하고 다니길래 대수롭지 않은 기능 혹은 ,, IT 용어 인지 알았는데 이렇게 ,, 복잡하고 개발환경에 스며들어있는지 몰랐습니다. 혼자 API가 무엇인지 완파하려 했지만 간단하게 끝날 것 같지는 않네요! API 사용방법 혹은 작성법 등은 다음 게시물을 통해 연구 및 작성해보아야 할 것 같습니다 .. 허허허 … 우리 모두 힘 내어 보..아…요…


참고자료

https://aws.amazon.com/ko/what-is/api/
https://youtu.be/iOueE9AXDQQ
https://steemit.com/kr/@yahweh87/it-api

IT 카테고리 내 다른 글 보러가기

댓글 남기기