Change Case 라이브러리를 이용한 문자열 Case 변환

올로시아·2023년 9월 23일
1

코드 한땀

목록 보기
1/16
post-thumbnail

안녕하세요. 올로시아 입니다.

개발하다 보면 문자열 대소문자 변환은 빈번하게 사용되곤 하죠.

다행히 우리가 사용하는 거의 모든 에디터에서 해당 기능은 필수적으로 제공되니 문제가 없는데...

개발자들은 일상적으로 snake_case 형태의 문자열을 camelCase 형태의 변수로 변환해야 하죠.

사용하시는 에디터나 플러그인에서 제공하는 기능을 통해 시간을 절약하고, 오타를 줄이고 계실텐데요.

Change Case

오늘은 이런 문자열 변환에 활용 할 수 있는, Change Case 라는 자바스크립트 라이브러리를 소개해드립니다.
https://github.com/blakeembrey/change-case

해당 라이브러리에서는 아래와 같은 함수 목록을 제공합니다.

camelCase
capitalCase
constantCase
dotCase
headerCase
noCase
paramCase
pascalCase
pathCase
sentenceCase
snakeCase

이름만 보셔도 대충 감이 오시죠?

pascalCase

그럼 먼저 pascalCase 함수를 살펴볼까요?

pascalCase("test string");
//=> "TestString"

pascalCase 함수는 인자로 전달된 문자열을 구분 기호 없이 각 단어의 첫 문자를 대문자로 변환합니다.

코딩시 클래스명을 파스칼케이스로 작성하게 되는데 이럴때 사용이 가능합니다만... 우리는 사실 빈번한 변수명 작성이 문제지요.

camelCase

그럼 이제 변수명 작성에 쓸 수 있는 camelCase 함수도 살펴보겠습니다.

camelCase("test string");
//=> "testString"

단어 사이에 공백이 아닌 snake_case 형식의 문자열도 camelCase 형식으로 변환해줍니다.

camelCase("test_string");
//=> "testString"

이제 활용 방법이 바로 떠오르시죠?

개발자들은 DB 컬럼을 주로 프로그래밍 언어의 변수로 작성하게 되는데, 이때 camelCase 함수를 이용하면, 다수의 컬럼을 간단히 변수로 만들 수 있다는 것을요.

그럼 이제 DB 컬럼 정보를 추출하는 방법을 얘기 할 때입니다.

DB 컬럼 추출

DB 종류별로 다르지만 쿼리문를 통해 테이블 정보 조회가 가능합니다.

아래는 MySQL 에서 olosia_com 이라는 테이블 컬럼정보를 조회하는 쿼리입니다.

SELECT C.COLUMN_NAME,
       C.COLUMN_TYPE,
       C.COLUMN_COMMENT
  FROM INFORMATION_SCHEMA.TABLES T
       LEFT JOIN INFORMATION_SCHEMA.COLUMNS C
              ON T.TABLE_NAME = C.TABLE_NAME
 WHERE 1 = 1
   AND T.TABLE_NAME = 'olosia_com'
 ORDER BY C.ORDINAL_POSITION;

우리는 이런 쿼리를 통해 테이블 정의서 등을 작성하는데 이용하기도 하는데요.

이렇게 조회한 컬럼명을 위에서 알려드린 함수에 전달하면, camelCase 변수를 생성 할 수 있습니다.

seq
userId
userEmail
delFg
createDate

이제 본론입니다.

어떻게 활용하면 좋을까???

Change Case 라이브러리를 직접 이용하지 않으시더라도...

올로시아의 코드 한땀 서비스를 통해 언어별 조각코드를 생성하실 수 있습니다.

https://olosia.com/code-hanttam

코드 한땀

프로그래밍 언어별 조각코드 생성에 활용하실 수 있게 준비되어 있습니다.

이제 Ctrl + C / V 의 시간입니다.

다음 포스팅에서는 코드 한땀에서 제공하고 있는 기능과 옵션들에 대해 말씀드려 볼게요.

읽어주셔서 감사합니다.

올로시아 코드 한땀 서비스 바로가기

profile
실패하는게 두려운게 아니라, 노력하지 않은게 두렵다. [마이클 조던]

0개의 댓글