깃허브를 통해 다른 사람들의 코드를 보다보면 const 키워드를 자주 발견할 수 있다. 심지어 대단한 개발자분들의 코드를 살펴볼 때도 const 키워드를 심심치 않게 살펴볼 수 있었다.
실제로 몇몇 스타일 가이드에서는 변수를 const 키워드로 선언하라고 권장하고도 있다. 나 역시도 const를 쓰라고 권장해 const를 자주 사용하는 편이지만, 그 필요성과 이유에 대해서 본 학습 전까지는 뿌리깊게 알지 못하고 있었다.
그렇다면 왜 많은 사람들이 const를 사용하고, 또 const를 권장하는 것일까? const가 무엇이고, 개발자로서 왜 const 사용을 지향할까?
Const는 constant의 약자로 상수(항상 상, 셈 수)
를 위해 태어난 키워드이다. 그렇다면, 왜 const를 통해 변수(변할 변, 셈 수)
를 만드려는 것일까?
이와 같은 의문을 해결하기 위해서 상수와 변수를 조금 더 유연한 관점에서 언어의 의미를 해석할 필요가 있다.
가정으로, 검색 기능을 개발한다고 생각해보자. 그러면 당연히 검색창에서 키워드를 입력 받을 것이다. 그런데 이때, 검색창의 입장에서 입력되는 키워드는 항상 일정하지 않다. 키워드는 셀 수 없이 많은 입력을 받으며 많은 경우의 수로 변하기 때문에 이 때 이 키워드 부분은 변수인 것이다.
하지만, 검색 버튼을 눌러 정보를 검색하는 동작을 수행할 때는 중간에 이 키워드 값이 변할 일이 없으며, 변해서도 안된다. 따라서, 검색 기능이 동작하는 동안에는 이 키워드가 상수라고 볼 수도 있는 것이다.
실제로 다양한 프로그래밍에서 날짜나 사용자의 입력 등 상대적으로 다양한 변수들이 존재하면서도 코드가 동작하는 동안에는 결국 상수로 쓰이는 경우가 더 많다. 개발자들을 이와 같은 상황에서 const를 사용하게 되는 것이다.
우리가 작성하는 코드 속에 변하게 되는 값이 많을 수록 코드의 일관성을 유지하기 어렵게 된다. 또한, 변수의 값이 재할당 되는 순간, 그 시점을 기준으로 재할당 이전의 변수와 이후의 변수의 값이 서로 다르기 때문에 코드의 전체적인 흐름에도 영향을 미치게 된다.
이는 코드가 길어지면 길어질 수록 더욱 심각한 문제를 야기할 수 있다.
변수가 언젠가 변할 수 있다는 가능성은 이와 같이 큰 리스트와 불안요소로 작용하게 된다. 이에 따라, 코드를 조금 더 일관되게, 그리고 안전하게 작성하고자 하는 취지에서 const 키워드로 변수를 사용하기 시작한 것이다.
이와 같은 이유로 const를 사용하는 것을 지향하며 const를 변수로 사용하는 개발자가 많이 늘었는데, 그렇다면 Const 변수와 Const 상수, 즉 진짜 상수와 변수는 어떻게 구분할까?
이는 이름을 짓는 방식으로 구분 가능하다.
변수와 상수의 Naming 방법
- 변수
- 영어 소문자로 작성
- 두 번째로 오는 단어부터는 각 단어의 첫 문자를 대문자로 표기
- ex> const myName
- 상수
- 영어 대문자로 작성
- 여러 단어들이 조합될 때는 밑줄로 단어들을 구분
- ex> const MY_NAME
Const 키워드의 중요성은 현대 프로그래밍에서 코드를 짤 때 무엇을 지향해야 하는지 보여주는 아주 좋은 사례라고 생각이 된다. 자바스크립트로 개발한 최신 프로그램들에서 var 키워드를 거의 볼 수 없게 된 이유도 이와 비슷할 것이라고 생각이 든다.
이와 같은 깨달음은 '트랜디'한 개발자가 되기 위해 내가 필요한 자질을 알려주었다. 그동안은 단순히 남들을 따라 const 키워드를 남발하는 개발자였을지라도, 지금 이 순간부터는 단순히 const 키워드를 자주 사용하는 것이 아니라, 왜 해당 변수에 const를 선언하였는지, 왜 const 선언이 필요한지 그 이유와 필요성을 알고 조금 더 '트랜디'하게 코드를 리팩토링하는 개발자가 되어보고자 한다.
Elegant한 Coding Style을 갖추는 개발자가 되는 그 날까지, 화이팅이다.