[Java] Enum Ordinal 쓰면 위험해요. 아무튼 위험해요
Enum 클래스에 정의된 ordinal()이 열거형 상수가 정의된 순서를 반환하지만, 이 값을 열거형 상수의 값으로 사용하지 않는 것이 좋다. 그 이유는, 이 값은 내부적인 용도로만 사용되기 위한 것이기 때문이다. 외부적인 용도로 사용한다고 할 때, 내용이 추가되거나, 순서가 변경될 경우, 기존에 사용되던 값들과 현재의 값이 괴리된다. 예를 들어 열거형 상수가 다음과 같이 있다고 하자. CUSTOMER, SELLER, ADMIN ordinal() 로 각 0 , 1, 2 가 부여되고, 이를 토대로 db에 저장한다. 현재 ROLE 0 = 손님 1 = 판매자 2 = 관리자 그러다 정책이 변경되서 등급이 추가 된다. CUSTOMER, VIP, SELLER, POWER_SELLER, ADMIN 변경 후 ROLE ..
2023. 1. 26.