기본 콘텐츠로 건너뛰기

라벨이 TypedDict인 게시물 표시

Python의 enum, namedtuple, TypedDict 등 구조화 기법 비교

파이썬 개발하다 보면, 데이터를 깔끔하게 관리하는 게 얼마나 중요한지 절실히 느껴지죠? 저도 처음엔 그냥 딕셔너리만 썼는데, 프로젝트가 커지니까 코드가 스파게티처럼 엉켜서 유지보수가 힘들더라고요. 그래서 파이썬에서 데이터 구조를 효율적으로 관리하는 방법을 찾아보다가 enum , namedtuple , TypedDict 를 알게 됐어요. 이 세 가지, 각각의 매력이 다르니까 상황에 맞춰 골라 쓰는 게 중요한데, 제가 직접 써보면서 느낀 점들을 정리해 볼게요. 먼저, enum (열거형)부터 볼까요? 이건 마치 이름표를 붙여주는 것과 같아요. 예를 들어 HTTP 상태 코드(200, 400, 500 등) 같은 고정된 값들을 관리할 때 딱이죠. 숫자만 써놓으면 나중에 코드 보고 무슨 의미인지 헷갈릴 수 있잖아요? enum 을 쓰면 HTTPStatus.OK 이렇게 직관적으로 쓸 수 있어서 코드가 훨씬 깔끔해져요. 저는 한번은 이걸 안 쓰고 숫자만으로 관리했는데, 나중에 코드 수정하다가 숫자 뜻을 까먹어서 한참 헤맨 적이 있답니다. 그때 enum 의 소중함을 깨달았죠! enum.Enum 클래스를 상속받아서 간단하게 만들 수 있어요. 다음은 namedtuple (명명된 튜플) 입니다. 튜플은 데이터를 묶어서 다루는 데 좋지만, 각 요소가 숫자로만 표시되니 뭐가 뭔지 알기 어려울 때가 있죠. namedtuple 은 각 요소에 이름을 붙여줄 수 있어서, 훨씬 이해하기 쉬워요. 마치 레코드처럼 사용할 수 있다고 생각하면 됩니다. 예를 들어, 사용자 정보를 저장할 때 User = namedtuple('User', ['id', 'name', 'email']) 이렇게 정의하면 user.name 으로 바로 이름에 접근할 수 있죠. collections.namedtuple 함수를 사용하면 쉽게 만들 수 있습니다. 단, 튜플이기 때문에 값을 변경할 수 없...