Node.js / NestJS

인가 및 RBAC

역할 기반 접근 제어, 커스텀 가드, 데코레이터, 권한, 리소스 소유권

20 면접 질문·
Mid-Level
1

RBAC(Role-Based Access Control)란 무엇입니까?

답변

RBAC는 사용자의 역할에 따라 권한을 부여하는 접근 제어 시스템입니다. 각 사용자마다 권한을 개별적으로 관리하는 대신, RBAC는 권한을 역할(예: ADMIN, USER, MANAGER)로 그룹화하고 이러한 역할을 사용자에게 할당합니다. 이는 애플리케이션의 접근 관리를 단순화하며, 특히 NestJS에서 커스텀 가드와 메타데이터 데코레이터와 함께 유용합니다.

2

인증과 인가의 차이는 무엇입니까?

답변

인증은 사용자의 신원(당신은 누구인가?)을 확인하며, 일반적으로 로그인/비밀번호나 JWT 토큰을 통해 이루어집니다. 인가는 사용자의 권한(당신은 무엇을 할 수 있는가?)을 확인하여 역할이나 권한에 따라 리소스 접근을 제어합니다. NestJS에서 인증은 흔히 JwtAuthGuard를 사용하고, 인가는 접근 권한을 확인하기 위해 RolesGuard 같은 커스텀 가드를 사용합니다.

3

커스텀 가드를 만들 수 있는 NestJS 데코레이터는 무엇입니까?

답변

NestJS에서 커스텀 가드를 만들려면 CanActivate 인터페이스를 구현하고 @Injectable()로 데코레이션된 클래스를 만들어야 합니다. 이 인터페이스는 boolean 또는 Promise를 반환하는 canActivate(context: ExecutionContext) 메서드를 요구합니다. 이후 가드는 @UseGuards()로 라우트에 적용할 수 있습니다. 이 아키텍처는 복잡한 검증을 수행하기 위해 가드에 의존성(서비스, 리포지토리)을 주입할 수 있게 합니다.

4

RBAC에서 'permission(권한)'은 무엇을 나타냅니까?

5

NestJS에서 가드를 controller에 연결하려면 어떻게 합니까?

+17 면접 질문

다음 면접을 위해 Node.js / NestJS을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기