[typescript] 열거형(Enum)을 이용한 도메인 모델링(Domain Modeling)

도메인 모델링은 소프트웨어 시스템의 핵심 요소와 관련된 데이터, 규칙, 동작 등을 형식화하는 과정입니다. 이러한 모델링을 할 때 TypeScript의 열거형(enum)을 사용하면 코드를 더 간결하고 가독성 있게 작성할 수 있습니다. 이 글에서는 TypeScript의 열거형을 이용하여 간단한 도메인 모델을 구축하는 방법에 대해 알아보겠습니다.

열거형(Enum)이란?

열거형은 특정 값들의 집합을 나타내는 자료형입니다. TypeScript에서 열거형을 사용하면 명명된 상수를 만들어 코드를 읽기 쉽고 이해하기 쉽게 만들 수 있습니다. 이를 통해 코드의 가독성을 향상시키고 실수를 줄일 수 있습니다.

열거형 사용 예시

예를 들어, 영화 예매 시스템을 구현한다고 가정해봅시다. 영화 예매 상태를 열거형으로 표현해보겠습니다.

enum ReservationStatus {
  Pending,
  Confirmed,
  Cancelled,
  Completed
}

위 예시에서 ReservationStatus 열거형은 네 가지 예매 상태를 정의합니다. 이제 이 열거형을 사용하여 예매와 관련된 코드를 작성할 수 있습니다.

class Reservation {
  status: ReservationStatus;

  constructor(status: ReservationStatus) {
    this.status = status;
  }

  getStatusMessage() {
    switch(this.status) {
      case ReservationStatus.Pending:
        return "예매 대기 중";
      case ReservationStatus.Confirmed:
        return "예매 확정";
      case ReservationStatus.Cancelled:
        return "예매 취소";
      case ReservationStatus.Completed:
        return "예매 완료";
    }
  }
}

const myReservation = new Reservation(ReservationStatus.Confirmed);
console.log(myReservation.getStatusMessage()); // 출력 값: "예매 확정"

위 코드에서 Reservation 클래스는 ReservationStatus 열거형을 사용하여 예매 상태를 나타내고, getStatusMessage 메서드를 통해 상태에 따른 메시지를 반환합니다.

결론

TypeScript의 열거형을 사용하면 도메인 모델을 더욱 명확하게 표현할 수 있고, 코드의 가독성을 향상시킬 수 있습니다. 열거형을 적절히 활용하여 프로젝트의 유지보수성을 높이고 개발 생산성을 향상시킬 수 있습니다.

열거형은 많은 다른 상황에서도 유용하게 활용될 수 있으며, 올바르게 사용하면 코드를 더 간결하고 이해하기 쉽게 만들어줍니다.

참고 문헌: