CRUD
1. 개요
CRUD는 데이터를 관리하는 기본적인 연산을 나타내는 약어이다. CRUD는 생성(Create), 읽기(Read), 수정(Update), 삭제(Delete)의 네 가지 연산을 의미하며, 데이터베이스, RESTful API, 사용자 인터페이스 등 다양한 분야에서 활용된다. 1983년 제임스 마틴의 저서에서 처음 사용되었으며, 각 연산은 SQL 명령어나 HTTP 메서드에 매핑될 수 있다. CRUD 외에도 ABCD, CRUDL, BREAD 등 다양한 변형이 존재한다.
-
데이터베이스 -
지식 베이스
지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다. -
데이터베이스 -
화이트리스트
화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다. -
데이터베이스 관리 시스템 -
트랜잭션 처리
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다. -
데이터베이스 관리 시스템 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
2. 개념
데이터는 저장 메커니즘의 위치/영역에 저장될 수 있다.
* 저장 위치의 기본적인 특징은 해당 내용이 읽기 가능하고 업데이트 가능하다는 것이다.
* 저장 위치는 읽거나 업데이트하기 전에 생성되어야 한다. 즉, 내용을 할당하고 초기화해야 한다.
* 나중에는 저장 위치를 삭제해야 할 수도 있다. 즉, 종료하고 할당 해제해야 한다.
이 네 가지 연산을 함께 묶어 CRUD (Create, Read, Update, Delete), 즉 생성, 읽기, 수정, 삭제로 알려진 기본적인 저장 관리 연산을 구성한다.
3. 역사
'C.R.U.D'라는 용어는 1983년 제임스 마틴이 저술한 《데이터베이스 환경 관리》(Managing the data-base environment)에서 처음 대중화되었을 가능성이 높다.
4. 데이터베이스
CRUD 약어는 데이터베이스가 구현하는 주요 작업들을 나타낸다. 이 약어의 각 글자는 표준 구조화 질의 언어 (SQL) 명령문에 매핑될 수 있다.
| CRUD | SQL |
|---|---|
| 생성 | INSERT |
| 읽기 | SELECT |
| 갱신 | UPDATE |
| 삭제 | DELETE |
관계형 데이터베이스는 소프트웨어 애플리케이션에서 일반적인 영속성 계층이지만, 이 외에도 수많은 영속성 계층이 존재한다. 예를 들어, CRUD 기능은 문서 데이터베이스, 객체 데이터베이스, XML 데이터베이스, 텍스트 파일 또는 바이너리 파일로 구현할 수 있다.
일부 빅 데이터 시스템은 UPDATE를 구현하지 않고 타임스탬프가 있는 INSERT(저널링)만 사용하여 객체의 새로운 버전을 매번 저장한다.
5. RESTful API
CRUD 약어는 RESTful API 논의에도 나타난다. CRUD의 각 문자는 HTTP (Hypertext Transfer Protocol) 메서드에 다음과 같이 매핑될 수 있다.
| CRUD | HTTP |
|---|---|
| 생성 (Create) | POST, PUT (id 또는 uuid가 없는 경우) |
| 읽기 (Read) | GET |
| 갱신 (Update) | PUT (교체), PATCH (수정) |
| 삭제 (Delete) | DELETE |
HTTP에서 GET (읽기), PUT (생성 및 갱신), POST (id 또는 uuid가 없는 경우 생성) 및 DELETE (삭제) 메서드는 사용자 에이전트가 대상 웹 리소스의 상태를 직접 조작할 수 있도록 하므로 CRUD 작업이다. 반면에 POST 메서드는 일반적으로 CRUD 작업 범위를 초과하는, 대상 리소스에 특정한 의미를 가진 프로세스 작업이다.
6. 사용자 인터페이스
CRUD는 대부분의 애플리케이션 사용자 인터페이스 수준에서도 관련이 있다. 예를 들어, 주소록 소프트웨어에서 기본 저장 단위는 개별적인 연락처 항목이다. 최소한 소프트웨어는 사용자에게 다음을 허용해야 한다.
* 새로운 항목을 추가하는 생성
* 기존 항목을 검색, 조회 또는 보는 읽기
* 기존 항목을 편집하는 수정
* 기존 항목을 비활성화하거나 제거하는 삭제
이러한 작업은 매우 기본적인 것이므로 종종 문서화되고 "연락처 관리" 또는 "문서 관리"와 같은 포괄적인 제목으로 설명된다.
7. 다른 변형
CRUD의 다른 변형은 다음과 같다.
* ABCD (추가, 탐색, 변경, 삭제)
* CRUDL (생성, 읽기, 갱신, 삭제, 목록)
* BREAD (탐색, 읽기, 편집, 추가, 삭제)
* DAVE (삭제, 추가, 보기, 편집)
* CRAP (생성, 복제, 추가, 처리)
CRUD 대신 다음과 같은 단어의 머리글자를 나열하거나 약어가 사용되는 경우도 있다.
* ABCD: add(추가), browse(검색), change(변경), delete(삭제)
* ACID: add(추가), change(변경), inquire(조회), delete(삭제) — 트랜잭션 분야에서 사용되는 ACID와 혼동되기 쉽다.
* BREAD: browse(검색), read(읽기), edit(편집), add(추가), delete(삭제)
* VADE(R): view(보기), add(추가), delete(삭제), edit(편집) (트랜잭션 처리에 관해서는, 또한 restore(복원))