CRUD
IT 위키
더 많은 작업
CRUD는 Create, Read, Update, Delete의 약자로, 데이터베이스 관리 및 애플리케이션 개발에서 필수적인 네 가지 기본 작업을 의미한다.
- Create (생성): 데이터베이스에 새로운 데이터를 추가하는 작업이다.
- 예를 들어, 사용자 계정 생성, 주문 등록, 제품 추가 등이 포함될 수 있다.
- Read (읽기): 기존 데이터를 조회하거나 보는 작업이다.
- 예를 들어, 검색 기능이나 데이터베이스에서 아이템 목록을 표시하는 것이 "읽기" 작업에 해당한다.
- Update (수정): 기존 데이터를 변경하는 작업이다.
- 사용자의 프로필 정보 변경, 주문 상태 업데이트, 제품 정보 수정 등이 예에 해당한다.
- Delete (삭제): 데이터베이스에서 데이터를 제거하는 작업이다.
- 사용자 계정을 삭제하거나, 오래된 제품을 제거하거나, 주문을 취소하는 것이 이에 포함된다.
SQL 로는 각각 INSERT, SELECT, UPDATE, DELETE 에 대응한다.
CRUD Matrix
CRUD 매트릭스는 데이터 모델링에서 프로세스(업무 기능)와 엔터티(데이터)를 행과 열로 놓고, 각 프로세스가 각 엔터티에 어떤 작업(C·R·U·D)을 하는지 칸마다 적은 표이다. 데이터 모델과 프로세스 모델이 서로 맞는지 확인하는 상관 모델링(상관 분석) 도구이며, DFD 같은 프로세스 모델과 ERD 사이를 잇는다.
- 모델 검증: 데이터 모델에서 빠진 엔터티, 프로세스 모델에서 빠진 기능을 찾는다
- 상관 분석: 업무 프로세스가 어떤 데이터에 영향을 주는지, 데이터가 어디서 생기고 쓰이는지를 한눈에 본다
- 업무 영역 분할: C·U 가 몰리는 프로세스와 엔터티를 묶어(클러스터링) 서브시스템·업무 영역 경계를 정한다
- 트랜잭션·성능 설계: 한 프로세스가 건드리는 엔터티 수를 보고 트랜잭션 범위, 반정규화·분산 배치를 검토한다
- 영향도 분석과 테스트: 엔터티를 바꿀 때 영향받는 프로세스를 찾고, 칸마다 테스트 케이스를 만든다
- 행에 단위 프로세스, 열에 엔터티를 둔다(반대로 두어도 된다)
- 칸에 C, R, U, D 를 적는다. 한 칸에 여러 작업이 있으면 모두 적거나(CR, RU) 우선순위 C > D > U > R 로 대표값 하나만 적는다
- 프로세스는 기본 프로세스 수준까지 분해하고, 엔터티는 논리 모델의 엔터티를 쓴다
| 프로세스 \ 엔터티 | 고객 | 상품 | 주문 | 주문상품 |
|---|---|---|---|---|
| 고객 등록 | C | |||
| 상품 등록 | C | |||
| 주문 접수 | R | R | C | C |
| 주문 변경 | R | R | U | CUD |
| 주문 취소 | D | D | ||
| 고객 탈퇴 | D | R |
- 모든 엔터티에는 C 가 적어도 하나 있어야 한다. 없으면 그 데이터를 만드는 프로세스가 빠진 것이다
- 모든 엔터티에는 R 이 적어도 하나 있어야 한다. 아무도 읽지 않는 데이터는 필요 없는 엔터티일 수 있다
- 모든 엔터티는 C·R·U·D 중 하나 이상으로 어떤 프로세스와 연결되어야 한다
- 모든 프로세스는 엔터티를 하나 이상 다뤄야 한다. 빈 행은 모델에 없는 데이터를 쓰거나 필요 없는 프로세스다
- 같은 엔터티를 C 하는 프로세스가 여럿이면 업무 중복이나 책임 불명확을 의심한다
- 요즘과 같이 대부분의 시스템이 데이터베이스를 사용하는 상황에서, 시스템의 기본적인, 최소한의 동작을 지칭하는 표현으로 많이 쓰인다.
- ex)
- "디자인이랑 DB 설계는 완료 되었으니 CRUD만 구현하면 거의 완성되는 거나 다름 없습니다."
- "복잡한 알고리즘은 시니어들이 하고, 신입들한테는 CRUD만 맡기면 되죠."
- "CRUD도 제대로 구현이 안됐는데 공정률을 이렇게 높게 적으면 어떻게 합니까?"
- "테이블을 분리하면 CRUD 별도로 다 구현해야 하는데 그래도 시간을 며칠 더 주셔야죠."
- "SI 회사 3년 다녔지만 한 거라고는 CRUD 밖에 없어서 코딩 실력이 준 것 같아요."
- ex)