-
전자정부 표준프레임워크 시리즈 11화 – 공통 코드 관리 기능 완벽 정리: 코드 테이블, 조회 서비스, 화면 연동까지기술과 산업/언어 및 프레임워크 2025. 5. 28. 15:22728x90
전자정부 표준프레임워크에서 공통 코드 시스템을 어떻게 구성하고 사용하는지에 대해 코드 테이블 설계, Service/DAO 구현, 화면 연동 방식까지 전 과정을 실무 중심으로 설명합니다.
1. 왜 공통 코드 시스템이 중요한가?
공공 정보 시스템에서 "공통 코드"란 다음을 의미합니다:
- 선택 항목(콤보박스)의 값 목록
- 상태값, 구분자, 유형 값 등 정형화된 분류
- 다국어 연동 및 유지보수 시 공통 관리 대상
예를 들어,
- 성별 코드: M, F → ‘남성’, ‘여성’
- 민원 유형 코드: A01, B02 → ‘주민등록’, ‘출입국’
- 업무 상태 코드: 00, 01, 99 → ‘작성 중’, ‘제출’, ‘반려’
이러한 값들을 하드코딩하지 않고 중앙 집중형 코드 테이블로 관리하는 것이
전자정부 표준프레임워크의 기본 전략입니다.
2. 전자정부 프레임워크의 코드 관리 기본 구조
전자정부 프레임워크에서는 다음과 같은 구조로 공통 코드를 처리합니다:
[DB] 코드 테이블 (COMTCCMMNDETAILCODE) ↓ [DAO] → [Service] → [Controller] ↓ [JSP 또는 JS]에서 공통 코드 조회 및 출력
✅ 공통 코드 기능은 eGovFrame 내에서 EgovCmmUseService로 제공됩니다.
3. DB 테이블 구조
전자정부 표준 DB 구조에서 다음 두 개의 테이블이 기본입니다.
1) COMTCCMMNCODE (코드 분류 테이블)
컬럼명 설명
CODE_ID 코드 분류 ID (예: GENDER) CODE_ID_NM 코드 분류 이름 (예: 성별) USE_AT 사용 여부 2) COMTCCMMNDETAILCODE (상세 코드 테이블)
컬럼명 설명
CODE_ID 상위 코드 ID (FK) CODE 상세 코드 값 (예: M, F) CODE_NM 코드 이름 (예: 남성, 여성) USE_AT 사용 여부 SORT_ORDR 정렬 순서 ✅ 이 구조는 공공기관 전반에 걸쳐 가장 보편적으로 사용되는 코드 시스템입니다.
4. Service / DAO 구조
전자정부 표준 샘플에는 다음과 같은 공통 코드 조회 서비스가 기본 탑재되어 있습니다.
Interface
public interface EgovCmmUseService { List<CmmnDetailCode> selectCmmCodeDetail(CmmnCodeVO vo) throws Exception; }
사용 예
CmmnCodeVO vo = new CmmnCodeVO(); vo.setCodeId("GENDER"); List<CmmnDetailCode> codeList = cmmUseService.selectCmmCodeDetail(vo);
✅ 이 구조를 그대로 사용하거나, 프로젝트 전용 코드 서비스로 커스터마이징 가능합니다.
5. JSP 화면에서 코드 바인딩 방식
전자정부 표준 방식은 JSP에서 코드 목록을 출력하는 패턴을 다음과 같이 사용합니다.
<c:forEach var="code" items="${genderCodeList}"> <option value="${code.code}">${code.codeNm}</option> </c:forEach>
Controller 또는 Interceptor에서 미리 공통 코드를 Model에 담아두고
화면에서는 반복 출력만 하도록 설계합니다.
6. 고급 활용 전략 – 다국어, JS 연동, 비동기 처리
A. 다국어 연동
CODE_NM 컬럼에 다국어 처리를 적용하려면 별도 테이블 또는 다국어 맵핑 테이블 구축이 필요
→ 예: COMTCCMMNDETAILCODE_LANG (code_id, code, lang, code_nm)B. 자바스크립트로 코드 조회 (Ajax)
화면 전환 없이 콤보박스를 변경할 때 서버에서 코드 목록을 비동기 조회
→ /cmm/codeAjax.do?codeId=CAR_TYPE서버 응답은 JSON 형태
[ {"code": "A01", "codeNm": "경형"}, {"code": "B01", "codeNm": "중형"}, {"code": "C01", "codeNm": "대형"} ]
C. 코드 캐싱
- 코드 조회는 자주 발생하는 요청이므로 SimpleCache, EhCache, Redis 등을 활용한 캐싱 전략 도입 가능
- 코드 변경이 자주 발생하지 않기 때문에, 서버 시작 시 전량 로딩 방식도 실무에서 많이 활용
7. 실무에서 자주 묻는 질문 (FAQ)
Q1. 코드 값이 화면마다 다르게 사용되면 어떻게 해야 하나요?
A: 분류 ID를 달리하거나, 한 분류 내에서도 USE_AT, SORT_ORDR, 업무ID 기준으로 분기하여 조회
Q2. 코드 조회를 모든 Controller에서 공통 적용하고 싶은데?
A: @ControllerAdvice 또는 Interceptor에서 미리 Model에 코드를 주입
결론 – 공통 코드 구조는 시스템의 유연성과 유지보수성을 결정짓는 핵심
전자정부 표준프레임워크는 공통 코드 시스템을 통해
코드 일관성 확보, 다국어 처리 기반 구축, 감리 대응 문서화까지 가능하도록 설계되어 있습니다.이 구조를 잘 활용하면
- 신규 업무 추가 시 빠른 적용
- UI 일관성 유지
- 사용자 혼란 최소화
라는 실무적 장점을 모두 누릴 수 있습니다.
다음 화 예고
👉 전자정부 표준프레임워크 시리즈 12화 – 배치 모듈의 구조와 활용 전략: Quartz 기반 스케줄링 시스템 이해하기
728x90'기술과 산업 > 언어 및 프레임워크' 카테고리의 다른 글
Spring Boot 시리즈 37편 – 실시간 기능을 위한 WebSocket 연동 전략 (0) 2025.05.29 Spring Framework 시리즈 10화 – 실무 예제: 간단한 DI 기반 계산기 시스템 구현 (0) 2025.05.29 Spring Framework 시리즈 9화 – ApplicationContext의 역할과 이벤트 처리 구조 (0) 2025.05.28 NestJS 마스터 시리즈 16화. 인증 시스템 구현 (2) – AuthGuard와 역할 기반 인가 처리 (0) 2025.05.28 Spring Framework 시리즈 7화 – @Value와 Environment로 설정값 주입하기 (0) 2025.05.27