공통코드 모듈 사용 가이드
개요
사이트에서 사용되는 공통코드들을 사용하기 위한 기능을 제공한다. 캐모마일에서 설정해놓은 대분류,중분류,소분류의 공통코드 목록을 쉽게 활용할 수 있도록 자바 메서드로 제공한다.
관련 클래스
CommonCode
: 대분류/중분류/소분류에 해당하는 공통코드 목록을 조회할 수 있는 기능을 제공하는 클래스이다.MainCommonCodeVO
: 공통코드 대분류 관련 VO 도메인 객체이다.MiddleCommonCodeVO
: 공통코드 중분류 관련 VO 도메인 객체이다.SubCommonCodeVO
: 공통코드 소분류 관련 VO 도메인 객체이다.
사용법
dependency 등록(pom.xml)
<dependency> <groupId>net.lotte.chamomile.module</groupId> <artifactId>chamomile-commoncode</artifactId> </dependency>예제 코드
// 대분류 기준으로 페이징 처리된 중분류 목록을 조회 List<CodeVO> listCode = commonCode.listCodes("[대분류코드]", PageRequest.of(0, 10)); // 중분류 기준으로 페이징 처리된 소분류 목록을 조회 List<CodeVO> listCode = commonCode.listCodes("[대분류코드]", "[중분류코드]", PageRequest.of(0, 10)); // 공통코드 문자열을 파라미터로 넘길 시 이에 해당하는 공통코드 값을 조회 String findValue = commonCode.findValue("[코드 문자열]"); // 공통코드 문자열을 파라미터로 넘길 시 이에 해당하는 공통코드 데이터를 VO 객체로 리턴 CommonCodeVO findCommonCodeVO = commonCode.find("[코드 문자열]"); // 공통코드 문자열과 페이징 파라미터를 넘길 시 이에 해당하는 공통코드 목록을 페이징 처리하여 조회 Page<Object> findPagingList = commonCode.findList("[코드 문자열]", PageRequest.of(0, 10)); // 공통코드 문자열을 넘길 시 이에 해당하는 공통코드 목록을 페이징 처리하여 조회 List<Object> newFindList = commonCode.findList("[코드 문자열]");findValue, find, findList 에 해당하는 메소드의 String 파라미터 형태는 다양할 수 있다.
2, 3번에 해당하는 형태를 파라미터로 넘기고자 할 때에는 "." 을 사용해야 한다.
<"대분류ID"> 형태 : 대분류(카테고리) 공통코드 데이터를 조회
<"대분류ID.중분류ID"> 형태 : 중분류 공통코드 데이터를 조회
<"대분류ID.중분류ID.소분류ID"> 형태 : 소분류 공통코드 데이터를 조회
실습 코드
기존에
chamomile-sample-boot-basic
에 dependency를 등록한 후 BoardController에 해당 코드 추가.@RestController @RequestMapping("/api/boards") @RequiredArgsConstructor @Slf4j public class BoardController implements BoardControllerDoc { //기존 코드들 ... //공통코드 관련 모듈 private final CommonCode commonCode; //기존 컨트롤러들 ... /** * 공통코드 모듈을 사용하는 예제 리스트를 호출한다. */ @GetMapping("/common-code") public ChamomileResponse<Object> commonCode() throws Throwable { // 대분류 기준으로 중분류 목록을 조회 Page<Object> middleCommonCodeListByMainCommonCode = commonCode.listCodes("category00030" , PageRequest.of(0, 10)); // 중분류 기준으로 소분류 목록을 조회 Page<Object> subCommonCodeListByMiddleCommonCode = commonCode.listCodes("category00030", "code00001" , PageRequest.of(0, 10)); /* 단일 공통코드 값 조회 */ // 대분류 공통코드 값 조회 String mainCommonCodeValue = commonCode.findValue("cate1"); // 중분류 공통코드 값 조회 String middleCommonCodeValue = commonCode.findValue("cate1.code2"); // 소분류 공통코드 값 조회 String subCommonCodeValue = commonCode.findValue("cate1.code1.item1"); /* 단일 공통코드 데이터 VO 조회 */ // 대분류 공통코드 데이터 조회 CommonCodeVO mainCommonCodeVO = commonCode.find("cate2"); // 중분류 공통코드 데이터 조회 CommonCodeVO middleCommonCodeVO = commonCode.find("cate2.code2"); // 소분류 공통코드 데이터 조회 CommonCodeVO subCommonCodeVO = commonCode.find("cate2.code2.item2"); /* 공통코드 목록 조회 */ // 공통코드 대분류 목록 조회 Page<Object> mainCommonCodePagingList = commonCode.findList("cate1", PageRequest.of(0, 10)); List<Object> mainCommonCodeList = commonCode.findList("cate1"); // 공통코드 중분류 목록 조회 Page<Object> middleCommonCodePagingList = commonCode.findList("cate1.code1", PageRequest.of(0, 10)); List<Object> middleCommonCodeList = commonCode.findList("cate1.code1"); // 공통코드 소분류 목록 조회 Page<Object> subCommonCodePagingList = commonCode.findList("cate1.code1.item1", PageRequest.of(0, 10)); List<Object> subCommonCodeList = commonCode.findList("cate1.code1.item1"); List<Object> commonCodeResults = new ArrayList<>(); commonCodeResults.add(middleCommonCodeListByMainCommonCode); commonCodeResults.add(subCommonCodeListByMiddleCommonCode); commonCodeResults.add(mainCommonCodeValue); commonCodeResults.add(middleCommonCodeValue); commonCodeResults.add(subCommonCodeValue); commonCodeResults.add(mainCommonCodeVO); commonCodeResults.add(middleCommonCodeVO); commonCodeResults.add(subCommonCodeVO); commonCodeResults.add(mainCommonCodePagingList); commonCodeResults.add(mainCommonCodeList); commonCodeResults.add(middleCommonCodePagingList); commonCodeResults.add(middleCommonCodeList); commonCodeResults.add(subCommonCodePagingList); commonCodeResults.add(subCommonCodeList); return new ChamomileResponse<>(commonCodeResults); } }예제 sql 실행
-- 공통코드 카테고리 테이블 데이터 INSERT INTO CHMM_CATEGORY_INFO (CATEGORY_ID, CATEGORY_DESC, ORDER_NUM, USE_YN, REAL_VALUE) SELECT 'cate1', 'test1', 0, '1', NULL UNION ALL SELECT 'cate2', 'test1', 0, '1', NULL UNION ALL SELECT 'cate23', 'test1', 0, '1', NULL; -- 공통코드 코드 테이블 데이터 INSERT INTO CHMM_CODE_INFO (CATEGORY_ID, CODE_ID, CODE_DESC, ORDER_NUM, USE_YN, REAL_VALUE) SELECT 'cate1', 'code1', 'desc1', 0, '1', 'value1' UNION ALL SELECT 'cate2', 'code2', 'desc2', 0, '1', 'value2' UNION ALL SELECT 'cate2', 'code3', 'desc3', 0, '1', 'value3' UNION ALL SELECT 'cate23', 'code4', 'desc4', 0, '1', 'value4'; -- 공통코드 아이템 테이블 데이터 INSERT INTO CHMM_CODE_ITEM_INFO (CATEGORY_ID, CODE_ID, CODE_ITEM_ID, CODE_ITEM_DESC, ORDER_NUM, USE_YN, REAL_VALUE) SELECT 'cate2', 'code2', 'item1', 'itemDesc1', 0, '1', 'realValue1' UNION ALL SELECT 'cate2', 'code2', 'item2', 'itemDesc2', 0, '1', 'realValue2';
Last modified: 10 1월 2025