좋은 프로그래머가 되기 위한 조건중 하나는 식별자 작성 규칙에 의거한 좋은 이름을 잘 짓는거라 생각한다.
코딩은 혼자 하는게 아닌 여러 개발자들과 협업하여 하나의 프로젝트를 만드는데 목표를 둔다.
그러기 위해서는 가독성 좋은 코드가 필요하며 나만 알아볼 수 있는 코드가 아닌 보기 좋은 코드가 필요하다.
물론 혼자 코딩한다면 상관이 없다. 하지만 버릇습관을 잘 고쳐 나중에 사용가능 하도록 많이 연습하고 사용하자.
네이밍 컨벤션의 목적이다.
식별자는 어떤값을 구별해서 식별해낼 수 있는 고유한 이름을 말한다.
식별자는 다음과 같은 네이밍 규칙을 준수해야 한다.
예약어는 프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어를 말한다.
자바스크립트의 예약어는 다음과 같다.
await
,break
,class
,false
,for
,if
,this
등등
var person, age, name;
변수 이름도 식별자이므로 위 네이밍 규칙을 따라야한다. 변수는 쉼표로 구분해 하나의 문에서 여러개를 한번에 선언이 가능하다. 하지만 그럴 경우 가독성이 떨어지기 때문에 권장하지는 않는다.
var this; // 예약어
var 1st; // 숫자로 시작하는것은 허용하지 않는다.
다음 식별자는 명명 규칙에 위배되므로 사용할 수 없다.
var 이름;
var 나이;
ES5부터 식별자를 만들 때 유니코드 문자를 허용하므로 알파벳 외의 한글이나 일본어 식별자를 사용할 수 있다. 하지만 알파벳 외의 유니코드 문자로 명명된 식별자를 사용하는 것은 바람직하지 않으므로 권장하지 않는다.
var x = 3;
var a;
변수 이름은 변수의 존재 목적을 쉽게 이해할 수 있도록 의미를 명확히 표현해야 한다. 좋은 변수 이름은 코드의 가독성과 생산성을 높인다.
(변수 선언에 별도의 주석이 필요하다면 변수의 존재 목적을 명확히 드러내지 못하는 것이다.)
네이밍 컨벤션은 하나 이상의 영어 단어로 구성된 식별자를 만들 때 가독성 좋게 단어를 한눈에 구분하기 위해 규정한 명명 규칙이다. 네이밍 컨벤션을 잘 지키면 읽기 좋은 이름을 만들 수 있다.
일관성을 유지한다면 어떤 네이밍 컨벤션을 사용해도 좋지만 자바스크립트에서는 일반적으로 변수나 함수의 이름에는 카멜 케이스를 사용하고, 생성자 함수, 클래스의 이름에는 파스칼 케이스를 사용한다.
예시 userList, newTodoList, firstName
카멜케이스는 낙타의 등의 혹만 툭 튀어 나온것에 이름을 따왔다고한다.
여러 단어가 합쳐진 이름을 지을 경우 첫단어의 첫글자는 소문자로 하고, 두번째 글자부터는 첫글자를 대문자로 사용하는 방법을 말한다.
ECMAScript사양에 정의되어 있는 객체와 함수들도 카멜 케이스와 파스칼 케이스를 사용하고 있다.
예시 UserList, NewTodoList, FirstName
단어마다 첫글자를 대문자로 표기하는 방법을 말한다.
따라서 코드 전체의 가독성을 높이려면 카멜 케이스와 파스칼 케이스를 따르는것이 유리하다고 한다.
참고 - 모던 자바스크립트 deep dive (도서)