CRUD Matrix로 비즈니스 프로세스와 데이터 작업 연결하기
CRUD Matrix의 행과 열을 통해 비즈니스 프로세스별 데이터 생성·조회·수정·삭제 관계를 설계, 검증, 권한 관리와 테스트에 활용하는 방법
2026-08-14 · 최초 발행 2025-08-10
프로세스와 데이터의 접점을 드러내는 매트릭스
CRUD Matrix는 Create(생성), Read(읽기), Update(갱신), Delete(삭제) 작업을 비즈니스 프로세스와 데이터 엔티티의 관계로 나타낸다. 데이터베이스를 중심에 둔 시스템 설계에서, 기능이 어떤 데이터를 어떻게 다루는지 한 화면에서 확인하기 위한 모델링 도구다.
주요 비즈니스 프로세스를 행에 두고, 시스템이 관리하는 데이터 엔티티 또는 테이블을 열에 둔다. 각 교차점에는 해당 프로세스가 수행하는 작업을 표기한다.
- C: 새로운 데이터 레코드 생성
- R: 데이터 조회만 수행
- U: 기존 데이터 수정
- D: 데이터 삭제
이렇게 정리하면 프로세스와 데이터 간 상호작용을 확인할 수 있으며, 비즈니스 요구사항과 데이터 설계의 연결도 명확해진다.
매트릭스를 채우는 기준
먼저 시스템에서 수행되는 비즈니스 프로세스나 기능을 식별한다. 사용자 스토리와 유스케이스는 이 목록을 만드는 출발점이 될 수 있으며, 필요하면 대분류·중분류·소분류의 계층으로 정리한다.
다음으로 시스템이 관리할 데이터 엔티티를 정한다. 이 목록은 ERD(Entity-Relationship Diagram)에서 가져올 수 있고, 논리 엔티티와 물리 테이블을 구분해 표시할 수도 있다.
행에는 비즈니스 프로세스를, 열에는 데이터 엔티티를 배치한 뒤 각 셀에 수행 작업을 기록한다. 단순 CRUD 표기만으로 부족하다면 조회 유형이나 작업 순서를 추가 기호로 구분할 수 있다.
고객·주문·재고 흐름으로 보는 표기
| 고객정보 | 주문정보 | 상품정보 | 재고정보 | |
|---|---|---|---|---|
| 고객 등록 | C | |||
| 고객 정보 조회 | R | |||
| 고객 정보 수정 | U | |||
| 고객 탈퇴 | D | |||
| 주문 생성 | R | C | R | U |
| 주문 조회 | R | R | R | |
| 주문 취소 | U | U | ||
| 상품 등록 | C | C | ||
| 재고 관리 | R | CRUD |
기본 표기 외에도 직접 작업은 대문자(C, R, U, D), 간접 작업은 소문자(c, r, u, d)로 구분할 수 있다. 숫자(1, 2, 3...)는 작업 순서를 나타내고, R1, R2, R3는 읽기 작업의 성격을 나누는 데 쓴다. CU는 없으면 생성하고 있으면 갱신하는 Upsert를 뜻하며, X는 연관이 없다는 사실을 명시한다.
요구사항부터 권한과 테스트까지
매트릭스는 요구사항이 각 데이터 엔티티에 필요한 CRUD 작업을 빠짐없이 포함하는지 확인하는 데 쓰인다. 누락된 프로세스나 데이터 처리 작업을 찾아 요구사항을 구체화할 수 있다.
데이터베이스 설계에서는 테이블 간 관계와 의존성을 파악하고, 인덱스 설계·최적화 지점·트랜잭션 설계의 근거로 활용한다. 특정 역할이 어떤 프로세스를 거쳐 어떤 데이터에 접근하는지 정리하면 세부 접근 제어(Fine-grained Access Control)와 데이터 보안 정책 설계에도 연결된다.
각 CRUD 작업을 기준으로 테스트 케이스를 도출하면 누락 없는 테스트 커버리지를 확보하고 엣지 케이스와 예외 상황을 식별하기 쉽다. 서비스 레이어의 책임 분리, API 엔드포인트 구성처럼 애플리케이션 아키텍처를 설계할 때도 같은 관계를 참조할 수 있다.
행과 열에서 읽어낼 수 있는 설계 신호
행을 따라가면 특정 비즈니스 프로세스가 접근하는 데이터 엔티티를 확인할 수 있다. 한 프로세스가 지나치게 많은 엔티티에 닿는다면 응집도 저하 가능성을 검토하고, 그 프로세스의 복잡도와 영향도를 평가한다.
열을 기준으로 보면 하나의 데이터 엔티티를 참조하는 프로세스를 파악할 수 있다. 과도하게 많은 프로세스가 같은 엔티티에 접근한다면 결합도 증가 가능성이 있으며, 중요 엔티티와 핵심 데이터를 식별하는 단서가 된다.
CRUD 작업의 집중도도 살펴볼 대상이다. 읽기 전용 엔티티나 자주 갱신되는 엔티티 같은 패턴을 찾아 특이점과 잠재 문제를 확인한다.
ERD·DFD·사용자 스토리와 연결하기
CRUD Matrix의 열은 ERD에서 도출할 수 있다. ERD가 데이터 엔티티의 구조적 관계를 표현한다면, CRUD Matrix는 그 엔티티에 대한 행위적 관계를 나타낸다.
DFD의 프로세스는 매트릭스의 행으로, DFD의 데이터 저장소는 열로 매핑할 수 있다. 두 모델을 함께 사용하면 시스템의 정적 측면과 동적 측면을 함께 표현할 수 있다.
애자일 환경에서는 사용자 스토리별 데이터 작업을 매핑해 스토리가 다루는 범위를 확인하고, 스토리 포인트 산정과 복잡도 평가에 활용할 수 있다.
도메인별로 달라지는 검토 지점
금융 시스템에서는 계좌 관리, 거래 처리, 고객 관리 프로세스를 고객 정보·계좌 정보·거래 내역과 연결하고, 보안 및 감사 요구사항에 맞는 세밀한 접근 제어를 설계한다.
전자상거래 시스템에서는 상품 관리, 주문 처리, 고객 관리, 배송 관리와 상품 정보·고객 정보·주문 정보·배송 정보를 매핑한다. 대용량 트랜잭션을 처리할 때는 이 관계에서 최적화 지점을 찾는다.
의료 정보 시스템에서는 환자 관리, 진료 기록 관리, 처방 관리와 환자 정보·진료 기록·약품 정보를 연결하며, 개인정보 보호와 접근 권한 관리에 중점을 둔다.
운영 가능한 수준으로 유지하기
매트릭스가 지나치게 상세하면 관리하기 어렵고, 너무 추상적이면 설계 검증에 쓸 수 없다. 프로젝트의 규모와 복잡도에 맞춰 개요 수준에서 상세 수준으로 내려가는 방식을 선택한다.
팀은 기호의 의미와 표기법을 합의하고, 그 설명 문서를 유지해야 한다. 변경 관리 프로세스와 연결해 정기적으로 갱신할 수 있어야 하며 자동화 도구 활용도 검토 대상이다. 작성 도구로는 Excel, Google Sheets 같은 스프레드시트, EA·Visio 등의 전문 모델링 도구, 협업 도구와의 통합 방식을 고려할 수 있다.
자주 조회되는 테이블은 인덱스 최적화 대상으로, 갱신이 빈번한 테이블은 락(Lock) 전략의 대상으로 식별할 수 있다. 트랜잭션 패턴은 트랜잭션 설계 최적화에, 데이터 접근 패턴은 캐싱 전략 수립에 연결된다.