
아키텍처
구글처럼 복잡한 권한 쉽게 관리하기 feat. GraphQL
두줄요약
복잡한 권한을 RBAC 대신 ReBAC로 재구성해 선언적으로 관리하는 방법을 소개했습니다. graplix와 React Permission 컴포넌트로 권한 체크와 화면 제어를 단순화했습니다.
핵심 내용
- 알림 센터처럼 권한 정책이 점점 복잡해질 때, 역할 기반 RBAC만으로는 코드가 길어지고 관리가 어려워지는 문제 정리
- ReBAC을 이용해 사용자-팀-시나리오 관계를 그래프로 모델링하고, graplix의 스키마·identify·리졸버·check로 선언적 권한 검증 구현
- React의 Permission 컴포넌트와 decorate 옵션, BFF와 usePermission 훅을 통해 화면 표시와 추적까지 단순화
- 관계가 많아질수록 N+1 문제가 생길 수 있어 Dataloader와 캐싱 같은 운영 대응 필요
적용해볼 점
- 권한 분기문이 늘어나는 지점에서 관계 중심 모델로 전환 검토
- 화면 제어와 인가 로직을 컴포넌트·훅으로 분리해 선언적으로 관리
- 복잡도 증가 시 캐싱과 N+1 방지 전략을 함께 설계