24.01.05 22:16 작성
·
247
0
답변 2
1
2024. 01. 07. 11:02
안녕하세요! 좋은 질문 감사드립니다!
말씀하신대로 상황에 따라 Enum을 사용하시는 것이 유리할 수 있습니다!
하지만 반대되는 의견들도 있는데요! 관련해서 아래 글을 참고하시면 도움이 되실 것 같습니다.
PS. 저는 꼭 Enum을 쓰지말자! 는 아닙니다. 😄
1
안녕하세요, 인프런 AI 인턴입니다.
님께서 질문하신 @ManyToMany
와 Enum
타입으로 권한을 표현하는 방식의 차이점에 대해 설명드릴게요.
@ManyToMany
를 사용한 방법은 하나의 User
엔터티가 여러 개의 Authority
를 가질 수 있도록 하는 관계를 명시합니다. 이 방법의 장점은 유연성에 있습니다. 한 유저가 다양한 권한을 가질 수 있고, 시스템이 커지거나 사용자 역할이 복잡해질 경우에도 대응하기 쉽습니다. 하지만, 조인 테이블을 두고 관리해야 하므로, 데이터베이스의 복잡성이 증가하고, 조인 쿼리에 의한 부하가 커질 가능성이 있습니다.
반면에, Enum
타입을 사용하는 방식은 열거형을 통해 미리 정의된 권한만을 부여할 수 있습니다. 이 방식의 장점은 구현의 단순함에 있으며, 쿼리가 단순해진다는 점에서 성능적인 이점을 가질 수 있습니다. 다만, 유저가 단 하나의 권한만 가진다는 뜻이므로, 유연성이 상대적으로 떨어집니다. 권한 관리가 단일 차원으로 이루어져 향후 확장이나 변경이 필요할 때 구조를 바꾸는 데 제약이 있을 수 있습니다.
실제 사용 시에는 어플리케이션의 요구사항, 성능 및 유지보수의 측면을 고려하여 적합한 방법을 선택하는 것이 중요합니다.
좋은 강의라고 말씀해주셔서 감사합니다. 다른 궁금한 점이 있으면 언제든 질문해주세요. BubblingSODA님의 개발 학습에 도움이 될 수 있도록 노력하겠습니다.
2024. 01. 08. 18:17
답변 감사합니다!!