[SI] 프로젝트 9주차

소복치·2025년 2월 13일

이번주는 내가 맡은 개발들 중 "공통코드 관리" 테이블 적재 프로세스를
완료 시킬 예정이다.

1. 공통코드란?

여러 모듈에서 공통적으로 사용되는 코드 값

2. 공통코드를 사용하는 이유

데이터 일관성 유지

  • 동일한 정보를 여러 테이블에서 개별적으로 저장하면 중복 발생
  • 공통 코드 테이블에서 중앙에서 관리하면 항상 일관된 코드 사용 가능

유지보수 용이

  • 특정 코드 값을 수정할 때 한 곳만 변경하면 모든 시스템에 반영
  • 코드 값이 추가되거나 변경될 때 중앙 관리가 가능

데이터베이스 성능 최적화

  • JOIN을 사용하여 데이터 저장 공간 절약 가능
  • 코드 값(ID)만 저장하고 의미는 코드 테이블에서 조회
SELECT S.학교명, C1.공통코드값명 AS 고등학교종류, C2.공통코드값명 AS 학교설립구분
FROM 학교 S
JOIN 공통코드값 C1 ON S.고등학교종류코드 = C1.공통코드값 AND C1.공통코드ID = '1001'
JOIN 공통코드값 C2 ON S.학교설립구분코드 = C2.공통코드값 AND C2.공통코드ID = '1002';

3. 공통코드 구조

공통코드를 설계하면서 이리저리 조사해본 결과 공통코드에도 구조가 여러가지가 있다는걸 알았다.

3.1 공통 코드 유형과 공통코드로 구성한 형태

식별자가 코드유형ID, 코드 조합으로 구성되어 있으며, SQL로 고객유형코드 조회 시 코드유형ID = '1000'조건을 추가하여 사용
코드유형ID 대신 코드유형영문명 = 'CUST_CLS'처럼 코드유형 영문명을 사용하면 코드유형ID보다 직관적이어서 코딩 생산성을 높일 수 있음!

3.2 코드유형 + 코드 엔티티 통합 형태

공통코드 식별자를 '10001' 처럼 코드속성으로만 구성하고 코드유형ID는 일반 속성으로 관리 가능
코드에 대한 공통유형ID조건 없이 코딩이 가능하므로 코딩 생산성이 높고, 코드 값으로도 코드유형을 알 수 있으나, 코드가 길어져 저장공간을 많이 차지하는 문제가 있을 수 있음!

3.3 코드유형, 코드 간 종속관계

공통 코드 유형과 공통 코드 테이블을 분리하여 체계적으로 코드 관리 가능
상위 코드 개념을 활용하면 계층 구조를 쉽게 표현할 수 있고,
데이터의 일관성을 유지하면서 확장성 있는 코드 관리가 가능함!

3.4 코드유형 간 포함관계

코드유형이 다른 코드유형의 부분집합으로 관리
이경우는 코드유형을 별도로 생성하거나 코드유형 변경없이 데이터 구조를 다르게 설계 할 수도 있음!

4. 공통코드 테이블 설계

우리가 설계한 방법은 위 내용에서 3.3번과 같은 방식으로 진행했다.

첫 번째
공통코드 유형 ID 테이블을 따로 만들어 큰 그룹 생성
(ex. 학교, 자격증, 직무, 직급 등..)

두 번째
공통코드 테이블과 공통코드 매핑 테이블을 만들어
우리가 사용할 공통코드에 대해 매핑테이블에 데이터 적재

세 번째
적재된 매핑 테이블과 공통코드 유형 ID를 JOIN 하여 공통코드 테이블에 배치를 돌려 적재

이렇게 하면, 우리가 사용할 수 있는 공통코드들이 완성이 된다.

단지 데이터를 적재하고 테이블에 관계성에 대해서만 알고 있었던 나는
이번 프로젝트에 나가서 공통적으로 사용하는 데이터는 따로 또 관리하고 있다는것을
처음보게 되었다.

다음주에는.. 이제 공통코드 테이블에 적재할 데이터들을 매핑하는 작업을 진행할 예정이다.

profile
오늘 터져도내일 다시극복

0개의 댓글