본문 바로가기
데이터베이스

데이터 표준화 - 표준 코드, 코드 유형, 코드 에러 사례

by 데이널 2023. 10. 31.

이번 포스팅에서는 데이터 표준화 중에 표준 코드에 대해서 알아보도록 하겠습니다. 코드는 시스템을 개발하는데 있어서 중요한 역할을 합니다. 예를 들어, 코드를 데이터화하지 않고 하드코딩을 한다면 변경에 대한 유지보수가 발생할 경우 꼭꼭 숨겨져 있어서 찾기가 어렵습니다. 

 

 

표준코드 구성

여기서 말하는 코드는 남자, 여자와 같이 구분하여 관라할 수 있는 값을 말합니다. 항상 같은 형태, 유형, 구분으로 들어오기 때문에 처음부터 코드로 정의하여 관리하는 것입니다. 이렇게 코드를 정의하면 해당 코드를 위해 grouping을 통해 통계 분석을 할 수 도 있습니다. 또 데이터 분석의 feature로 활용될 수도 있습니다. 

 

표준코드 구성
표준코드 구성

 

코드 유형

1. 일반코드

  • 공통코드 테이블에서 통합되어 관리되는 코드를 말합니다. 우리가 코드를 관리한다고 하면 대부분 일반코드입니다. 일반코드는 공통코드에서 관리할 수 있게 특별히 추가 컬럼정보가 없는 경우입니다. 코드와 코드값 정도만 있으면 서비스가 가능한 경우입니다. 예를 들어 ‘성별코드’와 같은 것들이 있습니다. 

2. 목록코드

  • 별도의 테이블에서 개별적으로 정의되어 관리되는 코드를 말합니다. 이런 경우는 개체의 수도 많고 코드와 코드값 외에도 더 많은 정보를 관리해야 하는 경우입니다. 예를 들어 ‘상품코드’ 같은 경우 상품분류, 상품기획부서, 상품관리상태 등 여러가지 추가 항목들을 관리해야 합니다. 이럴 경우는 공통코드 포멧에 맞지 않기 때문에 추가적인 테이블을 구성합니다. 그리고 이것을 목록성 코드라고 부룹니다. 

 

표준코드 생성규칙

1. 코드값

  • 중복 사용 불가  →  [1] 남자, [1] 여자
  • 데이터 타입은 문자형을 사용  →  Char, Varchar
  • 데이터 길이는 코드값 증가를 고려하여 결정
  • 숫자 타입 코드값이 데이터 길이보다 작은 경우, 앞에서부터 문자 ‘0’을 채워 코드값 정의
  • 예시) 남자 01, 여자 02,  시간 1,2,3 -> 01,02,03

2. 코드값명

  • 중복 사용 불가  →  [1] 남자, [2] 남자
  • 의미가 불분명한 코드값명 사용 금지  →  ‘NULL’ 등(기타 등 사용 권장)
  • 스페이스바 등 특수문자 사용 지양
  • 외부공인기관에서 정의한 코드는 생성규칙 대상에서 제외

 

표준코드 에러 Case

표준코드를 제대로 관리하지 않으면 여러가지 문제가 발생할 수 있습니다. 실제 현실에서는 다양한 에러 case가 발생하지만 대부분 많이 발생하는 4가지 경우에 대해 알아보도록 하겠습니다.

 

표준코드 에러 사례
표준코드 에러 사례

1. 코드값 중복

  • 코드값 중복은 실제 내용은 '해외', '소설'로 내용이 다른데, 코드값은 동일할 경우입니다. 이런 경우는 시스템별로 다르게 부여하여 사용하다 시스템 통합을 통해 발생합니다. 두개의 코드 중 하나를 코드 매핑을 통해 다른 코드를 변경해 줄 필요가 있습니다. 

2. 코드값 길이 불일치

  • 공통코드를 관리하면 코드값의 자리수를 일치시킵니다.  그런데 이렇게 시스템에 따라 숫자나 자릿수를 다르게 지정하여 문제가 발생할 수 있습니다. 

3. 코드값명 중복

  • 코드값은 다른데, 코드값명이 같은 경우도 발생할 수 있습니다. 이런 경우도 코드매핑을 통해 동일 코드값으로 일치시켜서 migration해주는 것이 필요합니다. 

4. 표준도메인 길이 불일치

  • 코드 길이가 불일치 했다는 것은 표준도메인을 사용하지 않았다는 이야기일 수 있습니다. 표준 도메인을 적용하여 동일한 데이터 타입과 길이를 설정해야 합니다. 

 

마무리

공통코드를 일관되게 관리하지 않으면 동일한 정보가 다른 형태로 여러 위치에 저장될 수 있습니다. 이로 인해 데이터 불일치가 발생하며, 신뢰성 있는 개발과 분석을 하기 어렵습니다. 변경 사항을 추적하고 관리하기 어려워 새로운 기능 개발이나 코드 수정에 어려움을 줄 수 있습니다. 이는 프로젝트 지연이 발생하게 하는 원인이 되기도 합니다.