CRUD

썩은요플렛's avatar
Sep 12, 2024
CRUD
 
CRUD는 Create(생성), Read(조회), Update(수정), **Delete(삭제)**의 약자로, 데이터 관리를 위한 기본적인 4가지 작업을 나타낸다. 이 개념은 데이터베이스, 웹 애플리케이션, API 등을 설계하고 개발할 때 가장 기본적이고 필수적인 요소로 사용된다. CRUD 작업은 주로 데이터베이스의 데이터를 다루는 데 사용되지만, 데이터의 저장소가 파일 시스템, 메모리, 클라우드 등의 형태일 때에도 동일한 패턴이 적용된다.

1. Create (생성)

개념:

새로운 데이터를 데이터베이스나 저장소에 추가하는 작업이다. 사용자는 어떤 데이터를 입력하거나, 애플리케이션에서 새로운 데이터가 생성되면 이 데이터가 저장소에 영구적으로 저장된다. 예를 들어, 회원가입 시 새로운 사용자를 데이터베이스에 추가하는 것이 Create 작업에 해당한다.

SQL 예시:

INSERT INTO users (username, password, email) VALUES ('john_doe', 'password123', 'john@example.com');

HTTP 메서드:

  • POST: 웹 애플리케이션에서 자주 사용되는 HTTP 메서드로, 서버에 새로운 데이터를 전송하여 자원을 생성할 때 사용된다.

예시:

  • 게시판에 새로운 게시글 작성
  • 사용자 회원가입
  • 상품 등록

2. Read (조회)

개념:

저장소에서 데이터를 검색하거나 조회하는 작업이다. 사용자는 저장된 데이터를 요청하고, 해당 데이터를 읽어서 화면에 표시하거나 필요한 처리 작업을 할 수 있다. 예를 들어, 특정 사용자의 정보를 가져오거나, 목록 페이지에서 데이터를 조회하는 것이 Read에 해당한다.

SQL 예시:

SELECT * FROM users WHERE id = 1;

HTTP 메서드:

  • GET: 클라이언트가 서버로부터 데이터를 요청할 때 사용되는 HTTP 메서드이다. 서버는 요청된 데이터가 있다면 이를 반환한다.

예시:

  • 특정 게시글 보기
  • 사용자 정보 조회
  • 상품 목록 보기

3. Update (수정)

개념:

저장된 데이터를 수정하는 작업이다. 기존의 데이터에 새로운 값을 업데이트하거나 일부 내용을 변경하는 과정이다. 예를 들어, 사용자 정보 수정, 게시글 내용 수정 등이 해당한다.

SQL 예시:

UPDATE users SET email = 'new_email@example.com' WHERE id = 1;

HTTP 메서드:

  • PUT: 자원을 완전히 교체할 때 주로 사용된다. 기존 데이터의 전체를 새로운 데이터로 교체하는 방식이다.
  • PATCH: 자원의 일부만 수정할 때 사용됩니다. 부분적인 업데이트에 적합하다.

예시:

  • 사용자 정보 변경 (이메일, 비밀번호 등)
  • 게시글 내용 수정
  • 상품 정보 수정

4. Delete (삭제)

개념:

데이터를 삭제하는 작업이다. 저장소에서 특정 데이터를 영구적으로 삭제하며, 삭제된 데이터는 더 이상 조회할 수 없다. 예를 들어, 사용자를 삭제하거나 게시글을 삭제하는 작업이 Delete에 해당한다.

SQL 예시:

DELETE FROM users WHERE id = 1;

HTTP 메서드:

  • DELETE: 서버에서 자원을 삭제할 때 사용하는 HTTP 메서드이다.

예시:

  • 게시글 삭제
  • 사용자 탈퇴 (데이터베이스에서 사용자 정보 삭제)
  • 상품 정보 삭제

CRUD의 작동 원리

CRUD는 데이터베이스와 상호작용할 때 데이터의 라이프사이클을 완전히 관리할 수 있게 해주는 패턴이다. 이 4가지 작업이 결합되면 사용자는 데이터베이스의 데이터를 생성하고 조회하며, 필요 시 수정하고 삭제할 수 있다.

1. Create의 흐름:

  • 사용자 입력: 새로운 데이터를 입력(폼 등을 통해) → 서버로 전송 → 서버가 요청을 처리하고 데이터베이스에 저장성공 응답 또는 오류 처리.

2. Read의 흐름:

  • 사용자 요청: 특정 데이터를 조회할 수 있도록 요청(GET 요청) → 서버가 요청을 수신하고 데이터베이스에서 해당 데이터 조회 → 사용자에게 데이터를 응답으로 반환.

3. Update의 흐름:

  • 사용자 요청: 기존 데이터를 수정하는 요청(PUT 또는 PATCH) → 서버가 요청을 처리하고 데이터베이스에서 데이터 수정성공 응답 또는 오류 처리.

4. Delete의 흐름:

  • 사용자 요청: 특정 데이터를 삭제하는 요청(DELETE) → 서버가 요청을 처리하고 데이터베이스에서 데이터 삭제성공 응답 또는 오류 처리.

추가 개념: CRUD와 REST API

CRUD는 REST API 설계에서도 중요한 개념이다. REST API는 자원을 표현하고 HTTP 메서드와 CRUD 작업을 맵핑하여 자원을 관리하는 방식이다.
CRUD 작업
HTTP 메서드
설명
Create
POST
새로운 리소스를 서버에 생성
Read
GET
기존 리소스를 조회
Update
PUT, PATCH
리소스의 내용을 수정 (PUT은 전체 교체, PATCH는 부분 수정)
Delete
DELETE
리소스를 삭제

예시 시나리오: 블로그 포스팅 관리

  1. Create (생성): 새로운 블로그 포스트를 작성하면, POST 요청으로 서버에 새로운 글이 추가된다.
    1. POST /posts { "title": "My First Blog Post", "content": "This is the content of the blog post." }
  1. Read (조회): 모든 블로그 포스트를 조회하려면 GET 요청을 통해 데이터를 받아온다.
    1. GET /posts
  1. Update (수정): 특정 포스트의 제목이나 내용을 수정하려면 PUT 또는 PATCH 요청을 통해 데이터를 수정한다.
    1. PUT /posts/1 { "title": "Updated Blog Post", "content": "Updated content." }
  1. Delete (삭제): 특정 블로그 포스트를 삭제하려면 DELETE 요청을 보내어 서버에서 해당 데이터를 삭제한다.
    1. DELETE /posts/1

CRUD의 중요성

CRUD는 모든 데이터 중심 애플리케이션의 핵심이다. 데이터베이스와 웹 애플리케이션을 설계할 때 데이터의 전체 수명 주기를 관리하기 위해 CRUD 패턴을 사용하는 것은 필수적이다. 이를 통해 데이터의 무결성을 유지하고, 사용자의 다양한 작업 요구를 충족시킬 수 있다.
이 개념은 대부분의 프로그래밍 언어와 프레임워크에서 사용되며, MVC 패턴(모델-뷰-컨트롤러)에서 컨트롤러가 모델과 상호작용할 때 CRUD 작업을 처리하는 방식으로 자주 사용된다.
Share article

RottenYogurt's Development Blog