4-1. 왜 용어 사전이 필요한가

ERD만 그린다고 설계가 끝나는 것은 아니다. 사람마다 같은 단어를 서로 다르게 해석할 수 있기 때문이다.

예를 들어 "고객"이라는 단어를 생각해 보자.

이런 모호함을 줄이기 위해 용어 사전(Data Dictionary) 를 작성한다.

4-2. 쇼핑몰 MVP 용어 사전 예시

이번에 만든 개념적 모델을 기준으로 간단한 용어 사전을 만들어 보면 다음과 같다.

[쇼핑몰 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 데이터가 마지막으로 변경된 시점을 나타내는 타임스탬프 컬럼명으로 사용한다.

4-3. 용어 사전은 "살아있는 문서"로 관리한다

용어 사전은 한 번 작성하고 끝나는 문서가 아니다. 프로젝트가 진행되면서 새로운 엔티티, 속성, 코드 값이 계속 등장하기 때문이다.

실무에서는 다음과 같이 관리하는 것이 좋다.