🏷️ 관련 기술 태그:#DatabaseDDL#snake_case#camelCase#EntityMapping#MyBatis
📖

DB 컬럼명 변환기 (snake_case ↔ camelCase) 완벽 가이드

데이터베이스 설계 및 백엔드/프론트엔드 개발 과정에서 명명 규칙(Naming Convention)의 불일치는 지속적인 개발 생산성 저하와 오타로 인한 런타임 버그의 주범입니다. 데이터베이스(RDBMS) 생태계에서는 전통적으로 단어를 언더바(_)로 구분하는 `snake_case` (예: `user_profile_img_url`)를 표기법으로 사용하는 반면, Java, Kotlin, TypeScript, JavaScript 등 모던 프로그래밍 언어에서는 `camelCase` (`userProfileImgUrl`)나 `PascalCase` (`UserProfileImgUrl`)를 표준으로 채택하고 있습니다. 개발자가 DB 스키마 명세서나 SQL `CREATE TABLE` DDL을 보고 수십, 수백 개의 컬럼 이름을 자바 DTO 객체나 타입스크립트 인터페이스 필드로 옮겨 적는 수작업은 단순 반복 노동일 뿐만 아니라, `is_active`를 `isActive`로 바꾸는 과정에서 단어를 누락하거나 대소문자를 틀리는 휴먼 에러를 빈번하게 유발합니다. 특히 ORM(JPA, MyBatis, TypeORM, Prisma) 매핑 설정을 구동할 때 컬럼명이 단 1글자만 틀려도 `BadSqlGrammarException`이나 `PropertyNotFoundException`이 발생하여 디버깅에 상당한 시간을 낭비하게 됩니다. JuicyDevs DB 컬럼명 변환기는 이러한 개발자들의 고충을 즉시 해결해 주는 고성능 어휘 변환 도구입니다. 단순한 1:1 변환을 넘어, SQL DDL 쿼리문 전체를 붙여넣더라도 정규표현식 파서가 테이블 정의절 내부의 컬럼 식별자만을 지능적으로 추출하여 타겟 프로그래밍 언어의 변수 스타일로 완벽하게 맵핑해 줍니다. 또한 legacy DB에서 자주 접하는 `tbl_`, `col_`, `tb_` 등 관례적 접두사(Prefix)나 접미사를 일괄 제거하는 기능을 제공하여 깔끔한 엔티티 코드 작성을 보장합니다. 가장 중요한 보안성 측면에서도 100% 클라이언트 사이드 아키텍처로 구현되었습니다. 사용자가 붙여넣는 사내 DB의 테이블 컬럼 명세나 스키마 정보는 외부 서버로 단 1바이트도 전송되지 않으며, 모든 파싱 연산은 사용자의 웹 브라우저 내부 V8 자바스크립트 엔진에서만 로컬로 수행됩니다. 따라서 보안 검수가 엄격한 사내 망분리 환경에서도 안심하고 실무에 사용할 수 있습니다.

주요 핵심 기능

  • 수십~수백 개의 DB 컬럼명을 한 번에 camelCase, PascalCase로 대량 변환
  • SQL CREATE TABLE 문에서 컬럼 이름만 자동 추출하여 변환
  • JSON 매핑 필드, MyBatis ResultMap, JPA Entity 필드 생성 보조
  • 접두사(tbl_, col_) 및 특수 패턴 일괄 제거 지원

🚀 빠른 사용 방법

  1. 1좌측 입력창에 줄바꿈으로 구분된 컬럼명 목록이나 CREATE TABLE 쿼리를 넣습니다.
  2. 2원하는 타겟 표기법(camelCase, PascalCase 등)을 선택합니다.
  3. 3우측에 변환된 필드 목록을 복사하여 DTO 클래스에 붙여넣습니다.
🔒100% 클라이언트 사이드 보안 아키텍처

정규표현식 기반 어휘 분석을 통해 SQL 예약어와 제약조건을 필터링하고 컬럼 식별자만을 정확히 추출하여 변환합니다.

💡실무 기술 가이드 & 자주 묻는 질문 (FAQ)

3 개 질문 & 답변 가이드

Q1.대소문자가 섞인 DB 컬럼이나 숫자가 포함된 식별자도 정상 변환되나요?

네, 완전히 안전하게 변환됩니다. 본 변환기는 문자열 내의 언더바(_), 대시(-), 공백, 그리고 대소문자 전환점(Camel Boundary)을 복합적으로 감지하는 지능형 토크나이저를 사용합니다. 예를 들어 `USER_PROFILE_ID`, `user_profile_id`, `user-profile-id` 모두 동일하게 표준 카멜케이스인 `userProfileId`로 변환됩니다. 또한 숫자가 포함된 컬럼명(예: `address_line1_detail`)도 숫자 경계를 정확히 보존하여 `addressLine1Detail`과 같이 프로그래밍 언어 문법에 맞는 올바른 식별자로 생성해 줍니다.

Q2.tbl_, col_ 같은 legacy 접두사를 자동으로 제거하고 변환할 수 있나요?

네, 접두사(Prefix) 및 접미사(Suffix) 일괄 제거 옵션을 완벽히 지원합니다. 오래된 데이터베이스 설계에서는 테이블이나 컬럼 앞에 `tbl_user_name`, `col_created_at`처럼 의미 없는 관례적 접두사가 붙어있는 경우가 많습니다. 코드 생성 시 이러한 접두사가 그대로 포함되면 DTO 클래스의 가독성이 떨어집니다. 이 도구에서는 제거할 문자열 패턴(예: `tbl_`, `col_`)을 지정하면 해당 단어를 일괄 삭제한 후 `userName`, `createdAt`과 같이 깔끔한 카멜케이스 변수로 즉시 변환해 줍니다.

Q3.SQL CREATE TABLE 쿼리문 전체를 붙여넣어도 컬럼명만 추출할 수 있나요?

네, DDL 쿼리 자동 추출 알고리즘이 탑재되어 있어 `CREATE TABLE` 문 전체를 그대로 붙여넣으셔도 됩니다. 파서가 `VARCHAR(255)`, `NOT NULL`, `PRIMARY KEY`, `DEFAULT CURRENT_TIMESTAMP`, `CONSTRAINT` 등의 SQL 예약어와 데이터 타입 및 제약조건 구문을 자동으로 필터링합니다. 순수 컬럼 식별자만 추출하여 변환 결과로 생성해 주므로, DB 매니지먼트 툴(DBeaver, DataGrip)에서 복사한 테이블 생성 DDL을 곧바로 활용하실 수 있습니다.