본문 바로가기

Tech107

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