기본 콘텐츠로 건너뛰기

자바(Java) | 카멜(Camel), 언더스코어(Underscore) 변환

🚀 자바(Java) 카멜(Camel Case) ↔ 언더스코어(Snake Case) 변환 방법 정리



(최종 업데이트: 2026년 1월 15일)

자바(Java) 개발을 하다 보면 카멜 표기법(Camel Case)언더스코어 / 스네이크 표기법(Snake Case) 간의 변환이 필요한 경우가 매우 많습니다. 특히 DB 컬럼명, JSON 키, API 응답 데이터를 다룰 때 표기법 변환은 거의 필수라고 볼 수 있습니다.

이 글에서는 Google Guava 라이브러리의 CaseFormat을 사용해 카멜 ↔ 언더스코어 변환을 가장 간단하고 안정적으로 처리하는 방법을 예제 코드와 함께 정리합니다.


🧩 1. 언더스코어(Snake Case) → 카멜(Camel Case)

데이터베이스 컬럼명이나 legacy 시스템에서는 lower_underscore 방식이 자주 사용됩니다. 이를 자바 변수명 규칙에 맞는 lowerCamel 방식으로 변환해 보겠습니다.

💡 사용 라이브러리
- com.google.guava:guava
- CaseFormat 클래스 활용

import com.google.common.base.CaseFormat;

public class Test {

    public static void main(String[] args) {

        String str = "frst_wrtng_dtm";
        System.out.println("before : " + str);

        // 언더스코어 → 카멜 변환
        String camelName =
                CaseFormat.LOWER_UNDERSCORE.to(
                        CaseFormat.LOWER_CAMEL, str);

        System.out.println("after : " + camelName);
    }
}
before : frst_wrtng_dtm
after  : frstWrtngDtm

🔁 2. 카멜(Camel Case) → 언더스코어(Snake Case)

반대로 자바 객체나 DTO의 필드명을 DB 컬럼명 또는 API 규격에 맞추기 위해 카멜 → 언더스코어 변환이 필요한 경우도 많습니다.

import com.google.common.base.CaseFormat;

public class Test {

    public static void main(String[] args) {

        String str = "frstWrtngDtm";
        System.out.println("before : " + str);

        // 카멜 → 언더스코어 변환
        String underscoreName =
                CaseFormat.LOWER_CAMEL.to(
                        CaseFormat.LOWER_UNDERSCORE, str);

        System.out.println("after : " + underscoreName);
    }
}
before : frstWrtngDtm
after  : frst_wrtng_dtm

📌 정리 및 실무 팁

  • CaseFormat은 표기법 변환을 가장 안전하게 처리할 수 있는 방법
  • ✔ 정규식 직접 처리보다 가독성과 유지보수성이 뛰어남
  • ✔ DB ↔ Java ↔ API 변환 로직에 적극 추천
  • ✔ 실무에서는 공통 유틸 클래스로 분리해두면 매우 편리

자바 카멜 언더스코어 변환, Camel Case Snake Case Java 관련해서 가장 많이 사용되는 방식이니 실무에 바로 적용해 보시길 바랍니다.


자바(Java) | 클래스(Class)의 변수(Variable), 메소드(Method) 가져오기, 메소드 동적실행, 리플렉션(Reflection)
ava.lang.reflect.Field, java.lang.reflect.Method

댓글