본문 바로가기

Grew from/Study

아무도 궁금해하지 않을 변수 let 명칭에 대한 이야기

 

 

C를 필두로 C를 기반으로 만들어진 언어들중 타입이 있는 언어들

그니깐 C++, C#, JAVA등은 대게 같은 변수 키워드를 공유하고 있다.

int num1 = 1; // 정수
float num2 = 1.1 // 실수
char ch = 'a' // 문자

그러나 자바스크립트는 타입이 없기 때문에 독자적인 변수 키워드를 사용한다.

var str1 = 'es5까지의 함수스코프 변수';
let str2 = 'es6에 추가된 블록스코프 변수';
const str2 = 'es6에 추가된 블록스코프 상수';

딱 이름만 봐도 var는 변수를 뜻하는 variable, const는 상수를 뜻하는 constant에서 따온 말이라는 것을 알수 있는데,

let은 기원이 무엇인지 도저히 감이 안잡혔다.

 

다른 프로그래밍 언어중에서도 let이라는 변수 키워드를 쓰는 게 있으니 바로 swift이다.

사실 내가 이 포스팅을 작성하게 된 물음은 우연히 swift 책을 봤다가 시작 되었는데, 스위프트의 변수 키워드는 var와 let이 있지만, 변하는 변수는 var 변하지 않는 변수(상수)는 let을 쓴다.

즉 swift의 let -> JS의 const, swift의 var -> JS의 let

그렇다면 let이 쓴다는 말은 단순히 변수라는 뜻이 아닐것이다라는 생각이 들었다.

let이 들어가는 단어중에 '변할수도 혹은 변하지 않을수도 있는 수' 뜻을 가진 것이 뭐가 있을까 한참을 고민해봤지만 생각이 안났다.

 

답은 let이었다. let's go할때 그 let

 

캠브릿지 영어사전에서 검색

 

어떤 값을 할당할수 있게 허락하는 뜻을 가지고 있으므로 변수, 상수 둘다의 키워드로 적절했다.

처음엔 프로그래밍 변수가 아니라 수학의 표현식에서 출발했던 것 같은데, 뒤늦게 추가된 자바스크립트의 변수와 뒤늦게 생긴 언어인 스위프트의 변수에 채택 된것 같다.

https://en.wikipedia.org/wiki/Let_expression

 

의외로 이걸로 검색해봐도 글이 거의 없는 것을 보고, 영어권 사람들한테는 당연한거고, 비영어권 사람들은 전혀 궁금해하지 않는구나 라는 생각이 들었다.

별거 아니지만 개인적으론 큰 깨달음은 얻은 것 같은 기분이라 포스팅을 작성해본다. 헤헤

나같이 이거 궁금해서 질문한 사람 글 찾음.
https://stackoverflow.com/questions/33090193/linguistic-meaning-of-let-variable-in-programming