TIL 021 | CRUD vs REST API

This Is Empty.·2021년 9월 28일
2

TIL

목록 보기
21/23
post-thumbnail

API란?


Application Programming Interfaces의 약자로, 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

API는 프로그램이 이해할 수 있게 명령 목록을 정리하고, 명령을 받으면 응용프로그램과 상호작용하여 명령에 대한 값을 전달한다. 즉 API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라고 할 수 있다.

왜 API를 사용해야할까?

  • API를 사용하면 구현 방식을 알지 못해도 제품 또는 서비스가 서로 커뮤니케이션 할 수 있다.
  • 애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있다.
  • 새로운 툴과 제품을 설계하거나 기존 툴과 제품을 관리하는 경우에 API는 유연성을 제공하고 설계, 관리, 사용 방법을 간소화 해 준다.

CRUD API

Create, Read, Update, Delete 의 앞 알파벳을 따서 CRUD 라고 한다. 이름은 약간씩 다를 수 있지만 대부분의 프로그램이 가지고 있는 특성이며, 데이터베이스 애플리케이션에서 수행할 수 있는 기본 작업을 일컫는다.

CRUD Principle

  • CREATE : INSERT를 통하여 새 record 생성
  • READ : input parameter를 기반으로 데이터를 읽어온다 (RETRIEVE)
  • UPDATE : 덮어쓰지 않고 record를 수정한다
  • DELETE : 지정된 경우 삭제한다

REST API

소프트웨어, 특히 웹 API에 널리 사용되는 아키텍처 스타일이다. 다음 5가지 설계 제약조건으로 정의된다.

REST Constraints

  1. Client-Server : 클라이언트와 서버는 독립적으로 행동한다.
  2. Stateless : 서버는 클라이언트 상태를 기록하지 않는다.
  3. Cacheable : 서버는 데이터가 캐시될 수 있는지 여부를 표시한다.
  4. Uniform Interface : 클라이언트와 서버는 서로 보편적이고 예측가능하게 상호작용 한다. 서버가 리소스를 노출한다는 점에서 중요한 측면이다.
  5. Layered System : 어플리케이션은 클라이언트와 서버 사이 중개자에 관계없이 동일하게 작동한다.

CRUD vs REST

웹을 통해 제공되는 REST API의 특성으로 인해 API는 GET, POST 등과 같은 자체 데이터 조작 방법이 있는 HTTP 프로토콜을 통해 클라이언트와 상호작용한다.

그러나 CRUD와 REST가 완전히 똑같은 것은 아니다.

  • PUT은 해당 리소스가 아직 존재하지 않더라도 리소스를 대체하지만 POST는 새 리소스를 추가한다. 둘 다 새 리소스를 만드는데 사용할 수 있지만 PUT은 주로 기존 리소스를 업데이트 하는데 사용된다.
  • PATCH는 리소스의 일부를 업데이트 하는 데 사용되는 반면 PUT은 전체 리소스를 교체하여 업데이트 하는데만 사용된다.
  • POST는 리소스 고유의 특정 의미에 따라 처리되어 포괄적인 기능을 한다. 업데이트 기능을 가질 수도 있다.

결론

CRUD는 데이터베이스 애플리케이션과 상호 작용하기 위한 네가지 주요 기능이다. CRUD는 데이터베이스 설정에서 영구적인 기록을 하기 위한 주기이고, RESTful 아키텍처의 목표를 준수하기 위해 REST 명령에 매핑된다. REST API가 적절한 HTTP메서드를 사용한다면 CRUD 이상의 기능을 발휘한다.

참고
API(애플리케이션 프로그래밍 인터페이스)란 - 개념, 기능, 장점
API란? 비개발자가 알기 쉽게 설명해드립니다!
CRUD vs. REST: What's the Differece?
REST vs CRUD: Explaining REST & CRUD Operations

profile
Convinced myself, I seek not to convince.

0개의 댓글