2016년 4월 19일 화요일

Java의 Property와 ResourceBundle

개인프로젝트로 작은 java 라이브러리를 만들고 있다. 항상 라이브러리를 가져다 쓰는 입장이었는데, 만들려고 하니 평소에는 쉽게 지나치던 것들도 유심히 따져보게된다.

1. Properties
Java 1.0부터 있는 클래스다. Java 1.7기준으로 javadoctutorial을 볼 수 있다. 보통 properties 파일은 UTF-8이 아니어서 한글을 입력하면 \u313B처럼 인코딩되어 보이곤 하는데, load() 메서드에 인코딩을 UTF-8로 지정한 InputStreamReader을 던지면 UTF-8도 상관없다고 한다.

2. ResourceBundle
Java 1.1부터 있는 클래스다. Java 1.7기준의 javadoctutorial은 각각의 링크에서...

3. 차이점
두 클래스의 차이점은 Locale에 있는 듯 하다. Locale마다 다른 properties 파일을 읽어서 처리하고자 한다면 ResouceBundle은 이를 Locale 클래스 기반으로 알아서 처리해준다. 클래스이름에 "Bundle"이 있는 이유도 각 언어마다 properties파일을 만들기 때문에 "묶음"이 될 텐데 이 떄문인 듯 하다. 관련 링크1, 링크2

나는 지금 라이브러리를 사용하는 곳의 클래스패스에 존재하는 properties 파일을 읽어서 DB접속이나 라이브러리 기능을 제어하고자 하므로 Properties를 사용하는 것이 맞을 것 같다.

댓글 없음:

댓글 쓰기