반응형
나는 평소 enum 즉 열거형 에 대해 회의적이었다.
굳이 왜 저걸 사용해야하는지 약간 의문도 있었으며, 운영측에 혼선을 줘 이해도가 떨어질 수 있다?
그건 나만의 생각이었다.
이렇게 리팩토링에서 유용하게 쓰일줄은 생각도 못했다.
========================================================================
열거형의 리팩토링 유용성을 설명하기 위한 간단한 예제를 들어보겠습니다.
상태를 표현하기 위해 문자열을 사용하는 경우를 생각해봅시다:
status = "OPEN"
이 코드를 전체 프로젝트에 걸쳐 여러 번 사용하고 있다고 가정합시다. 나중에 "OPEN" 상태를 "AVAILABLE"로 바꾸고 싶다면, 프로젝트 전체에서 해당 문자열을 찾아 바꿔야 하며, 오타 등으로 인한 오류가 발생할 수 있습니다.
반면, 열거형을 사용한 경우:
from enum import Enum
class Status(Enum):
OPEN = 1
CLOSED = 2
status = Status.OPEN
이제 "OPEN" 상태를 "AVAILABLE"로 바꾸고 싶다면, 열거형 선언부에서만 변경하면 됩니다:
class Status(Enum):
AVAILABLE = 1
CLOSED = 2
나머지 코드는 그대로 둘 수 있으며, "OPEN"을 참조하는 모든 부분이 자동으로 "AVAILABLE"로 업데이트됩니다. 이렇게 열거형을 사용하면 리팩토링이 더욱 간편하고 안정적이 됩니다.
단 한군데의 코드만 변경하니 모든 소스가 평화롭게 되었다.
반응형