인프런 커뮤니티 질문&답변

마비미님의 프로필 이미지
마비미

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요! 강사님! 권한 관리에 질문이 있습니다!

작성

·

168

0

강사님의 정말 좋은 강의를 듣고 JPA와 스프링부트를 잘 사용하고 있습니다!!!!

근데 권한관리 쪽에 한가지 궁금한게 생겨서 죄송스럽지만 이렇게 질문을 하나 작성하게 되었습니다!

MemberRole이라는 Enum클래스를 만들고 거기에 USER와 ADMIN이렇게 권한을 회원, 관리자 2개로 하면 권한관리가 쉬운데

예를들면 한 서비스에 여러개의 식당 서비스들이 있고(ex 배달의 민족에서 여러개의 식당들이 있으면)

식당 사장님을 관리자로 두고

자기 식당 서비스를 관리 할 수 있게 만드려면

식당이 계속 추가 될 수 있는데 그때마다 Enum클래스에 USER, ADMIN_1, ADMIN_2... 이런식으로 관리자를 추가해줘야할까요..?

아니면 회원 테이블에 식당 정보를 추가하거나 식당 테이블에 관리자 정보를 추가시켜

ADMIN을 확일할 때 추가적으로 확인을 해줘야 할까요...

이러한 상황일때는 권한 관리를 어떻게 풀어가는지 궁금합니다!!!!!

답변 3

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. BeomJun Lee님

Group이라는 상위 개념을 도입하시면 됩니다^^

쉽게 이야기해서 다음과 같이 풀면 됩니다.(더 복잡하게는 N:M 관계도 될 수 있습니다.)

Member 1:N Group 1:N Role 

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. BeomJun Lee님

토이 프로젝트를 진행하신다면, 머리속으로 너무 고민을 하는 것 보다는, 우선 제가 말씀드린 내용을 기반으로 구현하면서 진행해보시고, 구현하면서 막히면 다음 고민을 또 해보시면 좋을 것 같아요.

감사합니다.

0

마비미님의 프로필 이미지
마비미
질문자

강사님이 말씀하신것을 토대로 생각해봤습니다!

대강 이런식으로 Group개념인 MemberRole을 도입하고

MemberRole과 Store 엔티티를 1:N으로 매핑시켰습니다 (1:N인 경우는 관리자가 여러개의 Store을 관리할수도 있기때문에)

1. 관리자가 로그인 했을시에 Member에서 회원id값을 찾아서

회원id값으로 MemberRole을 불러오고

MemberRole에 있는 Store을 사용(읽기)

(수정은 storeList의 id값으로 Store을 찾고 Store을 통해 수정)

이런식인것으로 이해하면될까요?!

 2. 만약에 Store별로 관리자가 딱 한명만 필요하다면 Member와 MemberRole을 1:1 매핑하는것도 하나의 방법일까요..?

막상 혼자해보려니까 생각할게 많아지네요...강사님은 역시 대단하십니다!!!

강사님께서 정말 잘 설명해주셨는데 혹시라도 제가 잘못 이해했다면

부족한 부분 더 매꾸도록 열심히 공부하겠습니다ㅜ

마비미님의 프로필 이미지
마비미

작성한 질문수

질문하기