JSP에서 JSTL을 사용한 메시지 번들 관리와 다국어 지원 방법
이번 글에서는 다국어 지원을 위한 메시지 번들 관리 방법에 대해 알아보겠습니다. 글로벌 웹 애플리케이션에서는 다양한 언어와 지역에 맞춘 콘텐츠를 제공하는 것이 중요한데, 이를 위해 JSTL의 <fmt:bundle>
과 <fmt:message>
태그를 사용하여 메시지 번들을 관리하고, 번역된 콘텐츠를 JSP 페이지에 적용하는 방법에 대해 알아봅니다.
1. 다국어 지원의 필요성
글로벌 웹 애플리케이션을 개발할 때, 다양한 언어와 지역에 맞춘 콘텐츠를 제공하는 것이 필수적입니다. 이를 위해 다국어 지원을 구현하고, 각 언어에 따라 메시지를 번역하여 제공하는 방법이 필요합니다. JSP에서는 JSTL의 <fmt:bundle>
과 <fmt:message>
태그를 사용하여 다국어 메시지를 처리할 수 있습니다. 이러한 태그를 통해 동일한 페이지에서 사용자의 언어 설정에 따라 자동으로 번역된 콘텐츠를 표시할 수 있습니다.
2. 메시지 번들 관리: <fmt:bundle> 태그
<fmt:bundle>
태그는 메시지 리소스 번들(Resource Bundle)을 지정하는 데 사용됩니다. 리소스 번들은 일반적으로 각 언어별로 번역된 메시지를 포함하는 프로퍼티 파일(.properties)로 구성됩니다. 이 태그를 사용하면 지정한 리소스 번들에서 메시지를 가져와 사용할 수 있습니다.
2.1 <fmt:bundle> 태그의 주요 속성
- basename: 메시지 리소스 번들의 기본 이름을 지정합니다.
3. 다국어 메시지 출력: <fmt:message> 태그
<fmt:message>
태그는 <fmt:bundle>
태그에서 지정한 리소스 번들로부터 특정 메시지를 가져와 출력하는 데 사용됩니다. 이 태그를 사용하여 다국어 메시지를 JSP 페이지에 쉽게 적용할 수 있습니다.
3.1 <fmt:message> 태그의 주요 속성
- key: 리소스 번들에서 가져올 메시지의 키를 지정합니다.
3.2 메시지 번들 예제
먼저, 메시지 번들 파일을 준비해야 합니다. 예를 들어, messages_en.properties
와 messages_ko.properties
라는 두 개의 파일을 생성합니다.
messages_en.properties (영어)
greeting=Hello
farewell=Goodbye
messages_ko.properties (한국어)
greeting=안녕하세요
farewell=안녕히 가세요
이제 JSP 페이지에서 이 메시지 번들을 사용해 다국어 지원을 구현해보겠습니다.
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:bundle 및 fmt:message 태그 예제</title>
</head>
<body>
<h1>JSTL fmt:bundle 및 fmt:message 태그 예제</h1>
<!-- 한국어 메시지 번들 설정 -->
<fmt:setLocale value="ko_KR" />
<fmt:bundle basename="messages">
<p>한국어 인사말: <fmt:message key="greeting" /></p>
<p>한국어 작별인사: <fmt:message key="farewell" /></p>
</fmt:bundle>
<!-- 영어 메시지 번들 설정 -->
<fmt:setLocale value="en_US" />
<fmt:bundle basename="messages">
<p>English Greeting: <fmt:message key="greeting" /></p>
<p>English Farewell: <fmt:message key="farewell" /></p>
</fmt:bundle>
</body>
</html>
예제 설명
- 메시지 번들 파일: 두 개의
.properties
파일을 사용하여 한국어(messages_ko.properties
)와 영어(messages_en.properties
)에 대한 번역된 메시지를 정의합니다. 각 파일에는 동일한 키(greeting
,farewell
)에 대해 다른 언어로 번역된 메시지가 포함됩니다. - 로케일 설정과 번들 지정: JSP 페이지에서
<fmt:setLocale>
태그를 사용하여 로케일을 설정하고,<fmt:bundle>
태그를 사용하여 해당 로케일에 맞는 메시지 번들을 지정합니다. 이후<fmt:message>
태그를 사용하여 번들에서 메시지를 가져와 출력합니다. - 다국어 메시지 출력: 사용자가 선택한 로케일에 따라 JSP 페이지는 자동으로 해당 언어로 번역된 메시지를 표시합니다. 이 예제에서는 한국어와 영어로 메시지를 출력하는 방법을 보여줍니다.
▼ 실행 결과

결론
JSTL의 <fmt:bundle>
과 <fmt:message>
태그를 사용하면 다국어 지원을 쉽게 구현할 수 있습니다. 이 방법을 사용하면 동일한 JSP 페이지에서 다양한 언어로 번역된 콘텐츠를 제공할 수 있어, 글로벌 웹 애플리케이션을 개발할 때 매우 유용합니다. 각 언어별 메시지 번들을 관리함으로써 코드의 복잡성을 줄이고, 유지보수를 쉽게 할 수 있습니다.
함께 보면 좋은 이전 게시글
- JSP에서 JSTL을 사용한 로케일 및 인코딩 설정 방법
- JSP에서 JSTL 표준 태그 라이브러리 설정 및 사용 방법
- JSP에서 JSTL 코어 태그로 조건문 처리: c:if, c:choose 태그
- JSP에서 JSTL 반복문 처리하기: c:forEach, c:forTokens 태그
- JSP EL(Expression Language) 활용하기: 기본 문법과 예제
이 글이 도움이 되셨다면 공유 부탁 드립니다.