snake_case란
스네이크 케이스(snake_case)는 단어 사이의 공백을 밑줄로 바꾸고 모든 글자를 소문자로 쓰는 표기법입니다. 스네이크 케이스 변환기에 넣으면 다음처럼 바뀝니다.
First Name은first_name이 됩니다orderTotalAmount는order_total_amount가 됩니다is-logged-in은is_logged_in이 됩니다
밑줄이 단어 사이에 눈에 보이는 틈을 남기기 때문에 가장 읽기 쉬운 이름 표기법 중 하나입니다.
변환기 작동 방식
이 도구는 각 줄에서 단어를 찾아 소문자로 바꾸고 밑줄로 연결합니다. 공백, 하이픈, 점, 슬래시로 나뉜 단어를 알아보고, camelCase와 PascalCase 이름은 대문자 위치에서 나눕니다. 연속된 대문자는 한 단어로 묶으므로 parseHTMLString은 parse_html_string이 됩니다.
줄마다 따로 변환하므로 목록 전체를 붙여넣어도 됩니다.
| 입력 | 결과 |
|---|---|
| User First Name | user_first_name |
| orderTotalAmount | order_total_amount |
| background-color | background_color |
| GetUserByID | get_user_by_id |
| Date of birth | date_of_birth |
한글 단어도 단어로 인식되어 밑줄로 연결됩니다. ‘사용자 이름’은 사용자_이름, ‘주문 총액_amount’는 주문_총액_amount가 됩니다. 한글에는 대문자가 없어 camelCase에서는 단어 경계가 사라지지만, snake_case에서는 밑줄이 경계를 그대로 보여 줍니다.
snake_case를 쓰는 곳
- Python: PEP 8 권장에 따라 변수, 함수, 모듈 이름
- Ruby: 변수, 메서드, 파일 이름
- Rust: 변수, 함수, 모듈
- SQL 데이터베이스:
created_at같은 테이블과 열 이름 - 파일 이름: 공백이 스크립트나 URL에서 문제를 일으키는 경우
JavaScript와 Java는 같은 용도에 camelCase를 씁니다. 프론트엔드와 백엔드가 데이터를 주고받을 때 두 표기 사이의 변환이 자주 필요한 이유입니다.
snake_case와 비슷한 표기들
| 표기 | 예시 | 주로 쓰는 곳 |
|---|---|---|
| snake_case | max_retry_count | 변수, 열 이름 |
| CONSTANT_CASE | MAX_RETRY_COUNT | 상수, 환경 변수 |
| kebab-case | max-retry-count | URL, CSS 클래스 |
| camelCase | maxRetryCount | JavaScript 변수 |
상수와 .env 파일에는 도구에서 CONSTANT_CASE를 누릅니다. URL에는 kebab-case를 씁니다. 검색엔진은 하이픈을 단어 구분 기호로 처리하므로 웹 주소에는 하이픈이 더 적합합니다.
깔끔한 이름을 위한 팁
- 이름은 짧되 뜻이 완전하게 짓습니다.
ue나the_email_address_of_the_user보다user_email이 낫습니다. - 숫자로 시작하지 않습니다. 대부분의 언어는 숫자로 시작하는 이름을 허용하지 않습니다.
- 프로젝트 전체에서 일관성을 지킵니다. 표기가 섞여 있으면 검색하기 어렵고 오타도 나기 쉽습니다.