- CRUD와 REST는 API(Application Program Interface) 업계에서 가장 널리 사용되는 두 가지 개념
- REST는 클라이언트와 서버 간의 HTTP 프로토콜 인터페이스를 표준화하기 위해 만들어졌으며 웹 API에 널리 사용되는 디자인 스타일 중 하나
- 반면에 CRUD는 데이터베이스 응용 프로그램에서 실행되는 네 가지 기본 작업을 나타내는 데 사용되는 약어
- REST와 CRUD는 CRUD가 REST 환경 내에 존재할 수 있기 때문에 함께 작동하며, 이들의 기능은 종종 서로 일치하지만 동일하지는 않다.
- 이들을 구별하는 가장 좋은 방법은 REST가 표준 (API 아키텍처)이고 CRUD가 함수 라는 점을 기억하는 것
REST 란 무엇입니까?
- REST는 Representational State Transfer의 약자입니다.
- 시스템이 상호 작용하는 방식을 지시하는 웹상의 컴퓨터에 대한 표준을 제공하는 소프트웨어 아키텍처 스타일입니다.
REST의 간략한 역사
- 2000년 REST 프로토콜이 출시되기 전에 웹 개발자는 웹 API를 개발하거나 사용하는 방법에 대한 표준이 없었습니다.
- 그 당시에는 많은 프로토콜이 사용되었지만 수행하기에는 너무 지루하고 복잡한 것으로 판명되었습니다.
- 동료들과 함께 Roy Fielding은 이 문제를 해결하기 위해 노력했고 오늘날 REST 프로토콜로 알려진 것을 개발했습니다.
- REST의 개발로 두 개의 서버가 전 세계적으로 데이터를 교환할 수 있게 되었습니다.
- REST 호환 시스템을 RESTful 시스템이라고 합니다.
- 이러한 시스템은 상태 비저장 및 클라이언트와 서버 문제의 분리가 특징입니다.
CRUD란?
- CRUD는 CREATE, READ, UPDATE, DELETE의 약자입니다. 이 네 가지 데이터베이스 명령 은 CRUD의 기초입니다.
- 많은 프로그래밍 프로토콜과 언어에는 이름이 다르고 기능이 약간 변경된 CRUD 버전이 있습니다.
- 좋은 예는 Insert, Select, Update 및 Delete를 사용하는 SQL(구조적 쿼리 언어)입니다 .
- 또한 전자 상거래 사이트(Amazon, Mango 등)의 구매자와 같은 동적 웹 사이트에는 CRUD 주기가 있습니다.
- 사용자는 계정 을 만들고 정보를 업데이트 하고 장바구니에서 항목을 삭제할 수 있습니다.
- CRUD 프레임워크를 사용하는 다른 프로그래밍 언어로는 Java(JOOQ, iBAtis), Phyton(Django), PHP(Propel, Doctrine) 및 .NET(NHibernate, LLBLGEN Pro) 등이 있습니다.
CRUD의 짧은 역사
- CRUD 약어는 구조적 쿼리 언어(SQL)에서 사용되는 데이터베이스 기능을 설명하기 위해 1980년대에 만들어진 것으로 생각됩니다. 이 용어는 1983년 James Martin 의 책 Managing the Database Environment 에서 처음 알려지게 되었습니다 . CRUD 작업에 대한 첫 번째 언급은 Haim Kilov의 1990년 기사 "From Semantic to Object-Oriented Data Modeling"에 있습니다.
- CRUD 주기는 종종 이를 시작한 프로세스보다 오래 지속되는 데이터베이스로 영구 저장소를 향상시키는 일련의 기능으로 설계되었습니다. 최신 소프트웨어 프로그래밍 및 개발에서 CRUD는 함수로서의 시작을 넘어 SQL, DDS 및 HTTP 프로토콜과 같은 응용 프로그램에 대한 설계 원칙을 제공했습니다.
REST와 CRUD의 유사점은 무엇입니까?
일부 순수주의자는 REST와 CRUD가 서로 관련이 없다고 주장할 수 있습니다. 그러나 그들이 사용하는 명령을 자세히 살펴보면 둘 사이의 유사점을 알 수 있습니다.
REST 명령
- POST – 데이터베이스에 새 레코드를 생성합니다.
- GET – 이 요청은 데이터베이스에서 가져온 정보를 읽습니다.
- PUT/PATCH – 개체를 업데이트합니다.
- DELETE - 데이터베이스에서 레코드를 제거합니다.
CRUD 명령
- CREATE – INSERT 문을 통해 새 레코드를 생성합니다. REST에서 이것은 POST 명령입니다.
- READ/RETRIEVE - 이 프로시저는 입력 매개변수를 기반으로 데이터를 가져옵니다. REST에서 이는 GET 명령과 동일합니다.
- UPDATE – 데이터를 덮어쓰지 않고 업데이트합니다. REST에서 이것은 PUT 요청입니다.
- DELETE- 데이터베이스에서 데이터를 제거합니다. REST는 동일한 요청을 사용하여 데이터를 삭제합니다.
REST와 CRUD의 차이점은 무엇입니까?
REST와 CRUD의 유사성 때문에 동일한 기능을 가진 것으로 착각하기 쉽습니다. 그러나 그것은 사실과 거리가 멀다. 조금 더 깊이 파고 들면 그들 사이의 차이점을 탐구합니다.
- REST는 HTTP 명령을 사용하는 리소스 및 Hypermedia를 중심으로 한 아키텍처 시스템입니다. CRUD는 데이터베이스 설정에서 레코드를 유지하기 위한 주기 입니다. 기본 형식에서 CRUD는 응용 프로그램의 기능을 설명하는 정보를 조작하는 방법입니다. REST는 HTTP 명령을 통해 데이터를 제어합니다. 사용자의 정보를 생성, 수정, 삭제하는 방법입니다.
- CRUD 기능은 REST API에 존재할 수 있지만 REST API는 CRUD 기능으로 제한되지 않습니다. CRUD는 REST 아키텍처 내에서 작동할 수 있지만 REST API는 CRUD와 독립적으로 존재할 수 있습니다. 예를 들어 REST API를 사용하면 클라이언트가 CRUD 기능에 해당하지 않는 경우에도 서버를 재부팅할 수 있습니다. REST는 적절한 HTTP 메서드를 사용하는 한 이 작업을 수행할 수 있습니다.
- REST는 일반적으로 HTTP 명령을 통해 데이터를 사용하는 것을 말합니다. 사용자가 화면상의 데이터와 서버에 저장되는 정보를 조작하는 방법을 용이하게 하는 교리입니다. 프로그래머는 필수 CRUD 기능을 처리할 수 있는 REST API를 만들 수 있지만 그 반대의 경우도 마찬가지입니다.
- REST와 CRUD의 기능은 유사하지만(위에서 설명한 대로) 동일하지는 않습니다. PUT 은 아직 존재하지 않는 리소스를 포함하여 리소스를 대체합니다. POST 는 새 리소스를 추가합니다. 이 두 명령 모두 새 리소스를 생성하지만 PUT 은 일반적으로 이미 있는 리소스를 업데이트하는 데 사용됩니다. PATCH 는 주로 리소스의 일부를 업데이트하는 데 사용되지만 PUT 은 전체 리소스를 교체하여 업데이트하는 데만 사용됩니다.
REST와 CRUD는 함께 작동하지만 동일하지는 않습니다.
REST와 CRUD는 CRUD가 REST 환경 내에 존재할 수 있기 때문에 함께 작동하며, 이들의 기능은 종종 서로 일치하지만 동일하지는 않습니다. 이들을 구별하는 가장 좋은 방법은 REST가 표준 (API 아키텍처)이고 CRUD가 함수 라는 점을 기억하는 것 입니다. 이 본질적이지만 직접적인 차이점을 이해하는 것은 두 가지 모두를 이해하는 데 필요합니다.
출처
https://www.logicmonitor.com/blog/rest-vs-crud
'항해99 개발 일지 > [1주차] 풀스택 프로젝트' 카테고리의 다른 글
[06] JWT토큰 로그인/ 회원가입 만들기 (0) | 2022.11.20 |
---|---|
[05] JWT 토큰 vs 쿠키/세션 비교 (0) | 2022.11.20 |
[03] API (0) | 2022.11.20 |
[02] 트러블슈팅 모음 (1) | 2022.11.17 |
[01] 와이어프레임, 화면단 (0) | 2022.11.15 |