스네이크 케이스(snake case)는 문자열의 공백을 언더스코어('_')로 대체하고, 각 단어의 첫 글자를 소문자로 변환하여 표기하는 네이밍 스타일입니다. 예를 들어 'This is a simple sentence'라는 문장은 'this_is_a_simple_sentence'처럼 표현됩니다.
이번 글에서는 문자열을 인수로 받아 이를 스네이크 케이스로 변환하는 자바스크립트 함수를 작성하는 방법을 살펴보겠습니다.
구현 아이디어
변환 과정은 크게 세 단계로 나눌 수 있습니다.
1. split(' ') 메서드로 문자열을 공백 기준으로 분리하여 배열을 만듭니다.
2. reduce()와 toLowerCase()를 사용해 각 단어를 모두 소문자로 변환합니다.
3. join('_') 메서드로 배열의 요소들을 언더스코어로 연결하여 최종 결과를 반환합니다.
예제
다음은 전체 구현 코드입니다 −
const str = 'This is a simple sentence';
const toSnakeCase = (str = '') => {
const strArr = str.split(' ');
const snakeArr = strArr.reduce((acc, val) => {
return acc.concat(val.toLowerCase());
}, []);
return snakeArr.join('_');
};
console.log(toSnakeCase(str));
출력 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다 −
this_is_a_simple_sentence
마무리
이처럼 split(), reduce(), join() 세 가지 배열 메서드만 활용하면 별도의 외부 라이브러리 없이도 간단하게 문자열을 스네이크 케이스로 변환할 수 있습니다. 코드가 짧고 직관적이라 초보자도 쉽게 이해할 수 있으며, 필요에 따라 정규식을 활용해 카멜 케이스(camelCase)나 케밥 케이스(kebab-case) 등 다른 네이밍 컨벤션으로 확장할 수도 있습니다.