TIL52 - 협업을 위해 사용할 수 있는 enum

Kiyong Lee·2021년 11월 14일
0

파이썬

목록 보기
21/21
post-custom-banner

협업을 위해 사용할 수 있는 enum


파이썬 공식문서를 참고하여 작성했습니다.

enum

열거형(enumeration)은 고유한 상수값에 연결된 기호 이름의 집합입니다.

enum이라는 단어는 for문을 쓸 때

for idx, val in enumerate(list)

와 같은 형태를 사용해보며 봤었습니다.

단순히 정의만 보면 어떤 건지 감이 안올 수도 있어서, 실제로 적용한 코드를 첨부했습니다.


왜 사용하게 되었나?

class DealPositionId(Enum):
    DEPOSIT  = 1
    WITHDRAW = 2

이번 원티드 프리온보딩 8percent의 기업 과제 중 작성한 코드입니다.

DealPosition이란 입/출금 구분을 위해 만든 모델입니다.
API를 구현하며, 1번이면 입금이고 2번이면 출금으로 하자고 팀원끼리 이야기했으며
입/출금 시, BODYdeal_position_id = 1과 같이 데이터를 입력받습니다.

그런데, API를 구현하는 우리팀은 코드와 값을 보고 알 수 있지만
저희 과제를 보며 테스트를 하는 8percent의 기업 담당자분이나,
원티드 혹은 위코드 담당자분이 볼 때는 그래서 1과 2가 뭐지?라고 할 수 있기 때문에
이 문제를 해결하기 위해 enum을 사용하게 되었습니다.


사용법

위의 코드를 다시 한번 첨부하여, 합쳐진 최종본으로 작성해보면

from enum import Enum

class DealPositionId(Enum):
    DEPOSIT  = 1
    WITHDRAW = 2

...

with transaction.atomic():
    if deal_position_id == DealPositionId.DEPOSIT.value:

...

가져온 코드는, 입금에 대한 예시입니다.

영어문자에 그대로 충실하여, DEPOSIT이면 입금이고 WITHDRAW면 출금입니다.

입금에서 DealPositionID라는 클래스의 DEPOSIT이라는 변수의 값은 1이기 때문에 조건문은

if deal_position_id == 1

이 됩니다.

단순하게 숫자만 받아와서

if deal_position_id == data['deal_position_id']

라고 쓸 수 있지만, 직접 클래스를 통해 명시하는 것이 조금 더 가독성이 좋고
협업할 때 다른 개발자들도 어떤 의미를 담고 있는지 쉽게 알 수 있어
제가 되고자 했던 소통하는 개발자에 다가설 수 있었습니다.

profile
ISTJ인 K-개발자
post-custom-banner

0개의 댓글