TIL52 - 협업을 위해 사용할 수 있는 enum
협업을 위해 사용할 수 있는 enum
파이썬 공식문서를 참고하여 작성했습니다.
enum
파이썬 공식문서를 참고하여 작성했습니다.
열거형(enumeration)은 고유한 상수값에 연결된 기호 이름의 집합입니다.
enum
이라는 단어는 for문을 쓸 때
for idx, val in enumerate(list)
와 같은 형태를 사용해보며 봤었습니다.
단순히 정의만 보면 어떤 건지 감이 안올 수도 있어서, 실제로 적용한 코드를 첨부했습니다.
왜 사용하게 되었나?
class DealPositionId(Enum):
DEPOSIT = 1
WITHDRAW = 2
이번 원티드 프리온보딩 8percent의 기업 과제 중 작성한 코드입니다.
DealPosition
이란 입/출금 구분을 위해 만든 모델입니다.
API를 구현하며, 1번이면 입금이고 2번이면 출금으로 하자고 팀원끼리 이야기했으며
입/출금 시, BODY
에 deal_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']
라고 쓸 수 있지만, 직접 클래스를 통해 명시하는 것이 조금 더 가독성이 좋고
협업할 때 다른 개발자들도 어떤 의미를 담고 있는지 쉽게 알 수 있어
제가 되고자 했던 소통하는 개발자에 다가설 수 있었습니다.
Author And Source
이 문제에 관하여(TIL52 - 협업을 위해 사용할 수 있는 enum), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyleee/TIL52-협업을-위해-사용할-수-있는-enum저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)