기술블로그-Fastapi편
👉 Python 개념 정리: 상수(Constant) 와 리터럴(Literal)
Chansman
2025. 5. 26. 10:55
👉 Python 개념 정리: 상수(Constant) 와 리터럴(Literal)
1️⃣ 상수와 리터럴 구분 정의
구분 설명 예시 특징
리터럴 (Literal) | 값 그 자체를 의미함 | "hello", 123, True | 코드에 직접 쓰인 고정된 값 |
상수 (Constant) | 바뀌지 않도록 약속된 변수 | PI = 3.14, MAX = 100 | 변수이지만 변경하지 말아야 함 |
Literal 타입힌트 | typing 모듈에서 정해진 값만 허용하는 타입 지정 | Literal["on", "off"] | Python 3.8+부터 지원 |
2️⃣ 리터럴 (Literal) 예시 설명
# 리터럴: 값 그 자체를 의미
"Python" # 문자열 리터럴
42 # 정수 리터럴
3.14 # 실수 리터럴
True, False # 불리언 리터럴
✅ 리터럴은 변수에 저장되지 않은 상태의 직접 작성된 값이에요.
language = "Python" # "Python"은 리터럴, language는 변수입니다.
3️⃣ 상수 (Constant) 예시 설명
# 상수: 변하지 않는 값으로 사용하기 위한 변수
PI = 3.141592
MAX_USERS = 100
✅ Python에서는 상수를 강제하는 문법은 없지만,
대문자 변수명으로 작성하여 개발자 간 "변경하지 말자"는 약속을 표현합니다.
4️⃣ typing.Literal 개념 (Python 3.8+)
from typing import Literal
def set_status(status: Literal["on", "off"]):
print(f"상태: {status}")
set_status("on") # ✅ OK
set_status("off") # ✅ OK
set_status("sleep") # ❌ mypy 등 정적 검사 도구에서 에러 발생
✅ Literal은 특정 값만 인자로 받도록 제한하는 타입 힌트로, 안정성과 예측 가능성을 높여줍니다.
5️⃣ 정보 요약 정리
항목 의미 예시
리터럴 | 값 자체 | "Hello", 3.14 |
상수 | 변경하지 말아야 하는 변수 | PI = 3.14 |
Literal 타입힌트 | 타입 제한 (고정값만 허용) | Literal["on"] |
🚀 실무 사용 포인트
- Flask, Django 등의 백엔드 프로젝트에서 설정값이나 상태값을 정의할 때 상수와 Literal 타입힌트를 조합하면 코드의 명확성과 안정성을 높일 수 있어요.
- 리터럴은 코드를 해석할 때 가장 먼저 만나는 고정된 값이기 때문에, 초기화 값이나 기본값 정의에 자주 사용됩니다.
- Literal은 특히 API 응답 값 제한, Enum 대체, 상태값 지정 등에 유용합니다.
✅ 결론
- 리터럴은 코드에 직접 쓰인 "값" 자체를 의미합니다.
- 상수는 변경되지 않도록 의도적으로 선언된 "변수"입니다.
- Literal 타입힌트는 타입 안정성을 위해 사용되는 Python의 문법 도구입니다.
이 개념들을 구분해서 정확히 이해하면, 더 견고하고 읽기 쉬운 코드를 작성할 수 있어요!