예아. 반갑다. 본인은 닥터 커두라고 한다.


각설하고, 파이썬에서 사용 가능한 열거형 타입에 대해 알아보도록 하자.


https://docs.python.org/ko/3/library/enum.html


enum은 파이썬 3.4에서 기본 모듈로 포함되었다!






열거형 타입은, 쉽게 말해 '특정 객체에 대한 타입을 문자열로 정의하는 것'이다. (엄밀한 설명은 아님)


name과 value를 연결해서 사용해야 하는데, 구체적인 value값이 뭔지는 하나도 안 중요한 경우가 있다.


그런데 name을 통째로 작업에 사용하기에는 뭔가 좀 부담스러운 경우. 그럴 때 쓰면 된다.


SQL DB 에서는 익숙한 개념이다. String(5) 로 때려넣는 것보다 Enum 으로 처리하는 게 훨씬 CRUD 속도가 빠르니까.


문자 하나하나 비교하느니, 당연히 각 문자열에 대해 1,2,3... 등의 정수 타입을 연결해두는 게 훨씬 속도가 빠르겠지? 쌩 정수보다는 가독성도 좋고.


이걸 파이썬에서도 쓰고 싶을때 사용할 수 있는 모듈이다.




Q: 파이썬에선 걍 문자열째로 사용해도 되잖아요. 뭣하면 딕셔너리 써도 되고.


A:

enum 방식으로 작동하는 외부 프로그램에 파이썬을 연결해야 할 때가 있다. SQL DB를 다루는 ORM이라든가...

모종의 이유로 딕셔너리보다 열거형 방식을 쓰는 게 훨씬 객체지향적으로 깔끔할 때도 많이 있다. HTTP 통신 코드, 네트워킹 포트 할당 등등... 




파이썬에서 Enum 타입을 공식적으로 지원하기 전에는, 다들 각자의 방식으로 열거형을 구현해서 썼다.


이런 방식은 객체지향을 해친다. 서비스가 구현에 영향을 받지 않도록 파이썬에서의 열거형 사용을 표준화한 데에 의의가 있는 모듈이라 할 수 있겠다.


만약 관련 기능이 필요한 라이브러리를 개발해야 할 때가 있다면, 적극적으로 열거형 타입을 사용해 보자.