맨위로가기

CRUD

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CRUD는 데이터를 관리하는 기본적인 연산을 나타내는 약어이다. CRUD는 생성(Create), 읽기(Read), 수정(Update), 삭제(Delete)의 네 가지 연산을 의미하며, 데이터베이스, RESTful API, 사용자 인터페이스 등 다양한 분야에서 활용된다. 1983년 제임스 마틴의 저서에서 처음 사용되었으며, 각 연산은 SQL 명령어나 HTTP 메서드에 매핑될 수 있다. CRUD 외에도 ABCD, CRUDL, BREAD 등 다양한 변형이 존재한다.

더 읽어볼만한 페이지

  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 - 지식 베이스
    지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다.
  • 데이터베이스 - 화이트리스트
    화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다.
CRUD

2. 개념

데이터는 저장 메커니즘의 ''위치/영역''에 저장될 수 있다.


  • 저장 위치의 기본적인 특징은 해당 ''내용''이 ''읽기 가능''하고 ''업데이트 가능''하다는 것이다.
  • 저장 위치는 읽거나 업데이트하기 전에 ''생성''되어야 한다. 즉, 내용을 할당하고 초기화해야 한다.
  • 나중에는 저장 위치를 ''삭제''해야 할 수도 있다. 즉, 종료하고 할당 해제해야 한다.


이 네 가지 연산을 함께 묶어 CRUD (Create, Read, Update, Delete), 즉 ''생성'', ''읽기'', ''수정'', ''삭제''로 알려진 기본적인 저장 관리 연산을 구성한다.

3. 역사

'C.R.U.D'라는 용어는 1983년 제임스 마틴이 저술한 《데이터베이스 환경 관리》(Managing the data-base environment)에서 처음 대중화되었을 가능성이 높다.[1]

4. 데이터베이스

CRUD 약어는 데이터베이스가 구현하는 주요 작업들을 나타낸다. 이 약어의 각 글자는 표준 구조화 질의 언어 (SQL) 명령문에 매핑될 수 있다.[3]

CRUDSQL
생성INSERT
읽기SELECT
갱신UPDATE
삭제DELETE



관계형 데이터베이스는 소프트웨어 애플리케이션에서 일반적인 영속성 계층이지만, 이 외에도 수많은 영속성 계층이 존재한다. 예를 들어, CRUD 기능은 문서 데이터베이스, 객체 데이터베이스, XML 데이터베이스, 텍스트 파일 또는 바이너리 파일로 구현할 수 있다.

일부 빅 데이터 시스템은 UPDATE를 구현하지 않고 타임스탬프가 있는 INSERT(저널링)만 사용하여 객체의 새로운 버전을 매번 저장한다.

5. RESTful API

CRUD 약어는 RESTful API 논의에도 나타난다. CRUD의 각 문자는 HTTP (Hypertext Transfer Protocol) 메서드에 다음과 같이 매핑될 수 있다.

CRUDHTTP
생성 (Create)POST, PUT (id 또는 uuid가 없는 경우)
읽기 (Read)GET
갱신 (Update)PUT (교체), PATCH (수정)
삭제 (Delete)DELETE



HTTP에서 GET (읽기), PUT (생성 및 갱신), POST (id 또는 uuid가 없는 경우 생성) 및 DELETE (삭제) 메서드는 사용자 에이전트가 대상 웹 리소스의 상태를 직접 조작할 수 있도록 하므로 CRUD 작업이다.[4] 반면에 POST 메서드는 일반적으로 CRUD 작업 범위를 초과하는, 대상 리소스에 특정한 의미를 가진 프로세스 작업이다.[5]

6. 사용자 인터페이스

CRUD는 대부분의 애플리케이션 사용자 인터페이스 수준에서도 관련이 있다. 예를 들어, 주소록 소프트웨어에서 기본 저장 단위는 개별적인 ''연락처 항목''이다. 최소한 소프트웨어는 사용자에게 다음을 허용해야 한다.[6]


  • 새로운 항목을 추가하는 ''생성''
  • 기존 항목을 검색, 조회 또는 보는 ''읽기''
  • 기존 항목을 편집하는 ''수정''
  • 기존 항목을 비활성화하거나 제거하는 ''삭제''


이러한 작업은 매우 기본적인 것이므로 종종 문서화되고 "연락처 관리" 또는 "문서 관리"와 같은 포괄적인 제목으로 설명된다.

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(복원))

참조

[1] 서적 Managing the Data-base Environment https://archive.org/[...] Prentice-Hall
[2] 서적 Managing the data-base environment https://archive.org/[...] Prentice-Hall 1983
[3] 웹사이트 CRUD operations explained: Create, read, update, delete https://www.educativ[...] 2021-04-07
[4] 웹사이트 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Section 4 https://tools.ietf.o[...] Internet Engineering Task Force (IETF) 2014-06
[5] 웹사이트 It is okay to use POST https://roy.gbiv.com[...] roy.gbiv.com 2009-03-20
[6] 서적 Programming for the Web - From Soup to Nuts - Implementing a Complete GIS Web Page https://eng.libretex[...] Gettysburg College
[7] 웹사이트 BREAD, not CRUD http://paul-m-jones.[...]
[8] 서적 Beginning Django E-Commerce https://books.google[...] 2010-06-21
[9] 뉴스 CRAP and CRUD: From Database to Datacloud - Direct2DellEMC https://blog.dellemc[...] 2012-11-13
[10] InfoWorld REST and CRUD: the Impedance Mismatch http://weblog.infowo[...] InfoWorld 2007-01-29
[11] 간행물 From semantic to object-oriented data modeling http://ieeexplore.ie[...] 1990
[12] 서적 Business Specifications: The Key to Successful Software Engineering http://www.amazon.co[...] Prentice Hall 1998
[13] 문서 트랜잭션(transaction) 분야에서 사용되는 ACID와는 다른 것이다. 혼동하기 쉬우므로 주의가 필요하다.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com