객체지향(OOP)의 상속과 RBAC(Role-Based Access Control)의 상속은 겉보기에는 “상속”이라는 같은 단어를 쓰지만, 근본적인 목적과 의미가 다르다.
자식 is-a 부모 관계
기능 재사용과 다형성을 위한 구조
자식은 부모의 속성과 메서드를 물려받고 확장 가능
예시
//부모
class Animal {
void eat() {}
}
//자식
class Bird extends Animal {
void fly() {}
}
Bird는 eat()과 fly() 모두 가능
부모보다 자식이 더 구체적이다.
부모의 역할은 자식 역할의 권한을 모두 포함
상속이라기보다 권한 포함 또는 위임에 가깝다.
예시
ROLE_ADMIN > ROLE_USER