API와 Rest API에 대하여

GaramFlow·2023년 10월 27일
0

API와 REST API

1) API

  • 소프트웨어 등이 소통하기 위한 규칙이다.
    • 소프트웨어 등이 통신할 수 있게 해주는 중간다리 역할을 한다.
  • 하나의 소프트웨어가 다른 소프트웨어의 기능이나 데이터를 사용할 수 있도록 해주며, 이로인해 다른 시스템에서도 사용이 가능하다.

(1) API는 무슨 기능이 있을까?

  • 데이터를 교환하거나 통합할 수 있다.
  • 앱의 기능을 다른 앱에서 사용할 수 있게 해준다.
  • 데이터 공유 시 보안, 접근 권한을 관리할 수 있다.

(2) REST API란?

  • REST 기반으로 설계된 API를 말한다.
  • REST API는 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용해서 리소스에 대한 작업을 수행한다.

2) REST

  • REST는 소프트웨어 아키텍쳐 스타일을 말한다.
  • 리소스를 이름으로 구분하고 해당 리소스 상태를 주고받는 것을 말한다.
  • HTTP URI로 리소스를 명시하고 HTTP 메소드를 통해 리소스에 대한 CRUD를 적용한다.

(1) REST는 무슨 목적으로 만들어졌는가?

  • 웹 상의 리소스를 효율적으로 관리하고 전달하기 위해 설계되었다.

(2) REST에서 사용되는 주요 개념

  • 리소스 (Resource) : 웹 상에서 각각의 고유한 URI로 식별되는 모든 데이터 및 서비스
  • 상태 전달 (State Transfer) : 클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 리소스의 상태를 표현하는 데이터를 응답으로 보내게 된다.
  • 표현 (representation) : 리소스의 상태를 JSON, XML 등의 형식으로 표현해서 클라이언트에 전달된다.

(3) REST 원칙은 무엇인가?

  • 무상태성 (Stateless) : 각각의 요청이 독립적이며 서버는 이전 상태를 저장하지 않는다.
  • 캐시 가능 (Cacheable) : 클라이언트는 서버로부터 받은 응답을 캐시해서 재사용 가능하다.
  • 통신 방식 (Uniform Interface) : API의 인터페이스가 표준화되어 있고, 주로 HTTP 메소드(GET, POST, PUT, DELETE 등)를 이용해서 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
  • 클라이언트-서버 구조(Client-Server) : 사용자 인터페이스와 데이터 저장소가 분리되어서 각각이 독립적이다.
  • 계층화 (Layered System) : 클라이언트는 자신이 직접 연결된 서버인지, 중간에 다른 계층이 있는지 알 수 없다.
  • 코드 온 디맨드 (Code on Demand) : 서버가 클라이언트에 실행 가능한 코드를 전송할 수 있다.

3) RESTful API

  • RESTful이란 REST 아키텍쳐 스타일을 따르고 있다는 것을 말한다.
  • REST 원칙을 기반으로 클라이언트-서버 간 무상태 통신, 캐싱 가능한 응답 등으로 구현되어 있다. 예를 들어, GET /bags 요청은 서버에서 가방들에 대한 목록을 조회하고 이후에 같은 요청에 대해 캐시된 데이터를 사용 가능하다. 또한, 각 리소스는 고유한 URI를 가지고 표준 HTTP 메소드를 사용해서 CRUD 작업을 수행한다.

2023/10/27 작성

profile
간단한 지식 저장 및 공유를 위한 블로그입니다.

0개의 댓글