개발지식 먹는 하마 님의 블로그

API 간략 정리 본문

Web

API 간략 정리

devhippo 2025. 2. 17. 19:29

API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말로
정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 인터페이스이다.피

  • 필요한 정보만 공유할 수 있다.
  • 데이터를 완전히 노출할 필요가 없다.
  • 특정 요청과 관련된 작은 데이터 패킷을 공유할 수 있다.
애플리케이션에서 API 호출 전송
호출된 API는 유효한 요청을 받은 후 외부 소프트웨어 또는 웹서버를 호출
서버는 요청된 정보와 함께 API에 응답을 보냄
API는 데이터를 초기 요청 애플리케이션으로 전송함

[ 엔드포인트 ]

API 호출을 수신하는 디지털 위치
특정 기능(서비스)을 수행하는 URL 주소이다.
API 클라이언트는 특정 리소스에 도달하기 위한 엔드포인트 URL을 제공한다.

일반적으로 API 설명서에서 찾을 수 있다.

[ 웹 API ]

오늘날 대부분 사용되는 API
HTTP 프로토콜을 사용하여 인터넷을 통해 데이터 및 기능을 전송할 수 있도록 하는 데 사용된다.

웹 API 유형 4가지  
Public API HTTP 프로토콜로 액세스할 수 있는 오픈 소스 애플리케이션 프로그래밍 인터페이스
API 엔드포인트와 요청 및 응답 형식을 정의함
Partner API 개발자는 공용 API 개발자 포털을 통해 세프 서비스 모드로 파트너 API에 액세스한다.
온보딩 프로세스 완료, 로그인 자격 증명을 받아야 함
Private API 비공개 API는 외부 사용자에게 숨겨진 상태로 유지됨
조직은 이를 사용하여 다양한 내부 개발 팀 간의 생산성과 커뮤니케이션을 개선함
복합 API 여러 데이터 또는 서비스 API를 결합한다.
단일 호출로 여러 엔드포인트에 액세스할 수 있다.
단일 작업 실행 시, 여러 소스의 정보가 필요할 수 있는 마이크로 서비스 아키텍처에서 유용하다.

 

[ 데이터 객체 ]

API를 통해 주고받는 데이터 객체에는 여러 종류가 있다.
대표적으로 사용되는 것은 JSON과 XML이다.

< JSON >

더보기
  • 텍스트 기반의 경량 데이터 형식 : 가독성이 좋다.
  • 키 - 값 쌍 구성
  • 독립적인 언어 : 여러 언어에서 사용할 수 있다.
  • 간결함 : 문법이 간단하고 가볍다.
const data = {
    "키1" : "값1",
    "키2" : ["값2", "값3"] 
}

const jsonString = JSON.stringify(data); //객체 -> JSON 문자열
const jsonObject = JSON.parse(jsonString); //JSON 문자열 -> 객체

 

주로 fetch 메소드를 사용해 데이터를 주고 받는다.

fetch("https://example.com/api/users", {
  method: "POST", // HTTP 메소드
  headers: {
    "Content-Type": "application/json" // JSON 형식임을 명시
  },
  body: JSON.stringify(data) // JSON 객체를 문자열로 변환
})

< XML >

더보기
  • 마크업 언어
  • 데이터 저장 및 전달에 중점
  • 태그 기반 계층 구조
  • 높은 확장성 : 사용자가 직접 태그 정의 가능
  • HTML과 비슷한 형식
<?xml version="" encoding=""?> //xml 선언
<catalog>
  <book id="bk101">
    <author>J.K. Rowling</author>
    <title>Harry Potter and the Sorcerer's Stone</title>
    <genre>Fantasy</genre>
    <price>29.99</price>
    <publish_date>1997-06-26</publish_date>
  </book>
</catalog>

 

'Web' 카테고리의 다른 글

DTO (Data Transfer Object)  (0) 2025.03.31
웹 서비스 구조 및 흐름을 비유와 함께 이해하기  (0) 2025.03.20
REST API와 RESTful API  (0) 2025.03.20
HTTP Message  (0) 2025.03.18
TCP와 UDP  (0) 2025.03.17