DATOR


29.코드란 무엇인가? 기본 카테고리


상품의 조건을 이야기 하기로 했는데
잠시 코드 이야기를 하고 넘어가야 하겠습니다.
이유는 상품코드, 상품번호  처럼 상품개체를 식별하는 고유 값을
코드라 해야하는지 번호라 해야하는지 갈등하는 분들이 많고
코드의 개념을 명확히 하진 못한 분들이 있는 듯 해서입니다.

 

코드란 무엇일까요?
네이버에서 찾으면 '정보를 나타내기 위한 기호 체계'라고 되어있습니다.
좀 풀어쓰면 어떤 정보를 그대로 사용하면 불편하니 기호체계로 변경해서 사용하기로 하고
이 때 변경된 모습의 기호가 바로 코드라는 것입니다.

 

저의 식별값은 '안희진'라는 이름입니다.
하지만 동명이인 문제로
요즈음 보안 문제가 되고 있는 주민번호라는 것이 식별값으로 사용됩니다.
안희진->주민번호로 바뀌었고 주민번호라는 숫자기호이니
주민번호는 코드가 됩니다.

 

그러면 주민등록코드라 불러야 합니다.
그런데 번호라고 부릅니다.

 

왜일까요?

 

이 왜를 알면 다 아는 겁니다.

 

모델에서 정보는 속성 단위로 입력됩니다.
속성의 값을 기호로 변환하는 것을 코드라 한다고 했습니다.
그런데 주민번호를 주민코드라고 하지 않습니다.
'주민'의 뭔가 특별한 것이 있기 때문입니다.
주민번호는 개체의 식별값입니다.
즉 개체의 식별값은 원래의 정보를 기호화 해도 코드라 부르지 않습니다.

 

개체에는  인간, 사물, 개념, 사건 등이 포함됩니다.
프로젝트나 사업은 개념입니다. 이것들의 원래 식별값은 뭘까요?
프로젝트명, 사업명입니다. 하지만 동음이의 나 사용상 불편 때문에
프로젝트번호나, 사업번호를 사용하게 됩니다.
행위의 식별값은  개체와 시간이기 때문에 코드화 대상이 안됩니다.
인조식별자를 ~번호로 만들어 사용하기도 합니다.
계약번호, 접수번호....

 

결국 코드화 대상은 일반속성이 됩니다.
일반 속성 중에 코드화가 필요한 속성은 어떤 것들일까요?

 

각각의 row를 한 로우 씩 조회하는 경우는 코드화할 필요성이 좀 적습니다.
서로 표현하는 방법이 조금달라도 이해하는데는 큰 문제가 없습니다.
그런데 문제는 그 속성값으로 집계를 할 때 문제가 생깁니다.
약간만 차이가 나도 다른 값으로 인식해 집계에 문제가 발생합니다.
집계한다는 것은 그룹핑 한다는 것입니다.
결국 코드화 대상은
이미 기호로 되어 있는 숫자관련 속성, 일자관련 속성과
내용, 비고처럼 건건이 조회하는 용도를 제외한
그룹핑 용도가 있는 속성으로 압축됩니다.
(금액 구간도  코드화 하기도 합니다.)

 

그룹핑.
이것이 코드화의  목적입니다.
(주민번호는 개체의 최소단위(식별값)이기에 그룹핑 자체가 불가능하지요.)

 

정리하면
개체 식별값은 번호
개체나, 행위를 그룹핑하는 요건이 존재하는 속성의 기호화 된 값은 코드.
로 이해하시면 됩니다.


상품코드.  맞을까요?
주문의 속성 중에 상품이라는 속성이 있고
주문을 상품별로 그룹핑해서 분석하려는 요건이 있어
상품명으로 사용안하고 상품명을 코드화 했다.
그러면 위의  설명대로 되는 것 같습니다.
그런데 문제는
상품명은 상품엔티티의 식별값라는 것입니다.
즉 개체엔티티의 식별값이기에 번호가 됩니다.

 

그러면 여기서 그룹핑 용도가 있는 속성중 직업이라는 것이 있다고 가정합니다.
만일 직업엔티티를 만들었다고 하면
상품하고 똑같이 보입니다.  

 

상품엔티티와 직업엔티티와의 차이는?
상품엔티티는 업무를 위해 만들었지만
직업엔티티는 코드화를 위해서 만들었습니다.

엔티티 존재의 이유가 다른거지요.
직업엔티티는 직업명을 코드화 하지 않았다면 존재의 의미가 없습니다.
그 결과로 직업엔티티에는 데이터 사용여부에 관한 속성외에는
속성이 없습니다.

 

물론 예외는 있습니다.
직업훈련원 같은 곳에서는 직업자체가 일반 엔티티가 될 수 있습니다.

 

그룹핑.

여기 저기 모든 곳에 관련되어 있는 것을 보면
데이터 관련 부분에서
가장 중요한 개념인 듯합니다.

 

마인드맵, 폴더관리, 메뉴, 고객세그먼트...

 

그룹핑 잘하는 사람=지혜로운 사람 인듯.

 


 

Tag :

Leave Comments