본문으로 바로가기
반응형

나는 평소 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"로 업데이트됩니다. 이렇게 열거형을 사용하면 리팩토링이 더욱 간편하고 안정적이 됩니다.

단 한군데의 코드만 변경하니 모든 소스가 평화롭게 되었다.

반응형