[CS] API (Application Programming Interface)

2024. 11. 19. 23:11·CS
728x90
728x90

API (Application Programming Interface)

  - 소프트웨어 구성 요소들이 서로 통신하고 상호작용할 수 있게 하는 메커니즘

  - 다른 시스템, 애플리케이션, 서비스 등을 활용/통합하기 위한 다리 역할

  - 통신 규칙 정의

     : 클라이언트와 서버가 어떻게 데이터를 교환할지를 정의함

        → 규칙을 따르지 않으면 통신이 불가능함

  - 추상화 제공

     : 내부 구현 방식을 숨기고, 필요한 기능만 노출함

        → 내부 작동 방식을 이해하지 못하더라도 기능을 활용할 수 있음

  - 재사용성

     : 동일한 기능을 처음부터 구현할 필요 없이, 만들어져 있는 API를 활용할 수 있음

  - 플랫폼 간 연동

     : 다른 서비스와의 통합 용이

  - 확장 가능성

     : 하나의 API를 여러 프로젝트/플랫폼에서 사용할 수 있음

 

※ API 관점에서의 '애플리케이션'

  : 고유한 기능을 가진 모든 소프트웨어

 

 


주요 구성 요소

1) 엔드포인트 (Endpoint)

  - 클라이언트가 API와 통신하기 위해 요청을 보내는 URL 경로 (API의 접점 역할)

  [구조]

     i. 기본 URL : API의 기본 주소                 ex) https://api.example.com

     ii. 경로 : 특정 리소스를 가리키는 경로    ex) /users

     iii. 쿼리 스트링 : 요청 세부 조건 지정      ex) ?page=1&limit=10

 

2) 메서드 (HTTP Methods)

  - API 요청의 의도를 나타내는 HTTP 메서드

GET 데이터 조회
POST 데이터 생성
PUT 데이터 전체 수정
PATCH 데이터 일부 수정
DELETE 데이터 삭제

 

3) 데이터 형식 (Data Format)

  - API에서 요청 및 응답 데이터를 표현하는 방식

  - JSON (JavaScript Object Notation)

  - XML (eXtensible Markup Language)

  - HTML

 

 


사용 목적에 따른 API 유형

1) 퍼블릭 API (Public API)

  - 누구나 접근할 수 있는 API

 

2) 프라이빗 API (Private API)

  - 내부 시스템에서만 사용되도록 설계된 API

  - 주로 비즈니스 내에서 시스템과 데이터를 연결하는 데 사용됨

 

3) 파트너 API (Partner API)

  - B2B 파트너십을 지원하기 위해, 권한이 부여된 외부 개발자만 액세스 가능한 API

 

4) 복합 API (Hybrid API)

  - 퍼블릭 API와 프라이빗 API가 혼합된 형태

  - 일부 기능은 공개하고, 일부는 특정 사용자들에게만 제공됨

 

 


# 웹 API

  - 웹 기술을 기반으로 한 API

  - 애플리케이션이 네트워크를 통해 데이터를 주고받거나 기능을 사용할 수 있도록 돕는 인터페이스

  - 웹 서버와 클라이언트 간의 데이터 교환

  - HTTP 기반

 

# API 통합

  - 여러 API를 활용해 애플리케이션을 연결하거나, 새로운 기능을 구현하는 과정

  - 외부 서비스의 기능을 애플리케이션에 추가

  - 서로 다른 시스템 간의 데이터를 실시간으로 동기화

     ex) 휴대폰 갤러리에서 클라우드로 자동 동기화

 

# API 게이트웨이

  - 클라이언트와 여러 서비스(API) 간의 중간 계층

     : 모든 API 요청을 관리하고 라우팅하는 역할을 함

  - 요청 전달 외에도 보안, 로깅, 요청 조작 등 다양한 기능을 수행함

 

# GraphQL

  - API용으로 특별히 개발된 쿼리 언어

  - 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 함

  - API를 빠르고 유연하게 만들 수 있도록 설계됨

 

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'CS' 카테고리의 다른 글

[CS] 캐싱 전략  (0) 2024.11.21
[CS] 인증 (Authentication)  (0) 2024.11.20
[CS] 브라우저 (Browser)  (1) 2024.11.18
[CS] 호스팅 (Hosting)  (1) 2024.11.17
[CS] 인터넷 (Internet)  (5) 2024.11.16
'CS' 카테고리의 다른 글
  • [CS] 캐싱 전략
  • [CS] 인증 (Authentication)
  • [CS] 브라우저 (Browser)
  • [CS] 호스팅 (Hosting)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    jsp
    java
    개발일지
    jQuery
    zapier
    tailwindcss
    Hotkeys
    vuejs
    SQL
    C#
    git
    HTML
    typeScript
    cs
    SWAGGER
    CSS
    티스토리챌린지
    Android
    js
    Swing
    SEO
    오블완
    php
    Wordpress
    SpringBoot
    errorNote
    Codeigniter
    면접
    http
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[CS] API (Application Programming Interface)
상단으로

티스토리툴바