본문 바로가기

전체 글212

속성 후보 찾기 속성은 어떻게 찾는가?지난 글에서는 속성이 무엇인지 알아봤다.이번에는 조금 다른 이야기를 해보려고 한다.속성이 무엇인지는 알겠는데, 실제 프로젝트에서는 속성을 어떻게 찾을까?모델링을 처음 하는 사람들이 가장 많이 하는 실수가 있다.ERD를 열자마자 컬럼부터 적기 시작하는 것이다.하지만 실무에서는 그렇게 모델링하지 않는다.모델러가 가장 먼저 보는 것은 ERD가 아니라 요구사항 문서(RFP) 이다.예를 들어 고객으로부터 아래와 같은 RFP를 받았다고 가정해 보자.회원관리 기능1. 회원은 이름, 휴대폰번호, 이메일을 등록할 수 있어야 한다.2. 회원은 일반회원과 VIP회원으로 구분한다.3. 회원은 가입일을 관리한다.4. 회원은 마지막 로그인 일시를 조회할 수 있어야 한다.5. 회원은 탈퇴할 수 있으며 탈퇴일을.. 2026. 8. 2.
속성이란 속성이란 무엇인가?지난 글까지 엔터티와 식별자에 대해 알아봤다.엔터티가 무엇을 관리할 것인가를 정의하는 것이라면, 식별자는 그 엔터티를 어떻게 구분할 것인가를 정의하는 것이었다.이번에는 속성(Attribute)에 대해 이야기해 보려고 한다.모델링을 처음 배우는 사람에게 속성이 무엇인지 물어보면 대부분 이렇게 대답한다.“속성은 엔터티의 컬럼 아닌가요?”틀린 말은 아니다.하지만 이렇게 이해하면 속성을 너무 단순하게 생각하게 된다.속성은 단순히 컬럼이 아니라 엔터티를 설명하는 정보이다.예를 들어 회원 엔터티를 생각해 보자.회원이라는 엔터티만 덩그러니 존재한다면 우리는 그 회원에 대해 아무것도 알 수 없다.회원을 설명하기 위해서는 이름, 생년월일, 이메일, 휴대폰번호 같은 정보가 필요하다.이런 정보들이 바로 속.. 2026. 8. 2.
식별자 설계 - 4 좋은 식별자를 선택하는 방법지난 글에서는 좋은 식별자가 갖춰야 하는 조건에 대해 알아봤다.그런데 실제 모델링을 하다 보면 한 가지 궁금증이 생긴다.“후보 식별자가 여러 개라면 뭘 기본 식별자로 선택해야 하지?”이번에는 이 이야기를 해보려고 한다.회원(Entity)을 하나 만들어 보자.회원을 구분할 수 있는 값은 생각보다 많다.회원번호이메일휴대폰번호아이디모두 중복되지 않는다고 가정하면 모두 후보 식별자가 될 수 있다.그런데 실제 시스템에서는 대부분 회원번호를 기본 식별자로 사용한다.왜 그럴까?변경되지 않는 것이 가장 중요하다.좋은 식별자의 조건 중에서 가장 중요한 것을 하나만 꼽으라고 하면 나는 변경되지 않는 것이라고 말하고 싶다.이메일은 바뀔 수 있다.휴대폰 번호도 바뀔 수 있다.아이디도 정책에 따라 변.. 2026. 8. 2.
식별자 설계 - 3 식별자는 단순한 일련번호가 아니다프로젝트에서 다음과 같은 말을 자주 듣는다.“모든 테이블에 ID 하나씩 넣으면 되지 않는가?”“PK는 자동 증가 숫자로 만들면 되는 것 아닌가?”기술적으로는 가능하다.고객ID, 상품ID, 주문ID, 주문상품ID를 모두 자동 증가 숫자로 만들 수 있다.이렇게 하면 기본키 구조는 단순해진다.외래키 연결도 편리해진다.하지만 ID 컬럼을 추가했다고 식별자 설계가 끝나는 것은 아니다.다음 질문은 여전히 남는다.같은 이메일로 고객이 두 번 등록되어도 되는가?같은 상품코드가 두 번 등록되어도 되는가?같은 주문번호가 두 번 생성되어도 되는가?하나의 주문에 동일한 주문상품이 중복 등록되어도 되는가?외부 결제 승인번호는 중복될 수 있는가?택배 송장번호는 어느 범위에서 유일한가?자동 증가 I.. 2026. 8. 2.
반응형