WebSphere Application Server(WAS)에서 한글이 깨져 보일 때 확인해야 할 인코딩 설정을 정리합니다. 애플리케이션 소스 코드(JSP/HTML) 레벨의 명시적 선언과 JVM 레벨의 시스템 프로퍼티 설정을 모두 점검해야 합니다.
Test Environment
- OS: CentOS 7.2
- WAS Version: WebSphere v8.5
1. 소스 코드 레벨 설정 (Application Level)
웹 애플리케이션 서버는 기본적으로 소스 코드 상단에 선언된 인코딩 설정을 최우선으로 인식합니다. JSP와 HTML 파일에 인코딩이 명시적으로 선언되어 있는지 확인합니다.
JSP 지시어 (Directive) 선언
JSP 파일 최상단에 pageEncoding과 contentType을 일치시켜 선언합니다. (최근 환경은 UTF-8 권장, 레거시 시스템은 EUC-KR 사용)
<!-- UTF-8 설정 (권장) -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!-- EUC-KR 설정 (Legacy) -->
<%@ page language="java" contentType="text/html; charset=EUC-KR" %>
HTML Meta 태그 선언
브라우저가 문서를 해석할 때 사용할 문자셋을 지정합니다.
<!-- UTF-8 설정 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- EUC-KR 설정 -->
<META http-equiv="Content-Type" content="text/html; charset=EUC-KR">
2. 서버 레벨 설정 (JVM Custom Properties)
소스 코드 설정이 올바름에도 불구하고 한글이 깨지거나, 시스템 로그 및 파일 입출력 시 인코딩 문제가 발생할 경우 WAS의 JVM 속성을 강제해야 합니다.
설정 경로
WAS 관리 콘솔(Admin Console)에서 아래 경로로 이동합니다.
- Servers > Server Types > WebSphere application servers
- [Server Name] 클릭
- Java and Process Management > Process definition
- Java Virtual Machine > Custom properties
주요 속성 설정
사용하는 인코딩 방식(UTF-8 또는 EUC-KR)에 맞춰 아래 두 가지 속성을 추가합니다.
client.encoding.override: 클라이언트(브라우저)와 통신 시 사용할 인코딩 강제 지정file.encoding: JVM이 파일 시스템을 읽고 쓸 때 사용할 기본 인코딩 지정
# Case 1: UTF-8 환경 (권장)
client.encoding.override = UTF-8
file.encoding = UTF-8
# Case 2: EUC-KR 환경
client.encoding.override = EUC-KR
file.encoding = EUC-KR
3. 점검 포인트
- 우선순위: 일반적으로
JVM 설정<web.xml 설정<JSP/HTML 내 선언순으로 우선순위를 가집니다. - DB 연동: WAS 설정뿐만 아니라 DB의
Character Set설정과 JDBC URL의 인코딩 옵션도 일치해야 완벽한 한글 처리가 가능합니다.
Next Step:
위 설정을 적용한 후에는 반드시 해당 서버(인스턴스)를 재기동해야 JVM 설정이 반영됩니다. 재기동 후 `SystemOut.log` 파일에 한글 로그가 정상적으로 기록되는지 확인하십시오.