기술과 산업/언어 및 프레임워크

전자정부 표준프레임워크 시리즈 11화 – 공통 코드 관리 기능 완벽 정리: 코드 테이블, 조회 서비스, 화면 연동까지

B컷개발자 2025. 5. 28. 15:22
728x90

전자정부 표준프레임워크에서 공통 코드 시스템을 어떻게 구성하고 사용하는지에 대해 코드 테이블 설계, 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