spaceBetweenWorkAndRest
Why JavaScript use camel case? 본문
왜 자바스크립트는 카멜 케이스를 사용할까?라는 궁금증이 들었다. 단순히 역사적인 이유가 있겠지 라는 생각을 하고 있었는데, 그 역사가 무엇일까? 에 대해 조사한 짧은 글이다. 결론적으론 역사적인 이유가 있었고 애덤 스미스의 보이지 않는 손처럼 모든 사람들이 암묵적으로 사용했기 때문에 현재 관습처럼 남아있다. 하지만 궁금증은 끝이 나질 않는다. 왜 사람들은 암묵적으로 카멜 케이스를 사용했던 걸까?
우선 가장 처음 찾은 답변
어이 친구 반드시 카멜케이스를 사용해야 하는 건 아니야~
stackoverflow는 정말 좋은 사이트이지만 엉뚱한 대답이 종종 존재한다. 해당 답변은 왜 자바스크립트가 카멜케이스를 사용하게 되었는지에 대한 답이 아니라 네가 원하는 대로 규칙을 정하면 돼~!라고 답하고 있었다. 물론 맞는 말이다. 회사 내부 규정에 따라 코드 스타일을 따르면 되긴 하다. 하지만 질문에 대한 답은 아니었다.
그리고 그 다음 답변
특정 상황에선 snake case를 사용해야 해!
..... 종종 엉뚱한 대답이 존재한다. 😅 뭐 어쨌든 해당 답변은 자바스크립트가 아닌 다른 언어의 관점에서 대답을 해줬다. 요약하자면 window환경에서 DBMS를 사용할 때 os가 대소문자를 구분하지 않는다나... 따라서 window -> linux로 환경을 바꿀 때 카멜 케이스로 작성되어 있었다면 문제가 생긴다는 얘기였다. 그래서 DBMS를 사용할 때는 관습적으로 snake case를 사용한다는 이야기였다.
질문에 대한 명쾌한 답은 아니었지만 어쨌든 새로운 사실이라 흥미로웠고, 자바스크립트도 비슷한 이유가 있을까? 하는 생각을 하던중 내가 봤을 때 가장 논리적인 대답이 있었다.
자바스크립트의 어머니는 자바야
해당 답변이 말하길 이런 코드 스타일 논쟁은 아주 오래된 떡밥이지만, 자신이 생각하기엔 이렇다는 것이다.
아주 먼 옜날, 자바 사용자들은 카멜 케이스를 관습적으로 사용했다. 따라서 자바스크립트는 자바의 영향을 받아 관습적으로 카멜 케이스를 사용했다는 이야기이다. 더 깊게 들어가서 왜 자바 사용자들이 카멜 케이스를 사용했냐면 그 시절 정답이라고 생각했던 헝가리안 표기법을 많이 썼기 때문이라는 것이다.
헝가리안 표기법은 변수에 타입을 알 수 없던, IDE의 발전이 없던 시절에 변수명에 타입을 붙여주는 표기법을 말한다. 예를 들자면... char타입의 변수라면 chValue라는 식의 표기법이다.
물론 지금은 완전히 사장된 표기법이지만 타입을 알 수 없던 시절에 유용하게 사용되었다고 한다. 그럼 왜? 헝가리안 표기법은 카멜 케이스를 사용했을까? 이건 완전히 해당 표기법을 제안한 사람 마음이었다고밖에 말할 길이 없다. 더 이상은 이유가 없어!
결국 우리가 카멜 케이스를 사용하는 이유는 찰스 시모니의 의지를 받드는 것이라고 할 수 있겠다. 물론 많은 개발자가 해당 표기법에 동의를 했기 때문이기도 하고. 아니면 또 다른 이유가 있거나! 🤪