CaseFormat 클래스는 구글 구아바(Guava) 라이브러리에서 제공하는 유틸리티 클래스로, 다양한 ASCII 대소문자 표기 형식 사이의 문자열 변환을 아주 간편하게 처리해 줍니다. 예를 들어 데이터베이스에서 흔히 쓰이는 스네이크 케이스(snake_case) 문자열을 자바 코드에서 많이 사용하는 카멜 케이스(camelCase)로 바꿀 때 매우 유용합니다.
CaseFormat에서 지원하는 형식
CaseFormat은 다음과 같은 다섯 가지 표기 형식을 상수로 제공합니다.
| 형식 상수 | 표기 예시 |
|---|---|
| LOWER_HYPHEN | lower-hyphen (하이픈으로 구분된 소문자) |
| LOWER_CAMEL | lowerCamel (첫 단어만 소문자인 카멜 케이스) |
| LOWER_UNDERSCORE | lower_underscore (밑줄로 구분된 소문자) |
| UPPER_CAMEL | UpperCamel (첫 글자가 대문자인 파스칼 케이스) |
| UPPER_UNDERSCORE | UPPER_UNDERSCORE (밑줄로 구분된 전체 대문자) |
핵심 메서드: to()
CaseFormat의 핵심은 to(CaseFormat format, String str) 메서드입니다. 사용법은 [현재 형식].to([변환할 형식], 문자열) 순서이며, 지정한 형식으로 변환된 새 문자열을 반환합니다.
CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"); // 결과: testData
CaseFormat을 사용하려면 프로젝트에 구아바(Guava) 의존성이 추가되어 있어야 합니다. Maven 프로젝트라면 pom.xml에 guava 라이브러리를 추가하면 됩니다.
예제 코드
이제 CaseFormat 클래스를 실제로 사용해 보겠습니다. 파일 이름은 GuavaTester.java로 저장합니다.
import com.google.common.base.CaseFormat;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester tester = new GuavaTester();
tester.testCaseFormat();
}
private void testCaseFormat() {
String data = "test_data";
System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"));
System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"));
System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"));
}
}다음과 같이 javac 컴파일러로 클래스를 컴파일합니다.
C:\Guava>javac GuavaTester.java
컴파일이 끝나면 GuavaTester 프로그램을 실행합니다.
C:\Guava>java GuavaTester
실행 결과
프로그램을 실행하면 다음과 같은 출력이 나타납니다.
testData testData TestData
출력 결과를 보면 하이픈(-)이나 밑줄(_)로 연결된 소문자 문자열은 lowerCamel 형식으로, 대문자와 밑줄로 구성된 문자열은 UpperCamel(파스칼 케이스) 형식으로 정확히 변환된 것을 확인할 수 있습니다. 이처럼 CaseFormat을 활용하면 복잡한 문자열 처리 로직 없이도 표기법 변환을 깔끔하게 처리할 수 있습니다.