본문 바로가기

Backend/NestJS

Enum Type과 Enum 구조체 사용의 고민

현재 우리 팀은 Enum Type을 사용하고 있다. 

하지만 협업하는 다른 팀에서 Enum 구조체를 사용하고 있는데, 우리도 이 방향으로 갈지 아니면 혼용해서 쓸지 고민이다. 

일단 Enum Type과 Enum 구조체의 차이점을 알아보자. 

 

enum CoffeeSize { 
	Small = 'small', 
    Medium = 'medium',
    Large = 'large
}

@Controller('coffee') 
export class CoffeeController { 
  @Get(':size') 
  orderCoffee(@Param('size') size: CoffeeSize) { 

 } 
}

가독성과 의미부여용으로 주로 사용 

 

enum PaymentStatus { 
	Pending = 'pending',
    Completed = 'completed', 
    Failed = 'failed'
} 

enum OrderStatus { 
	Processing = 'processing',
    Shipped = 'shipped',
    Delivered = 'delivered'
}

@Controller('order') 
export class OrderController { 
	@Get(':id/status) 
    getOrderStatus(@Param('id') id:string) { 

	}
}

각각 결제 상태와 주문 상태를 '그룹화'하여 나타내는데 사용. 여러 개의 연관된 값들을 그룹화하여 사용할때 유용하다.  

일단은 그룹화 해야할 enum 값들이 많다면 enum 구조체를 사용하는게 맞다고 사용하는데, 일원화하기는 쉽지 않아보인다ㅜㅜ