API

이강용·2024년 1월 25일
0

CS

목록 보기
3/109

What is API

  • API(API, Application Programming Interface)는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미함

ex

A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 한다고 했을 때의 어떻게 통신할 것인지, 어떠한 데이터를 주고 받을 건지 등에 대한 방법(HTTP, HTTPS 프로토콜을 사용할 것인지, GET, POST 등의 방식 등..)이 정의된 중계계층을 말함

  • 참고로 API는 과거부터 발전되어온 용어로 라이브러리 및 프레임워크를 설명하는 명세서, 웹상에서 WEB API, WEB SOCKET API 등을 가리키는데 현재를 기준으로 API라고 할 때 보통 WEB API를 기준으로 설명함

Interface

  • 인터페이스는 서로 다른 두개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면임. 이를 통해 해당 컴퓨터의 내부 서버가 어떻게 구현되어있는지는 상관 없이 인터페이스를 통해 통신 등이 가능함

API의 작동방식

  • API는 소프트웨어나 서비스 사이의 연결 고리로 작동함
  1. 웹 앱에서의 요청 : 사용자가 웹 브라우저를 통해 웹 애플리케이션을 사용할 때, 특정 작업을 수행하고자 요청을 함
    👉🏻 사용자가 소셜 미디어 포스트를 불러오거나, 계정 정보를 업데이트하고자 할 수있음
  2. 인터넷을 통한 전송 : 이 요청은 인터넷을 통해 웹 서버에 있는 API로 전송됨. 요청은 HTTP(HyperText Transfer Protocol)를 사용하여 전송될 수 있으며, 특정한 데이터(예:JSON)와 함께 API에 정의된 특정 엔드포인트로 전송됨
  3. API의 처리 : API는 받은 요청을 분석하고, 필요한 작업을 수행하기 위해 웹 서버에 지시를 내림. 이는 DB조회, 데이터 수정, 또는 다른 서비스와의 통신을 포함할 수 있음
  4. DB와의 상호 작용 : 웹 서버는 API의 지시에 따라 DB와 상호작용함. 데이터를 검색, 업데이트, 삭제하는 등의 작업이 수행될 수 있음
  5. 응답의 반환 : 요청된 작업이 완료되면, 결과는 API를 통해 웹 애플리케이션으로 다시 전송됨. 이때 응답 데이터 역시 JSON이나 XML 같은 형태로 포맷되어 전송될 수 있음
  6. 웹 앱에서의 표시 : 웹 애플리케이션은 API로부터 받은 응답을 처리하여 사용자에게 결과를 보여줌. 이는 새로운 데이터를 화면에 렌더링하거나, 사용자의 요청이 성공적으로 완료되었음을 알리는 메시지를 표시하는 것을 포함할 수 있음

API의 장점

  1. 제공자는 서비스의 중요한 부분을 드러내지 않아도 됨. 예를 들어 DB 설계 구조나 드러내고 싶지 않은 DB의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부부만을 드러낼 수 있음
  2. 사용자는 해당 서비스가 어떻게 구현되는지 알 필요없이 필요한 정보만을 받을 수 있음
  3. OPEN API의 경우 앱 개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있음(ex: 로그인 API)
  4. 내부 시스템의 변경사항이 API 사용자에게 영향을 미치지 않도록 할 수 있음. 즉, DB 구조나 서버의 비지니스 로직에 변경이 생겨도, API의 인터페이스 자체는 그대로 유지될 수 있음. 이는 API를 일괄되고 안정적인 계약(contract)으로 만들어, 클라이언트 애플리케이션(사용자의 앱)이 서버의 내부 변경에 대해 걱정하지 않고도 안정적으로 서비스를 이용할 수 있게 함. 결과적으로 사용자는 서비스의 내부적인 업그레이드나 수정 때문에 빈번한 앱 업데이트를 강제로 받지 않아도 됨. 이러한 접근은 API의 버전 관리와 호환성 유지에도 중요한 역할을 하며, 개발자는 이를 통해 더 나은 유지보수성과 확장성을 확보할 수 있음
  5. 제공자의 입장에서는 API를 활용하여 다양한 데이터를 효과적으로 수집하고 관리할 수 있음. 특정 이벤트(예: 책구매, 리뷰 작성, 특정 페이지 방문 등)에 대한 API를 구현할 수 있음. 사용자가 이러한 이벤트를 수행할 때마다 이 API는 호출되어, 발생한 이베트의 데이터를 서버로 전송함. 이를 통해 모든 사용자가 데이터를 중앙 집중식으로 수집하고, 이 데이터를 분석하여 사용자 경험을 향싱시키거나 마케팅 전략을 개선하는 데 활용할 수 있음

API 종류

private : 내부적으로 사용 됨. 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간의 통신을 함. 이는 비즈니스 파트너와도 사용될 수 있음. 비밀스럽게 해당 파트너와 해시키를 공유해 통신함

public : 모든 사람이 사용할 수 있음. 많은 트래픽을 방지하기 위해 하루 요청수의 제한, 계정당 몇개 등으로 관리함

profile
HW + SW = 1

0개의 댓글