Role을 enum으로 만드는 방식은 매우 적절한 선택입니다. 특히, 권한(역할)과 같은 고정된 값은 enum을 사용하여 표현하는 것이 더 자연스럽고, 유지보수 측면에서도 장점이 있습니다. @Embeddable 타입은 다른 목적을 가진 것이며, Role과 같은 경우에는 enum이 더 적합합니다.
enum과 @Embeddable의 차이점enum:
@Embeddable:
@Embeddable은 엔티티의 일부분이면서 독립적인 개념을 가진 객체를 표현할 때 사용합니다.Role에 대해 @Embeddable을 사용할 필요가 없는 이유:Role은 단순히 고정된 값(사용자, 관리자, 익명 등)을 나타내는 권한의 범주입니다. 이는 값이 몇 개로 한정되어 있기 때문에 enum이 적합합니다.@Embeddable은 보통 여러 필드를 가지는 복합 값 타입을 표현하는데 사용되며, Role처럼 단순한 상수 집합을 표현할 때는 적절하지 않습니다.Role 같은 고정된 값의 경우 enum을 사용하는 것이 맞습니다.@Embeddable은 여러 필드를 포함하는 복합 객체를 엔티티에 포함하고자 할 때 사용하는 것이며, 권한(Role)처럼 단순한 경우에는 사용하지 않습니다.따라서 현재처럼 enum을 사용하는 방식이 권장되며, 잘 설계하셨습니다!