ERD만 그린다고 설계가 끝나는 것은 아니다. 사람마다 같은 단어를 서로 다르게 해석할 수 있기 때문이다.
예를 들어 "고객"이라는 단어를 생각해 보자.
이런 모호함을 줄이기 위해 용어 사전(Data Dictionary) 를 작성한다.
이번에 만든 개념적 모델을 기준으로 간단한 용어 사전을 만들어 보면 다음과 같다.
[쇼핑몰 MVP 프로젝트 용어 사전]
| 분류 | 명칭 | 전체 영문명 | 축약어 | 설명 | 관련 시스템 요소 |
|---|---|---|---|---|---|
| 엔티티 | 회원 | member | - | 서비스를 이용하는 고객. customer, user 대신 member로 통일한다. | member 테이블 |
| 엔티티 | 상품 | product | - | 판매하는 물건 또는 서비스. | product 테이블 |
| 엔티티 | 주문 | order | - | 회원의 상품 구매 요청 행위. SQL 예약어와 충돌을 피하기 위해 테이블명은 orders를 사용한다. |
orders 테이블 |
| 엔티티 | 주문 항목 | order_item | - | 하나의 주문에 포함된 개별 상품 정보. 주문과 상품의 M:N관계를 해소하는 연관 엔티티. | order_item 테이블 |
| 엔티티 | 배송 | delivery | - | 주문된 상품의 물리적 이동 정보. | delivery 테이블 |
| 엔티티 | 결제 | payment | pay | 주문에 대한 지불 정보. | payment 테이블 |
| 속성 | 식별자 | identifier | id | 데이터를 고유하게 식별하는 번호. [엔티티명]_id 형식으로 사용한다. |
member_id, order_id 등 |
| 속성 | 이름/명 | name | name | 사람, 상품 등 대상을 지칭하는 명칭. | member_name, product_name |
| 속성 | 가격 | price | price | 상품의 현재 판매가 또는 주문 시점의 가격. 문맥에 따라 의미를 명확히 구분한다. | price, order_price |
| 속성 | 금액 | amount | amount | 각종 금액을 표현할 때 사용한다. | pay_amount, total_amount |
| 속성 | 재고 | stock | stock | 상품의 재고를 나타낸다. 수량 컬럼명은 보통 stock_quantity를 사용한다. |
stock_quantity |
| 속성 | 수량 | quantity | qty | 개수나 양. 주문 수량, 재고 수량 등에서 사용한다. | order_quantity 등 |
| 속성 | 상태 | status | status | 주문, 배송 등 엔티티의 현재 상태를 나타내는 코드 값. | order_status, delivery_status |
| 속성 | 주소 | address | addr | 위치 정보. 회원 기본 주소(addr), 주문 배송지(ship_addr) 등으로 사용한다. |
addr, ship_addr |
| 속성 | 비밀번호 | password | pwd | 로그인 시 사용하는 비밀번호. | password |
| 속성 | 배송 관련 | shipping | ship | 배송과 관련된 속성 앞에 접두사로 사용한다. 예: ship_addr |
ship_addr 등 |
| 속성 | 로그인 | login | login | 시스템 접속 행위. 로그인 아이디 컬럼은 보통 login_id를 사용한다. |
login_id |
| 속성 | 수단 | method | method | 예: 결제 수단(pay_method) | pay_method |
| 속성 | 번호 | number | no | 각종 번호. 예: 운송장 번호(tracking_no) | tracking_no |
속성과 관련하여, 다음과 같은 행위/수식어 관련 용어도 함께 정의해 두면 좋다.
| 분류 | 명칭 | 영문명 | 축약어 | 설명 |
|---|---|---|---|---|
| 행위 | 생성 | create | created_at | 데이터가 처음 만들어진 시점을 나타내는 타임스탬프 컬럼명으로 사용한다. |
| 행위 | 수정 | update | updated_at | 데이터가 마지막으로 변경된 시점을 나타내는 타임스탬프 컬럼명으로 사용한다. |
용어 사전은 한 번 작성하고 끝나는 문서가 아니다. 프로젝트가 진행되면서 새로운 엔티티, 속성, 코드 값이 계속 등장하기 때문이다.
실무에서는 다음과 같이 관리하는 것이 좋다.
Confluence, Notion, Google Docs 등
모두가 쉽게 접근하고 수정할 수 있는 도구에 용어 사전을 만든다.
테이블/컬럼명이 추가되거나 변경될 때, 반드시 용어 사전도 함께 업데이트한다.