리터럴(literal)이란? 상수와의 차이점
학생시절 책을 보다가 리터럴(Literal)이라는 용어가 나와 궁금했던적이 있습니다. 대충 인터넷에는 "변하지 않는 값 자체"라고 나와있었고 사전상 의미도 그렇습니다. 리터럴은 객체리터럴, 정수 리터럴 등 타입별로 리터럴이라는 용어를 붙일 수 있습니다. 리터럴의 예를 들다면 다음과 같습니다.
자바스크립트에서 객체 리터럴
{
age : 19,
name : 'kim'
} |
cs |
정수 또는 실수 리터럴
23111
13.2222 |
cs |
자바스크립트에서 문자열 리터럴 (객체처럼 보이지만 객체처럼 보이는 문자열 리터럴입니다)
"{ age : 19, name : 'kim' }" |
cs |
스칼라의 xml 리터럴(스칼라에서는 xml 타입이 있어 xml 리터럴을 지원한다고 하네요)
<name>kim</name> |
cs |
자바스크립트에서 객체 리터럴을 변수에 할당하는 모습
var obj = {
age : 19,
name : 'kim'
}; |
cs |
그러나 리터럴이라는 용어를 듣기 전에 저는 상수에 대해 알고 있었기 때문에 리터럴이 곧 상수인가? 라는 의문을 품게 됩니다. 사실 수학적인 의미에서는 변하지 않는 값은 모두 상수입니다.
그러나 프로그래밍에서 상수의 개념은 아주 조금은 다른데 변경할 수 없는 변수를 말합니다. 그리고 이 상수는 어떤 값이 어떤 의미를 갖는지를 이해하기 쉽게 전달하기 위한 목적으로 쓰입니다.
예를 들어 자바에서의 상수는 final을 붙여 정의하며 최초에 한번 초기화 한 후에는 변경할 수 없습니다.
final String PROTOCOL_NAME = "HTTP"; |
cs |
여기서 현재 우리가 알고 있는 값 자체 그러니까 위의 Java 예제에서 의미하는 문자열 리터럴인 "HTTP" 를 표현할만한 용어가 필요해졌습니다. 그러나 이미 상수라는 용어는 쓰이고 있었기 때문에 값 자체를 의미하는 용어가 필요했고 그것을 리터럴이라는 용어로 구분지어 사용한것입니다.
이 밖에도 여러 의견이 있을 수 있지만 어쨌든 결로은 리터럴이란 값 그 자체를 의미한다는 사실입니다.
'전산학개론' 카테고리의 다른 글
[운영체제] File System이란? 파일시스템 및 파일(FIle)에 대한 설명 (0) | 2018.07.08 |
---|---|
[운영체제] 유저랜드(User Land)란? (0) | 2018.05.24 |
[개념정리] 버퍼(Buffer)란? 버퍼 개념 (7) | 2017.12.27 |
[개념정리] 패리티 비트(Parity Bit)란? (1) | 2017.11.02 |
[개념정리] API(Application Programming Interface) 란?? (0) | 2017.11.02 |