ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 공통 테이블을 상수로 전환 처리
    NodeJS 2022. 10. 31. 15:04

    공통 테이블의 값을 상수로 변환해는 방식을 고민 하다 SQL을 이용해서 처리해 보았습니다.

    테이블 구조

    
    CREATE TABLE `cmm_code_m` (
      `id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
      `reg_sytm_nm` varchar(100) NOT NULL COMMENT '등록시스템명',
      `mod_sytm_nm` varchar(100) NOT NULL COMMENT '수정시스템명',
      `cmm_grp_cd` varchar(50) DEFAULT NULL COMMENT '공통그룹코드',
      `cmm_cd_nm` varchar(100) DEFAULT NULL COMMENT '공통코드명',
      `cmm_cd_val` varchar(300) DEFAULT NULL COMMENT '공통코드값',
      `reg_dtm` varchar(14) DEFAULT NULL COMMENT '등록일시',
      `mod_dtm` varchar(14) DEFAULT NULL COMMENT '수정일시',
      `upr_cmm_grp_cd` varchar(50) DEFAULT NULL COMMENT '상위공통그룹코드',
      `seq` int DEFAULT NULL COMMENT '순서',
      `exps_yn` varchar(1) DEFAULT NULL COMMENT '노출여부',
      `adm_admin_m_id` int NOT NULL,
      `use_yn` varchar(1) NOT NULL DEFAULT 'Y' COMMENT '사용여부',
      PRIMARY KEY (`id`),
      UNIQUE KEY `uk_cmm_code_m` (`cmm_grp_cd`,`cmm_cd_nm`)
    ) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 COMMENT='공통코드마스터';

    위와 같은 구조를 가진 공통 코드 테이블이며, cmm_grp_cd을 변수명으로 { cmm_cd_nm: cmm_cd_val } 형식으로 만들려고 합니다.

    SQL

    select
    	concat('export const ', upper(cmm_grp_cd), ' = ', ' {' , group_concat(concat(cmm_cd_nm, ': \'', cmm_cd_nm), ' \' /* ', cmm_cd_val, ' */'), '} as const;' ) from cmm_code_m ccm 
    	group by cmm_grp_cd
    

    위의 SQL을 실행하면 아래와 같은 결과를 확인 할 수 있습니다.

    결과

    export const ACTV_TCD = {
      LIN: 'LIN ' /* 로그인 */,
      LOUT: 'LOUT ' /* 로그아웃 */,
      TRFS: 'TRFS ' /* 토큰재발급 */,
    } as const;
    export const PET_DCD = {
      CAT: 'CAT ' /* 고양이 */,
      DOG: 'DOG ' /* 강아지 */,
    } as const;
    

    한줄로 나오는 결과를 포멧팅하였습니다.

    참고자료

    'NodeJS' 카테고리의 다른 글

    bcrypt를 bcryptjs로 전환  (0) 2022.11.15
    nestjs에서 jest TIP 정리  (0) 2022.11.07
    nestjs에서 멀티 DB 설정 및 셋팅  (0) 2022.10.28
    typescript 객체 생성 유틸  (0) 2022.10.28
    javascript array에서 중복되는 객체 제거하기  (0) 2021.12.14
Designed by Tistory.