변수명, 함수명, 클래스명 등 식별자를 지정하는 방법 4가지를 알아보고 이러한 규정이 왜 필요한지 알아보자.
winnercrespo.com/naming-conventions/
What is camelCase, PascalCase, kebab-case and snake_case?
Since we cannot define a variable like fruits in basket because many (or maybe all) programming languages will interpret the space character as the end of the identifier and the beginning of something else, we need to do something like fruitsInBasket.
winnercrespo.com
본 포스팅은 위 페이지의 내용을 중심으로 어떻게 하면 효율적으로 변수명을 결정할 수 있을지 탐구해본 포스팅이다.
대부분의 프로그래밍언어는 스페이스(" ")기호를 식별자의 끝으로 인식한다. 따라서 변수명을 정의하는 데 암묵적인 규정이 필요하다. fruit in basket과 같이 여러 단어를 스페이스기호없이 한 단어로 표현하는 방법은 4가지 정도로 나눌 수 있다.
1. camelCase : 첫 번째 단어를 제외한 모든 단어의 첫 글자를 대문자로 표기한다.
e.g. fruit in basket → fruitInBasket
2. PascalCase : 첫 번째 단어를 포함한 모든 단어의 첫 글자를 대문자로 표기한다.
e.g. fruit in basket → FruitInBasket
3. kebab-case : 단어와 단어 사이를 "-"기호로 연결
e.g. fruit in basket → fruit-in-basket
4. snake_case : 단어와 단어 사이를 "_"기호로 연결
e.g. fruit in basket → fruit_in_basket
* 정해진 것은 아니나 언어마다 선호하는 방식이 암묵적으로 정해져있다.
- SQL데이터베이스를 사용하는 개발자들은 snake_case를 주로 사용한다.
- html의 class명, id명에서는 대부분 kebab-case를 사용한다.
- 자바스크립트에서 변수명, 함수명을 정의할 때는 snake_case보다는 camelCase가 더 추천된다.
- 파이썬이나 루비에서는 snake_case를 주로 사용한다.
* 변수명은 주로 명사로 된 단어를 사용한다.
eg. 승리한 횟수를 저장하는 변수의 이름은 countOWin 보다는 countOfOWin처럼 명사형으로 단어를 만들어 선언해주는 것이 좋다.
* 함수명은 동사로 시작하는 단어를 사용하되 필요에 따라 명사 또는 형용사를 조합하여 사용한다.
e.g. 승리한 셀의 배경색을 바꾸는 함수
coloringWinnerCells ( BAD )
colorWinnerCells ( GOOD )
이러한 변수명에 대한 규정이 주는 장점
- 일관성(Consistancy) : 변수명을 정의하는 일은 개발자에게 꽤 어려운 업무 중 하나이다. 이러한 규정을 통해 우리는 코드를 통한 소통에서 더 쉽게 이해할 수 있게 되고 일관성을 유지할 수 있게 된다.
- 이해가 쉽다(Better understanding) : 여러 단어를 사용하는 복합어를 사용함으로써 한 단어로 표현하는 것 보다 더 많은 정보를 전달 할 수 있게 되어 해당 변수의 목적을 더 잘 설명할 수 있게 된다.
- 가독성(Readability)을 높여준다.
- 자동화(Automation) : 자동적으로 변수명을 변경하거나 검색하여 대체할 수 있게 된다.
'Programming' 카테고리의 다른 글
[Algorithm] 프로그래머스 - level1 <모의고사> (0) | 2021.05.26 |
---|---|
[Algorithm] 프로그래머스 - level1 <폰켓몬> (0) | 2021.05.25 |
[CSS] Position의 모든것★ (0) | 2021.03.01 |
[HTML] section태그와 article 태그의 차이점 (0) | 2021.02.16 |
[CSS] HTML에 CSS를 적용하는 3가지 방법 (0) | 2021.02.10 |