프로그래밍 개념 정리

상수와 리터럴 차이

Dr.Mlem 2025. 4. 4. 11:26
Q1.
변수와 상수는 차이를 알겠는데, 상수와 리터럴은 무슨 차이지?
 
 
 
A1.

ChatGPT의 말:

좋아, 이 질문도 진짜 핵심을 찔렀어!
“상수(constant)”와 “리터럴(literal)”은 비슷해 보이지만, 실제로는 개념이 분명히 달라.


✅ 먼저 직관적인 예제부터 보자

const pi = 3.14        // ⬅️ 상수
radius := 5
area := pi * radius * radius
  • 3.14는 리터럴
  • pi는 상수

그럼 이제 차이를 정리해볼게.


🔍 리터럴(Literal) vs 상수(Constant)

항목리터럴 (Literal)상수 (Constant)

 

항목 리터럴(Literal) 상수(Constant)
의미 실제 값 그 자체 이름이 붙은 고정된 값
형태 코드에 직접 박아넣은 값 const 키워드로 선언된 식별자
변경 가능 여부 변하지 않지만 변수에 바로 들어갈 수도 있음 절대 변경 불가
사용 위치 할당, 연산, 초기화 등 어디든 직접 씀 반복 사용하거나 의미 부여 시
예시 42, "hello", true const Pi = 3.14

📦 예시로 다시 보기

const greeting = "hello"    // 상수
name := "world"             // 변수
message := greeting + " " + name  // greeting은 상수, " "는 리터럴
  • " " ← 이건 리터럴
  • greeting ← 이건 상수 (리터럴을 이름 붙여서 재사용)

💬 비유적으로 말하면

리터럴은 실제 값이고,
상수는 그 값을 이름 붙여서 의미 있게 만든 것이야.

즉,

  • "hello"는 리터럴이고,
  • const msg = "hello"는 상수고,
  • msg를 쓰면 리터럴을 간접적으로 사용하는 셈이지.

✅ 결론 요약

  • 리터럴: 값 그 자체 (3.14, "hello")
  • 상수: 그 리터럴에 이름을 붙여서 재사용하거나 의미 부여한 것 (const Pi = 3.14)

필요하면 Go에서 상수를 응용해서 iota 같은 것까지도 확장해서 설명해줄 수 있어!