API | REST API, GraphQL, Open API

2025. 1. 30. 17:44·Frontend/궁금증 💭

API(Application Programming Interface)

  • 애플리케이션 : 고유한 기능을 가진 모든 소프트웨어
  • 인터페이스 : 두 애플리케이션 간의 서비스 계약
    • 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의
  • 고유한 기능을 가진 두 소프트웨어 간의 서비스 계약
  • 소프트웨어 간에 데이터를 교환할 수 있도록 하는 규칙이나 프로토콜
  • 웹 API : 클라이언트와 웹 리소스 사이의 게이트웨이

 

API는 어떻게 작동하나요?

  • 클라이언트(요청을 보내는 애플리케이션) - 서버(응답을 보내는 애플리케이션) 구조
  • ex) 모바일 앱(클라이언트) - 날씨 데이터베이스(서버)
  • 4가지 작동방식
    • SOAP API - 단순 객체 접근 프로토콜 사용, XML을 사용하여 메시지 교환
    • RPC API - 원격 프로시저 호출
    • Websocket API - JSON 객체 사용하여 데이터 전달, 양방향 통신 지원
    • REST API - 가장 많이 사용되고 유연한 API

REST API란?

  • REST(Representational State Transfer)
    • API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
    • 클라이언트가 서버 데이터에 엑세스하는 데 사용할 수 있는 GET, PUT DELETE 등의 함수 집합을 정의
  • REST API
    • REST 아키텍처 스타일을 따르는 API
  • RESTful 웹 서비스
    • REST 아키텍처를 구현하는 웹 서비스
  • RESTful API
    • RESTful 웹 API
  • REST API와 RESTful API는 같은 의미로 사용 가능
  • REST API 예시
    • Kakao Developers

 

REST API의 특징

  • HTTP를 사용하여 데이터 교환
  • 주요 특징 : 무상태
    • 서버가 요청 간에 클라이언트 데이터를 저장하지 않음을 의미

 

REST API의 장단점

  • 장점 : 요청의 내용을 직관적으로 알 수 있음(HTTP 메서드, URI)
  • 단점 : 많은 엔드포인트를 관리해야 함, Overfetching+Underfetching 문제 발생
    • ⇒ GraphQL이 해결(하나의 엔드포인트, 필요한 정보만 요청)

 


GraphQL이란?

  • Graph Query Language : 질의를 하기 위한 언어
  • (페이스북에서 만든)API용으로 특별히 개발된 쿼리 언어
  • 클라이언트가 필요로 하는 정보만을 선택해서 서버에 요청할 수 있음(웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적)
  • 프론트엔드 개발자에게 단일 GraphQL 엔드포인트로 여러 데이터베이스, 마이크로서비스 및 API를 쿼리할 수 있는 기능을 제공
  • ex)
{
	hero {
		name
		friends {
			name
		}
	}
}

 

GraphQL를 사용하는 이유

  • 데이터 관리를 간소화하여 최신 웹 및 모바일 애플리케이션을 더 빠르게 구축
  • 단일 네트워크 요청에서 여러 소스에 걸쳐 여러 정보를 쿼리하고 검색할 수 있으며, 느린 연결에서도 더 빠른 응답 시간을 보장
  • 서버에서 데이터를 반환할 때 데이터를 구조화하는 방법을 지정 ⇒ 필요한 형식의 데이터만 쿼리

 

GraphQL을 사용하는 경우

  • 실시간 애플리케이션
  • 복잡하고 방대한 데이터 기반 애플리케이션
  • 모바일 백엔드

 

GraphQL의 단점

  • 캐싱이 용이하지 않음
    • 복잡한 GraphQL 메시지로 되어 있기 때문에 이를 기준으로 캐싱을 하기가 용이하지 않음
  • 성능 문제(서버에 부담)
    • 복잡한 쿼리를 해석해서 작업들을 실행하기 때문에 REST API에 비해 서버에 부담을 줄 수 있음
  • 러닝 커브가 높음

Open API란?

  • 누구나 쓸 수 있도록 공개된 API
  • ex) 공공데이터 포털, 지도 API, 로그인 API, 주소 API 등정부는 공공데이터 포털을 통해 국가기관이 보유한 수많은 데이터를 API형태로 무료 공개
    • https://www.data.go.kr/

 

 

 

 

참고

https://aws.amazon.com/ko/what-is/api/

https://aws.amazon.com/ko/graphql/?nc1=h_ls

https://aws.amazon.com/ko/what-is/restful-api/

https://www.youtube.com/watch?v=lYuWfoWD67Q

https://tech.kakao.com/posts/364

'Frontend > 궁금증 💭' 카테고리의 다른 글

CORS(교차 출처 리소스 공유)  (0) 2025.10.21
'Frontend/궁금증 💭' 카테고리의 다른 글
  • CORS(교차 출처 리소스 공유)
jejukyj
jejukyj
🧇❣️
  • jejukyj
    #
    jejukyj
  • 전체
    오늘
    어제
    • 분류 전체보기 (4)
      • Frontend (4)
        • 궁금증 💭 (2)
        • WIT 스터디 (2)
        • 모던 자바스크립트 Deep Dive (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    FE
    API
    브라우저 동작 원리
    CORS 동작 과정
    cors 에러
    javascript
    JS
    GraphQL
    REST API
    CORS
    https
    Open API
    http/1.1
    프론트엔드
    frontend
    교차 출처 리소스 공유
    HTTP
    모던 자바스크립트 딥 다이브
    HTTP/2.0
    http/1.0
    HTTP와 HTTPS 차이점
    브라우저 동작 과정
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jejukyj
API | REST API, GraphQL, Open API
상단으로

티스토리툴바