ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전자정부 표준프레임워크 시리즈 9화 – 메시지 처리와 다국어 지원 기능 완벽 가이드
    기술과 산업/언어 및 프레임워크 2025. 5. 21. 19:47
    728x90

    전자정부 표준프레임워크에서 메시지 처리 및 다국어 지원 기능의 구조와 설정 방법, 실무에서의 확장 전략을 정리합니다. message.properties 기반 설계, 에러 메시지 관리, 사용자 알림 일원화까지 실전 대응 전략을 제공합니다.

     

    1. 공공 시스템에서 다국어 처리는 선택이 아닌 필수

    전자정부 시스템은 다음과 같은 상황에 자주 직면합니다.

    • 외국인 사용자 대상 공공 서비스 (예: 외국인 민원 포털)
    • 다국어 환경을 지원하는 글로벌 기관용 시스템 (예: KOTRA, KOICA 등)
    • 통일된 에러/알림 메시지 관리가 필요한 복수 기관 시스템

    이때 필요한 것이 바로 message.properties 기반 다국어 메시지 처리 구조입니다.

    전자정부 표준프레임워크는 Spring의 메시지 처리 방식을 기반으로,
    표준화된 메시지 구성 및 다국어 처리 기능을 기본 제공합니다.


    2. 메시지 처리 구조 개요

    전자정부 프레임워크는 egovframework/mssage/message-*.properties 파일을 이용해
    국가별 메시지를 분리 관리합니다.

    파일명 설명

    message-ko.properties 한국어 메시지 파일
    message-en.properties 영어 메시지 파일
    message-zh.properties 중국어 메시지 파일 (선택)

    이 구조를 통해 코드와 텍스트 메시지를 완전히 분리할 수 있습니다.


    3. 설정 파일 구성 및 적용 방식

    1) properties 파일 구성 예시

    info.success=정상적으로 처리되었습니다.
    error.unauthorized=접근 권한이 없습니다.
    user.login.fail=아이디 또는 비밀번호가 잘못되었습니다.
    

    → 동일 키 값으로 각 언어 파일에 정의하면 다국어 자동 전환이 가능

    2) Spring 설정

    전자정부 프레임워크는 기본적으로 messageSource 빈을 설정해 메시지를 자동으로 로딩합니다.

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>classpath:/egovframework/message/message</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>
    

    ✅ 파일명에서 언어 코드만 바꿔가며 국제화를 처리할 수 있습니다.


    4. 다국어 처리 흐름과 Locale 설정

    다국어 처리를 위해서는 사용자의 Locale 정보를 감지해야 합니다.

    전자정부 프레임워크에서는 다음 흐름으로 동작합니다:

    1. 사용자의 브라우저 또는 세션에서 Locale 정보를 확인
    2. 해당 언어에 맞는 message-*.properties 파일을 로딩
    3. View 또는 Controller에서 메시지 키로 값 출력

    LocaleResolver 설정 예시

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
    <interceptor>
      <mapping path="/**"/>
      <beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <beans:property name="paramName" value="lang"/>
      </beans:bean>
    </interceptor>
    

    ✅ ?lang=en 파라미터로 언어 변경 가능
    ✅ 세션, 쿠키, 헤더 기반으로 Locale 변경 방식 선택 가능


    5. 메시지 출력 방법

    1) JSP에서 메시지 출력

    <spring:message code="info.success"/>
    

    2) Java 코드 내 메시지 호출

    messageSource.getMessage("user.login.fail", null, locale);
    

    3) Ajax/REST 응답용 메시지 사용

    Controller나 Service에서 메시지 키를 직접 조회해 JSON 응답 메시지로 변환 가능


    6. 실무에서의 메시지 전략

    A. 메시지 코드 통일 관리

    • 에러, 경고, 성공 메시지 모두 코드화하여 관리
    • 키값은 에러유형.업무명.코드 식으로 명명
      예: error.user.notfound, warn.login.retry, success.insert.complete

    B. 메시지 관리 툴 도입 고려

    • 공공 프로젝트에서는 .properties 파일이 수백 줄이 넘는 경우도 많음
    • Excel → properties 변환 도구, 메시지 관리 시스템(예: 전자문서시스템 연동) 도입도 고려 가능

    C. 다국어 품질 관리

    • 단순 번역기 사용은 오류 발생 가능성 높음
    • 실 프로젝트에서는 전문 번역사 검토 거친 메시지 적용이 권장됨
    • 실제 운영 시스템에서는 QA 단계에서 반드시 다국어 UI 검수 필요

    7. 고급 확장 – 사용자 알림 시스템과 통합

    • 메시지 코드를 기반으로 Alert, Toast 알림, 모달 안내 등 UI 구성 가능
    • 서버 응답 메시지를 그대로 UI 알림에 활용하면 유지보수 용이
    • 운영 시 다국어 텍스트를 로그에 남겨 국제 사용자 오류 대응 가능

    결론 – 메시지 구조는 UI, 보안, 감리까지 연결되는 핵심 축이다

    전자정부 표준프레임워크의 메시지 처리 구조는 단순한 출력 기능이 아니라
    다국어 UX, 운영 중 이슈 대응, 감리 대응 문서화까지 연결되는 전략적 구조입니다.

    표준화된 메시지 구조와 다국어 시스템은

    • 사용자 만족도 향상
    • 오류 대응 일원화
    • 유지보수 생산성 향상
      이라는 3가지 효과를 동시에 실현할 수 있습니다.

    다음 화 예고

    👉 전자정부 표준프레임워크 시리즈 10화 – 파일 업로드와 다운로드 처리 구조 분석: EgovFileMngService의 내부 작동 방식

    728x90
Designed by Tistory.