본문 바로가기
Python

[Python] enum.Enum으로 상수 깔끔하게 관리하기

by teamnova 2025. 11. 11.
728x90


enum은 “Enumeration”의 약자로,
의미 있는 이름으로 정해진 고정값(상수)을 관리할 수 있게 해주는 내장 모듈입니다.

 

예를 들어,
프로젝트에서 상태를 “대기 / 진행 / 완료”로 다룬다고 할 때,

status = "WAITING"  # 문자열 실수로 오타나면 바로 버그!

 

이전엔 이렇게 썻지만, 

Enum을 사용하면,

from enum import Enum

class Status(Enum):
    WAITING = 1
    RUNNING = 2
    DONE = 3
이제 문자열 실수도 없고, IDE에서 자동 완성까지 지원됩니다
 

 

전체 코드입니다

 

main.py

from enum import Enum, auto

# 기본 Enum 정의
class Status(Enum):
    WAITING = 1
    RUNNING = 2
    DONE = 3

print("=== Status Enum 예제 ===")
print(Status.WAITING)        # Status.WAITING
print(Status.RUNNING.value)  # 2
print(Status.DONE.name)      # 'DONE'

# auto()로 자동 번호 부여
class Emotion(Enum):
    HAPPY = auto()
    SAD = auto()
    ANGRY = auto()

print("\n=== Emotion Enum 예제 ===")
for e in Emotion:
    print(e.name, "=", e.value)

# 비교하기 (문자열/숫자 대신 Enum으로)
current = Status.WAITING

if current == Status.WAITING:
    print("\n현재 상태: 대기 중 ")
elif current == Status.RUNNING:
    print("현재 상태: 실행 중️")
else:
    print("현재 상태: 완료")

# 실제 사용 예시 (상태 코드 관리)
class HttpStatus(Enum):
    OK = 200
    NOT_FOUND = 404
    INTERNAL_ERROR = 500

print("\n=== HTTP Status 예제 ===")
for status in HttpStatus:
    print(f"{status.name} -> {status.value}")

 

 

결과입니다.